服务器上的内存使用率高于wamp

时间:2015-04-09 20:35:19

标签: php mysql wordpress performance server

最近我的网站(有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

1 个答案:

答案 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

注释掉该行 - 它将被使用一次,然后被删除。

其余设置对于此讨论看起来无害。