我已经有了第一个CentOS 7 KVM主机设置了大约一年,它是一个双核四核机器,具有32GB的物理内存。 我有十二台虚拟机运行,总共分配了23GB的内存。 这个系统有4GB的交换,这里是目前的使用细节….
KiB Mem: 32773552 total, 32564628 used, 208924 free, 2224 buffers KiB Swap: 4603836 total, 3262108 used, 1341728 free. 9606248 cached Mem
我读过你真的不想要大量的交换,因为如果它不应该使用交换。 我相信以上显示超过3GB现在使用,这是正常的? 我没有任何性能问题的服务器。 我目前正在build立一个新的服务器,并比较看看在应该有类似负载的新服务器上使用的最佳交换量是多less?
这并不像看起来一样简单。 未使用的内存浪费了内存,Linux甚至将这种方法用于“未使用的”内存。 这意味着内存,这是实际分配,但尚未使用一段时间可能会被换出。 由于最近并不需要,所以推测不会有太大的性能影响。 实际上,还有一点点。 Linux,试图提前(闲置时)将未使用的数据交换出去,同时将其保存在RAM中。 这样,RAM可以几乎立即释放(当需要分配更多的内存时),同时又不会影响从交换中获取数据的性能影响(如果不需要旧数据)。 这被称为交换caching,可以通过运行cat /proc/meminfo | grep SwapCached cat /proc/meminfo | grep SwapCached )。
Linux交换行为由sysctl vm.swappiness控制(请参见维基百科 )。 它的范围从0(完全不交换),1(在最近的内核中,只在绝对必要时交换)到100(在交换数据时非常积极)。
如果您的服务器运行正常,但没有出现性能问题迹象,请保持原样。 如果你看到任何麻烦,你可以尝试调整这个值。