Эффективность кеша запросов - PullRequest
8 голосов
/ 10 ноября 2010

Я использую MySQLTuner.pl для оптимизации своего сайта .... хотя я не совсем уверен, как решить некоторые из этих проблем, и мне интересно, может ли кто-нибудь мне помочь.

I 'm работает 16 ГБ ОЗУ со следующими настройками MySQL:

key_buffer              = 1024M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8

myisam-recover         = BACKUP
max_connections        = 1500
table_cache            = 256
thread_concurrency     = 4

query_cache_limit       = 2M
query_cache_size        = 32M
query_cache_type        = 1

tmp_table_size          = 512M
max_heap_table_size     = 128M
join_buffer_size        = 128M
myisam_sort_buffer_size = 512M

Вот вывод моего тюнера

   -------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.41-3ubuntu12.6-log
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 98M (Tables: 402)
[--] Data in InnoDB tables: 16K (Tables: 1)
[!!] Total fragmented tables: 17

-------- Performance Metrics -------------------------------------------------
[--] Up for: 10s (1K q [132.400 qps], 443 conn, TX: 119K, RX: 82K)
[--] Reads / Writes: 100% / 0%
[--] Total buffers: 1.2G global + 130.6M per thread (1500 max threads)
[!!] Maximum possible memory usage: 192.4G (1225% of installed RAM)
[OK] Slow queries: 0% (0/1K)
[OK] Highest usage of available connections: 0% (2/1500)
[OK] Key buffer size / total MyISAM indexes: 1.0G/72.5M
[!!] Key buffer hit rate: 72.3% (47 cached / 13 reads)
[!!] Query cache efficiency: 0.0% (0 cached / 875 selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 2 sorts)
[OK] Temporary tables created on disk: 23% (48 on disk / 201 total)
[OK] Thread cache hit rate: 99% (2 created / 443 connections)
[!!] Table cache hit rate: 4% (128 open / 2K opened)
[OK] Open file limit used: 3% (257/7K)
[OK] Table locks acquired immediately: 100% (449 immediate / 449 locks)
[OK] InnoDB data size / buffer pool: 16.0K/8.0M

-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    MySQL started within last 24 hours - recommendations may be inaccurate
    Reduce your overall MySQL memory footprint for system stability
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
  *** MySQL's maximum memory usage is dangerously high ***
  *** Add RAM before increasing MySQL buffer variables ***
    query_cache_limit (> 2M, or use smaller result sets)
    table_cache (> 128)

Когда я уменьшаю query_cache_limit и table_cache, он не появляетсяиметь какой-либо эффект.Я перезапустил MySQL в течение последних 24 часов, что может быть частью проблемы.

обновление

После запуска SHOW STATUS LIKE '%cache%' вывод

Variable_name   Value
Binlog_cache_disk_use   0
Binlog_cache_use    0
Com_assign_to_keycache  0
Qcache_free_blocks  436
Qcache_free_memory  23551488
Qcache_hits 72553
Qcache_inserts  26954
Qcache_lowmem_prunes    0
Qcache_not_cached   7164
Qcache_queries_in_cache 5877
Qcache_total_blocks 12347
Ssl_callback_cache_hits 0
Ssl_session_cache_hits  0
Ssl_session_cache_misses    0
Ssl_session_cache_mode  NONE
Ssl_session_cache_overflows 0
Ssl_session_cache_size  0
Ssl_session_cache_timeouts  0
Ssl_used_session_cache_entries  0
Threads_cached  3

1 Ответ

3 голосов
/ 04 декабря 2010

Я нашел этот сайт полезным для оптимизации моего собственного сервера MySQL: http://www.omh.cc/mycnf/

Он позволяет вам настраивать ваши переменные и знать, какова будет общая емкость оперативной памяти.Вы должны оптимизировать использование оперативной памяти на 60%.Поэтому постарайтесь уменьшить общий объем памяти до 60-70% от общего объема памяти.Если на той же машине работают другие устройства, вам, вероятно, нужно уменьшить это число.Забудьте Query cache, это не добавит слишком много значения, но Table cache должно улучшить вашу производительность, если все сделано правильно.

Попробуйте уменьшить количество соединений и сохранить общий объем памяти менее 60% от общей системыпамять.

...