最近我的网站(有260000个帖子,12000张图片,2,360,987个mysql行和450.7 MiB大小)运行缓慢,有时无法加载很多分钟
我安装了这个调试栏插件https://wordpress.org/plugins/debug-bar/
内存使用
服务器上的:174,319,288字节
Intel(R)Xeon(R)CPU E3-1230 V2 @ 3.30GHz,16 GB (PHP:5.5.23,MySQL:5.6.23,Apache 2.4)
即使尝试禁用所有插件也没有多大帮助......它降低了160-163,xxx,xxx字节
wamp:37,834,920字节
(PHP:5.5.12,MySQL:5.6.17)
为什么差异巨大?如何检测问题?
使用以下插件
Acunetix WP Security Akismet在 反垃圾邮件 CloudFlare的 联系表格7 自定义帖子类型UI 调试栏 登录LockDown 重定向 主题试驾 W3总缓存 WordPress SEO WP-优化 WP错过了时间表
上述服务器的my.cnf值为
[mysqld]
slow-query-log=1
long-query-time=1
slow-query-log-file="/var/log/mysql-slow.log"
default-storage-engine = MyISAM
local-infile = 0
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_file_per_table=1
innodb_stats_on_metadata=0
max_connections=360
wait_timeout=60
connect_timeout = 15
thread_cache_size=20
thread_concurrency=8
key_buffer_size = 1024M
join_buffer_size = 2M
sort_buffer_size=1M
query_cache_limit=64M
query_cache_size=128M
query_cache_type=1
max_heap_table_size=32M
tmp_table_size=32MB
table_open_cache=1000
table_definition_cache=1024
open_files_limit=10000
max_allowed_packet=268435456
low_priority_updates=1
concurrent_insert=2
#port = 8881
#innodb_force_recovery=0
#innodb_purge_threads=0
答案 0 :(得分:0)
“服务器”有Apache;这占了差异的一部分(全部?)。
Windows和Unix以不同方式处理内存,并以不同方式进行测量。所以,差异可能是无关紧要的。
你引用的数字并不大;有什么问题?
“尝试重新启动服务器并在最初时刻检查它” - 这几乎是无关紧要的。程序往往会随着时间的推移而增长,达到一定的限制。让我们看一下典型负载的“稳态”值。
您有足够的RAM来缓存RAM中的整个数据集。但是,由于不活动,可能大部分数据未被触及,因此未被读入缓存。
“高”内存使用量是在交换时。实际上,这可能“太高了”。所以,比方说,90%是“高”。你的数字远不及那个。
innodb_buffer_pool_size=200M
- 不足以容纳整个450.7MB数据集,但正如我所说,大多数数据可能没有被主动使用。
修改(发布设置后)
table_cache=10M
太可怕了!你不会开1000万张桌子。将其设置为1000。
max_heap_table_size=512M
tmp_table_size=512MB
那些很危险。如果你有多个连接,每个都需要一个tmp表(由于复杂的查询),你可能会快速耗尽内存。将它们设置为32M。
innodb_force_recovery=3
注释掉该行 - 它将被使用一次,然后被删除。
其余设置对于此讨论看起来无害。