交换内存几乎已使用完毕,但进程运行良好。我应该担心吗?

交换内存几乎已使用完毕,但进程运行良好。我应该担心吗?

free -m我的 Linux 机器上显示交换内存几乎已完全使用。但是,对系统性能没有影响。但我真的应该担心吗?交换缓存也没有得到充分利用?那么这实际上会影响性能吗?请提出建议

免费

           total       used       free     shared    buffers     cached
Mem:      32959100   32786348     172752          0      85096   30303388
-/+ buffers/cache:    2397864   30561236
Swap:      4192956    4188456       4500

cat /proc/meminfo|grep 交换

SwapCached:     184012 kB
SwapTotal:     4192956 kB
SwapFree:        11584 kB

swappiness 为 60

我们还可以看到缓冲区/缓存下有大量可用内存。那么为什么我的交换内存使用率很高?这会对将来的性能产生什么影响?

答案1

根据答案判断有关 Sever Fault 的这个问题看起来你所有的交换文件正在使用中,但还远远没有达到内存不足的程度。

缓冲区/缓存行表明,虽然磁盘缓存中确实有 30GB 内存,但其中大部分内存已准备好在需要时释放。如果“已用”列中的数字较大,则将有大量数据等待写入磁盘。

由于事实上它们都只是缓存数据,所以我怀疑您的内存中有 2gb 的实时应用程序数据,其余数据则由磁盘缓存使用。

Linux 完全有可能抢先调出所有应用程序数据,但数据仍然存储在 RAM 中。页面文件已满并不意味着系统没有可用内存。

引用我链接的页面:

free如果行中的值-/+ buffers/cache:很低,则表明 Linux 系统的内存确实不足。

相关内容