内存命令输出中的Mem和Swap

时间:2013-08-06 17:41:38

标签: linux caching buffer swap

我检查了群集节点的内存使用情况。 top命令的快照如下:

Mem:  24659948k total,  3113860k used, 21546088k free,   168328k buffers
Swap: 28667984k total,   570196k used, 28097788k free,   353460k cached

关于上面的输出,我有几个问题。

  1. 节点有足够的空闲物理内存。那么为什么要使用一些交换空间呢?
  2. 物理内存有168328k buffers。它是什么?它用于什么?
  3. cached交换的同样问题。它是什么?它用于什么?
  4. 上述输出中是否存在关于群集节点的性能影响?
  5. 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

使用的交换空间由您的'swappiness'系统值决定。
要查找当前设置,请尝试:

cat /proc/sys/vm/swappiness

该值的范围为0-100,100是积极交换,0表示仅在RAM处于容量时使用交换。
要暂时调整值,请尝试:

echo $YOURVALUE > /proc/sys/vm/swappiness

并永久调整它,添加一个sysctl选项

echo $YOURVALUE >> /etc/sysctl.conf; sysctl -p

缓冲区和缓存用于常用的打开和执行命令。当空间被“使用”时,不要担心它们,如果需要RAM,内核将自动释放该空间。您可以使用以下命令强制清除缓存(尽管实际上并不需要):

sync; echo 3 > /proc/sys/vm/drop_caches