我们已经将服务器从 Debian Wheezy 更新到 Jessie,并从 php5.6 更新到 php7.0,但现在我们的磁盘 I/O 和平均负载每小时都会达到峰值。具体时间取决于系统启动时间。
在此服务器上,我们有:
- nginx/1.10.1
- PHP 7.0.8-1~dotdeb+8.1
- Percona mysql 服务器 5.6.30-76.3-log
- dovecot 2.2.devel
- 后缀 2.11.3-1
- Java 1.7.0_101
我们尝试返回到 php5.6,禁用 cron,禁用 postfix 和 dovecot,停止我们的 Java 应用程序,但都没有任何帮助。
峰值如下所示:
iotop 如下所示:
我怎样才能确切地知道导致这些峰值的原因并消除它们?
答案1
也许你有一些MySQL 预定事件每小时进行一次?
MySQL 事件是按照计划运行的任务。因此,我们有时将它们称为计划事件。创建事件时,您将创建一个命名的数据库对象,其中包含一个或多个 SQL 语句,这些语句将在一个或多个固定间隔内执行,并在特定日期和时间开始和结束。从概念上讲,这类似于 Unix crontab(也称为“cron 作业”)或 Windows 任务计划程序的概念。
答案2
问题是https://developers.google.com/speed/pagespeed/module/每小时清理一次缓存。
将其配置为将文件存储在 tmpfs 上解决了该问题。
答案3
科学的方法是你的朋友。
您或您的代表必须监控您的系统以收集必要的数据,以便您做出明智的决定。
您的平均负载峰值非常急剧且在可预测的时间,这意味着使用 top、iostat、vmstat 等工具监视事件并开始旅程应该相当简单。