2

我从集群的一个节点检查了内存使用情况。该命令的快照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. 从上面的输出中是否对集群节点有任何性能影响?

任何帮助将不胜感激。

4

1 回答 1

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

于 2013-09-25T20:28:54.457 回答