如果我运行free -m
, top
and htop
,我会得到不同的内存使用。该系统也使用少量的交换。我从这个问题中理解了他们为什么报告不同的值(一些数据被认为是“可丢弃的”,因此被一个系统包含而另一个系统不包含),但不知道为什么系统决定使用交换?它是运行最新版本 (3.4.3) 的 GlusterFS 服务器。
有谁知道它为什么使用交换而不是从物理内存中清除“可丢弃”数据并改用它?
有什么我可以/应该做的,还是我应该改变监控系统而不用担心少量的交换使用?
免费-m:
最佳:
顶部:
谢谢你的帮助。
我一点也不担心小交换的使用。碰巧内核会从内存中删除一些数据以进行交换。您可以使用swappiness选项控制内核的行为:
echo 60 > /proc/sys/vm/swappiness
此控件用于定义内核交换内存页面的积极程度。较高的值会增加攻击性,较低的值会减少交换量。值 0 指示内核在空闲和文件支持的页面数量小于区域中的高水位线之前不启动交换。默认值为 60。
您将在内核文档中找到有关虚拟内存子系统的更多信息
free
您观察到的内存使用情况在,top
和之间是一样的htop
。让我们从top
视图中计算它:这实际上与您获得的内容相匹配
htop
。此外,当您将
top
值从 KB 转换为 MB 时,您会看到这些free
值也确实匹配。你担心的交换使用可能只是一些无聊的守护进程交换到磁盘,不用担心。