top和htop不同意内存使用情况,但在GlusterFS服务器上正在使用swap。 这能改善吗?

如果我运行free -mtophtop ,我得到不同的内存使用。 该系统还使用了less量交换。 从这个问题我明白为什么他们报告不同的价值(有些数据被认为是“可丢弃的”,因此被一个系统包括在内而不被另一个包括在内),而不是为什么系统决定使用交换? 它是运行最新版本(3.4.3)的GlusterFS服务器。

有谁知道为什么它使用交换,而不是清除物理内存中的“可丢弃”数据,并使用它?

有什么我可以/应该做的,或者我应该改变监控系统,不要担心less量的交换使用?

免费-m:

自由

最佳:

最佳

HTOP:

HTOP

谢谢你的帮助。

我根本不担心小的交换使用情况。 恰巧内核从内存中删除一些数据进行交换。 您可以使用swappiness选项来控制内核的行为:

echo 60 > /proc/sys/vm/swappiness

这个控制用来定义内核交换内存页面的方式。 较高的值会增加攻击性,较低的值会降低交换量。 值为0将指示内核不启动交换,直到空闲和文件支持的页面数量小于区域中的高水位标记为止。 默认值是60。

您可以在内核文档中find有关虚拟内存子系统的更多信息

你正在观察的内存使用率在freetophtop之间是一样的。 我们从top视图来计算它:

 8171728-(341276+2195864+4061972) / 1024 = 1535 

这实际上匹配你在htop获得的。

另外,当您将top值从KB转换为MB时,您会看到free值也匹配。

你恐慌的交换使用可能只是一些无聊的守护进程交换到磁盘,不用担心。