当 CentOS 服务器内存不足且没有交换分区时,pdflush 会尝试做什么?

当 CentOS 服务器内存不足且没有交换分区时,pdflush 会尝试做什么?

我注意到昨晚我们的一台 CentOS 机器的内存使用率非常接近 100%。机器上的平均负载猛增至约 16,我注意到有几个 pdflush 进程在磁盘 IO 上被阻塞(在 top 中运行状态 D)。我以为 pdflush 用于将数据从内存交换到磁盘(操作系统内存分页),但该特定服务器没有安装交换分区。那么在这种情况下 pdflush 实际上在做什么?

答案1

pdflush的主要任务是刷新磁盘缓冲区缓存(据我所知,这是它的唯一任务,但 Linux 专家可能会纠正我这一点)。它刷新的缓存包括已写入但尚未提交到磁盘的文件。
如果我没记错的话,kswapd虚拟进程负责处理交换空间并将内存页面从 RAM 移动到磁盘并再次返回。


为了您的系统健康,请为您的服务器(或swapon您现有的服务器) 设置交换分区

类 Unix 系统需要能够交换。当没有可用的交换时,可能会发生一些不好的事情(例如磁盘缓冲区缓存被压缩到很小的内存,这确实会让人pdflush心情不好)。
即使您“永远”不会使用交换空间,磁盘也足够便宜,您可以将 2G 投入其中。

相关内容