缓冲内存降至零

缓冲内存降至零

我们一直遇到系统无法访问的问题。特征是 1) 阻塞和运行队列突然激增,2) 缓冲内存降至零。

症状是 1) 现有流程继续运行,没有任何问题,2) 新流程开始失败或严重延迟。因此,例如,新的 SSH 会话可能无法参与,因为 SSH 和 PAM 的连续进程和线程被延迟或无响应。另一个例子是在 CRON 中生成的脚本。当缓冲区内存为 0 时,新的 CRON 周期将被阻止,从而导致级联脚本。

我认为被阻止的新进程与堆栈内存有关。但我读到的症状是缓冲内存突然下降(这与 I/O 更多相关)。

可能连接的是快照会话。我们注意到,Snapshot 会动态挂载 NFS 卷来收集备份文件。这是否会超出可用的缓冲区容量?

添加于 08/11/2020

不确定这是否是一个“答案”,但它确实开始澄清问题。我们发现有一个 Puppet 脚本每 30 分钟运行一次,它正在追踪快照进程。快照本质上是在备份过程中复制目录树,因此您可以想象,嵌入脚本中的无辜 df 命令可能会变成暴君,忙于编译整个数据树。我们注意到 df 命令频繁出现和级联,因为 Puppet 脚本没有完成,每次在 cron 中调用时只是简单地堆叠起来。

删除 Puppet 进程后,系统变得更加稳定。但今天早上我们的阻塞进程又出现了高峰——所以请继续关注。这个谜团目前或许还没有解开。

相关内容