mysql 配置 wordpress 高负载

mysql 配置 wordpress 高负载

我的查询

./mysqlslap --user=root  --concurrency=50 --iterations=1 --pass=toor -vv --create-schema=db --query="SELECT SQL_CALC_FOUND_ROWS  wp_posts.* FROM wp_posts  INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)  WHERE 1=1  AND wp_term_taxonomy.taxonomy = 'category'  AND wp_term_taxonomy.term_id IN ('1')  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 35, 6"

一些结果

   Average number of seconds to run all queries: 68.904 seconds
    Minimum number of seconds to run all queries: 68.904 seconds
    Maximum number of seconds to run all queries: 68.904 seconds
    Number of clients running queries: 50
    Average number of queries per client: 1

平均负载峰值达到 32 以上。

测试机的规格如下:

  • 4GB 内存
  • E6550 @ 2.33GHz(双核)
  • 单 SATA 磁盘
  • Debian Lenny + Apache + PHP + MySQL

可以读取 MySQL 配置在这里。有人能建议我该如何调整以提高性能吗?谢谢。

答案1

  • 安装 w3tc 或 wp-super-cache
  • 减少帖子/标签的数量(请记住,wordpress 将帖子的修订存储在 wp_posts 表中,因此,如果有人喜欢保持登录状态,并且每 5 分钟自动保存一次,那么您就可以在那里获得相当多的额外修订)
  • 替换 WordPress
  • 获得更快的磁盘

虽然我根据直觉不同意配置中的某些可调参数,http://blog.mysqltuner.com/包含一个可以运行的脚本,该脚本会为您提供配置设置的输入。您需要让 mysql 运行 48 小时以上,以便它提供最佳建议。

  • 表定义缓存
  • thread_concurrency(在四核处理器上,我通常以 6 运行)
  • join_buffer_size(您将其列为 join_buffer,但这可能不正确,请查看显示状态/显示变量以确保您的配置值按预期生效)

如果您没有在与数据库相同的分区上运行电子邮件,请考虑使用 noatime、nodiratime 挂载文件系统。检查文件系统上的其他可调设置。

相关内容