我刚刚收到一封来自 Linode 的邮件,说我的账户“过去 2 小时内的平均磁盘 io 速率已超过通知阈值 (1000),为 1017.36”。
我的问题只是出于好奇:从字面意思来看,磁盘 io 速率肯定是指对服务器磁盘的读写速率。但是由于过去几年我从未收到过这样的通知,所以我很想知道是什么原因造成的,以及这与我的网站有什么关系。
页面浏览量会产生磁盘 I/O 吗?下载会产生磁盘 I/O 吗?还是只有复制或创建文件才会产生磁盘 I/O?这是否与我的网站的整体性能和受欢迎程度有关?
我只是想要一个简短的介绍,以便我可以自己进一步研究,详细的解释是值得赞赏的,但不是必要的。
答案1
您从 Linode 收到的消息不是警告 - 它们是对用户可配置的资源利用率阈值的响应。虽然这些通知并不一定意味着您的虚拟机出现任何问题或您需要更改任何内容,但 IO/CPU/等的突然增加。能表明出现了问题,因此您需要深入研究日志以确保能够识别额外 IO 负载的来源。
关于您对 IO 的较大问题:任何接触磁盘的操作(无论是读取还是写入)都被视为 IO。页面浏览量肯定会导致写入日志文件的 IO,但构建页面浏览量所需的 php/mysql 数据很可能已缓存在 RAM 中,因此它们不一定会导致 IO。
答案2
任何读取或写入操作都会生成 IO。交换也是如此。执行 free -m 以查看您是否正在使用交换,是否获得更多 RAM 或减少 RAM 使用量。此外,页面加载会从磁盘读取,因此确实会产生 IO,一个好的解决方法是使用 memcached。