我不确定这个问题是否众所周知,我未能找到任何直接的解释。
我在 Azure 上有一个小型普通虚拟机(B1s),运行着 Canonical 的 Ubuntu 18.04。
它上面有一个常规的 LNMP 堆栈和一个简单的 wordpress 网站。所有软件都是来自官方存储库的最新稳定版本。
一切正常,服务器上的负载通常很小。但是,有时(偶尔,我无法检测到任何特定的时间模式或其他东西)平均 IOPS 会突然达到约 400/秒,达到此 VM 大小允许的上限,VM 挂断并且不响应任何操作。唯一有帮助的是从 Azure 门户重新启动 VM,之后它又可以正常工作了。
值得一提的是,所有这些突发事件都只针对读取操作。而且它们与网站流量没有任何关系。相反,有些这样的峰值发生在网站流量处于每日最低值时。
没有 cron 作业或任何其他脚本可以创建这样的负载(至少我不知道有)。除了标准的 Ubuntu 安装外,只有 Nginx、MySQL、PHP 和 PHP-FPM。哦,还有使用默认设置的 fail2ban,可以切断顽皮的暴力破解机器人。
这是我的 IOPS 图表上周,Azure 控制台中出现了这种情况。很明显,IO 负载一直很低,然后突然飙升。
知道造成这种行为的原因是什么以及从何处着手吗?