8
我正在使用MySQLTuner.pl来优化我的网站....虽然我不完全确定如何解决这些问题中的一些,并且想知道是否有人可以帮助我。查询缓存效率
我跑的RAM与16GB以下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
它不会出现有任何效果。我在过去的24小时内重启了MySQL,这可能是问题的一部分。
更新
运行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
“效应”表示MySQLTuner的性能更好或警告更少? – AndreKR 2010-11-10 00:01:18
更好的表现。我预计12月初会有一个巨大的服务器负载,并且需要每一点性能 – Webnet 2010-11-10 00:06:02
这个警告只意味着当您的服务器使用您允许它使用的所有RAM时,您的服务器没有足够的RAM(因此会交换) 。因此,减少查询缓存大小可能会使警告消失,但不会直接提高性能。无论如何,似乎你的查询缓存完全没有使用,所以你应该检查为什么会这样。 (但是,查询缓存比索引缓存重要得多。) – AndreKR 2010-11-10 00:35:17