I/O 速率和 CPU 占用率导致服务器速度极慢

I/O 速率和 CPU 占用率导致服务器速度极慢

我的服务器(Ubuntu 10.04 Lucid LAMP Stack)在 linode(1024MB 内存、40GB 存储、400GB 传输)上加载速度非常慢。我的网站(WordPress)相对较小(1.5GB mysql),每天的页面浏览量约为 2k。我见过有人在 512MB 内存、20GB 存储 + 200GB 传输上运行一个流量是我 10 倍的网站。我真的不知道我做错了什么,我安装了 iotop 并查看了结果,它告诉我 mysql 占用了大量 CPU。我安装了缓存系统。以下是过去 24 小时的快照。如果您能给我一些建议,那将非常有用。

请参阅下面的更新

在此处输入图片描述

Update: Solved: Thank you all for your recommendations. I did instal mysqltuner and was able to see at depth what some of the problems were. I found out that the reason for the spike in io rate and swap was a wordpress plugin. The plugin was basically "processing" every minute and after I disabled it, things looked way better. Pic below

在此处输入图片描述

答案1

如果您认为这是由于 MySQL 引起的,我会检查以下事项:

  • 跑步mysqltuner.pl,它会告诉你 MySQL 安装的明显问题在哪里。
  • 激活并监控 MySQL 慢查询日志,它将记录所有需要超过 N 秒才能完成的查询(其中 N 是可配置的)。查询可能会告诉您此问题是否与 WordPress 或其他内容有关。请参阅MySQL 文档了解更多信息。

通过查看图表,我还会检查您是否可以将峰值时间与您的 access.log 关联起来。也许您可以从日志中看到这些请求是否是合法的 Web 请求。

答案2

查看网络负载,我猜想活动会激增,是来自您的用户/客户还是其他地方?也许值得一看。

另外 - 您的 MySQL 数据库是如何组织的 - 在某些情况下,1.5Gb 可能是一个大型数据库...索引和优化脚本是否到位?

当然,我只是猜测一下导致此类问题的常见原因,您的安装中是否存在可能导致此负载的异常情况?Wordpress 插件、Cron 作业等?

我应该说这很可能只是一个与 Wordpress 无关的问题 - 自动更新 cron 作业等?

答案3

看看你那里的图表,它看起来非常具有周期性。你在 Wordpress 中没有任何 cron 作业或“计划任务”,对吧?从表面上看,每隔一小时运行一次,就像时钟一样。

要分析你的Wordpress,你可以安装调试执行分析并查看瓶颈所在(这里将显示一个长时间处理的 PHP / MySQL 查询,为您提供一个很好的开始)。

您还可以按照 Oliver 的建议启用 MySQL 的慢查询日志

编辑:另外,看起来你在某些时候会获得大量流量,这可能是爬虫程序(比如谷歌),或者是有人攻击你的服务器(或者只是人们在某些时候更喜欢访问你的网站……)。你应该在这些高峰时段查看你的访问日志。

您可以使用以下命令(以 root 身份运行)查看所有系统 cronjobs:

for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done

相关内容