我正在使用 MySQLTuner.pl 来优化我的站点/服务器....虽然我不完全确定如何解决其中一些问题,并且想知道是否有人可以帮助我。
我有 4GB 内存的 VPS,这是 my.cnf 设置:
[mysqld]
expire_logs_days=14
sync_binlog=1
query_cache_limit=32M
query_cache_size=128M
slow_query_log=1
log_queries_not_using_indexes=0
thread_cache_size=50
max_allowed_packet=16M
max_connect_errors=1000000
max_connections=250
key_buffer_size=8M
open_files_limit=65535
tmp_table_size=256M
max_heap_table_size=256M
table_definition_cache=2048
table_open_cache=2048
default_storage_engine=InnoDB
innodb_flush_method=O_DIRECT
innodb_file_per_table=1
innodb_log_files_in_group=2
innodb_additional_mem_pool_size=40M
innodb_max_dirty_pages_pct=90
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=64M
innodb_log_file_size=256M
innodb_buffer_pool_size=1152M
这是mysqltuner的输出:
-------- Performance Metrics -------------------------------------------------
[--] Up for: 2d 8h 36m 40s (7M q [34.897 qps], 504K conn, TX: 41B, RX: 735M)
[--] Reads / Writes: 68% / 32%
[--] Total buffers: 2.0G global + 2.8M per thread (200 max threads)
[OK] Maximum possible memory usage: 2.5G (63% of installed RAM)
[OK] Slow queries: 0% (30K/7M)
[OK] Highest usage of available connections: 20% (40/200)
[OK] Key buffer size / total MyISAM indexes: 8.0M/7.8M
[OK] Key buffer hit rate: 99.9% (1M cached / 1K reads)
[OK] Query cache efficiency: 29.3% (1M cached / 4M selects)
[!!] Query cache prunes per day: 11573
[OK] Sorts requiring temporary tables: 0% (3K temp sorts / 999K sorts)
[!!] Temporary tables created on disk: 48% (54K on disk / 112K total)
[OK] Thread cache hit rate: 99% (40 created / 504K connections)
[OK] Table cache hit rate: 33% (499 open / 1K opened)
[OK] Open file limit used: 0% (380/65K)
[OK] Table locks acquired immediately: 99% (4M immediate / 4M locks)
[OK] InnoDB buffer pool / data size: 1.1G/1001.0M
[OK] InnoDB log waits: 0
-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
Increasing the query_cache size over 128M may reduce performance
Temporary table size is already large - reduce result set size
Reduce your SELECT DISTINCT queries without LIMIT clauses
Variables to adjust:
query_cache_size (> 512M) [see warning above]
有什么我还可以改进以获得更好的性能吗?
如何解决这个问题:
在磁盘上创建的临时表:48%
每天查询缓存修剪:11573
查询缓存效率:29.3%
更新:
如果您能对 my.cnf 中的设置发表意见,我会很高兴(因为我不是专家,并且该设置是我在互联网上其他系统中看到的,可能有些不正确)
谢谢