我检查了集群节点的内存使用情况。 top
命令的快照如下:
Mem: 24659948k total, 3113860k used, 21546088k free, 168328k buffers
Swap: 28667984k total, 570196k used, 28097788k free, 353460k cached
我对上面的输出有一些疑问。
- 节点有足够的可用物理内存。那为什么还要使用一些交换空间呢?
- 物理内存有
168328k 缓冲区
。它是什么?它有什么用? - 与
缓存
交换相同的问题。它是什么?它有什么用? - 上述输出对集群节点的性能有影响吗?
任何帮助将不胜感激。
最佳答案
使用的交换空间由您的“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
关于linux - 顶部命令输出中的 Mem 和 Swap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18086909/