mysqltuner sugestão

2

Eu tenho um VPS executando o Zen Cart.

O servidor é construído sobre o CentOS 5.7 64Bit e possui 2 CPUs virtuais e 2GB de RAM. Eu tento usar o script mysqltuner para otimizar meu banco de dados mysql.

O query_cache_size atual é definido como 120MB, o que é próximo do limite de 128MB. Não tenho certeza se devo continuar aumentando esse número como sugerido ou não.

Além disso, você poderia me dizer por que o cache de consultas de remoção por dia (171858) é tão alto? Como posso reduzir isso?

 -------- Performance Metrics -------------------------------------------------
 [--] Up for: 7h 26m 48s (2M q [83.497 qps], 17K conn, TX: 6B, RX: 377M)
 [--] Reads / Writes: 87% / 13%
 [--] Total buffers: 196.0M global + 3.1M per thread (100 max threads)
 [OK] Maximum possible memory usage: 507.3M (24% of installed RAM)
 [OK] Slow queries: 0% (2/2M)
 [OK] Highest usage of available connections: 8% (8/100)
 [OK] Key buffer size / total MyISAM indexes: 50.0M/27.8M
 [OK] Key buffer hit rate: 100.0% (6M cached / 1K reads)
 [OK] Query cache efficiency: 88.4% (1M cached / 2M selects)
 [!!] Query cache prunes per day: 171858
 [OK] Sorts requiring temporary tables: 0% (0 temp sorts / 13K sorts)
 [!!] Joins performed without indexes: 269
 [OK] Temporary tables created on disk: 12% (1K on disk / 15K total)
 [OK] Thread cache hit rate: 99% (97 created / 17K connections)
 [OK] Table cache hit rate: 94% (434 open / 460 opened)
 [OK] Open file limit used: 16% (685/4K)
 [OK] Table locks acquired immediately: 99% (396K immediate / 396K locks)

 -------- Recommendations -----------------------------------------------------
 General recommendations:
  Run OPTIMIZE TABLE to defragment tables for better performance
  MySQL started within last 24 hours - recommendations may be inaccurate
  Enable the slow query log to troubleshoot bad queries
  Adjust your join queries to always utilize indexes
 Variables to adjust:
  query_cache_size (> 120M)
  join_buffer_size (> 500.0K, or always use indexes with joins)



 ###My current my.cnf settings###
 query_cache_size = 120M
 thread_cache_size = 4
 table_cache = 1000
 key_buffer_size = 50M
 query_cache_limit = 20M
 join_buffer_size = 500K
    
por garconcn 31.01.2012 / 01:53

2 respostas

3

O query_cache_size não está limitado a 128MB. Ter um valor muito alto pode degradar o desempenho.

Você pode ter muitas limpezas de cache de consulta devido à fragmentação, não necessariamente com pouca memória.

Você deve ser capaz de aumentar com segurança o tamanho do seu cache de consulta para algo como 160MB ou até 192MB, mas se você começar a ver degradação, você pode querer diminuí-lo.

    
por 31.01.2012 / 08:32
3

Se as tabelas do MySQL estão mudando o tempo todo, o cache de consulta não pode ser tão eficiente quanto seria com (principalmente) tabelas somente leitura. Se os dados forem alterados, o cache de consulta deverá invalidar pelo menos essa entrada e relê-la novamente.

    
por 31.01.2012 / 10:48

Tags