Iowait可能导致显着的RAM消耗增加

我有一个node.js进程在linux EC2实例上连续运行,它提取数据并将其存储在mysql中。 一些读取也在数据库上执行。

这个过程可以在数小时或数天内运行良好,并且具有稳定的RAM消耗。 但是不时开始消耗越来越多的RAM,一直增加到100%,导致服务器无响应。

我首先想到了内存泄漏,但还没有设法find任何东西。

然后我看看I / O(使用htop的“详细的CPU时间选项”),看到有很多Iowait(CPU栏保持填充灰色),同时节点的RAM使用率。 js进程正在增加。

解释100%内存消耗问题和I / O性能问题之间是否存在关联是否正确? 还是应该回到我的内存泄漏调查?

更新:我启动了相同的代码,从不同的云提供商处理服务器上的相同数据量。 到目前为止,我没有任何内存使用高峰。 我正在考虑切换到该提供商,忘记这一点。 仍然好奇知道问题的原因可能是什么。 硬件 ? 一些configuration?

解释100%内存消耗问题和I / O性能问题之间是否存在关联是否正确?

你有东西倒退 – 最有可能的情况是内存争用导致高IO。 当可用的RAM变小时,页面开始被换成磁盘,这将导致IO性能下降。

还是应该回到我的内存泄漏调查?

是的。 你可以采取的另一个步骤是把你的交换转移到一个单独的主轴上,这样它就不会与其他服务器竞争IO。 这应该只是一个临时的创可贴解决scheme。