首先是一些数据:
服务器上正在运行的内容:
问题:查看帖子大约需要10秒。刷新是很快的,因为缓存插件做得很好,但如果在查看之前没有访问帖子大约10-12秒。
经过一些跟踪以找出出现了什么问题,我发现每个页面的mysql查询占用了总时间的90-95%(每页9-10秒)。
我试图弄清楚mysql配置是否有问题并修改了my.cnf中默认值的错误:
key_buffer_size = 64M
innodb_buffer_pool_size = 2G
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_thread_concurrency = 16
innodb_flush_method = O_DIRECT
innodb_additional_mem_pool_size = 20M
query_cache_limit = 8M
query_cache_size = 64M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 32
重新启动后,根本没有任何改进,因为我猜我错过了什么。我已经开始用newrelic进行跟踪,他们的系统指出有些武器需要花费34秒来执行。
这是来自newrelic的日志的SQL查询:
SELECT SQL_CALC_FOUND_ROWS qmV?_posts.ID FROM qmV?_posts INNER JOIN qmV?_postmeta ON ( qmV?_posts.ID = qmV?_postmeta.post_id ) WHERE ?=? AND (
MONTH( qmV?_posts.post_date ) = ?
) AND qmV?_posts.post_type = ? AND (qmV?_posts.post_status = ?) AND (
qmV?_postmeta.meta_key = ?
) GROUP BY qmV?_posts.ID ORDER BY qmV?_postmeta.meta_value+? DESC LIMIT ?, ?
我还试图验证表是否正确索引,看起来好像(显然)WP在优化数据库搜索方面做得很好。
在子公司中,监控工具报告" MySQL CPU使用情况"这个查询正在运行时,大约在95%到105%左右。
问题:我可以在此服务器上调整其他任何内容,或者我应该查看托管此应用程序的其他一些选项吗?如果您提出2&n选项,请参考您的选项。
更新1: ps aux | grep' mysqld'返回:
mysql 522 13.5 1.0 1227664 85128? Ssl 2014 3513:12 / usr / sbin / mysqld