通过交换来增加缓存?

通过交换来增加缓存?

我使用的服务器有 128 GB RAM。在运行某些作业时,我发现交换空间使用频繁。

顶部输出

top - 05:14:51 up 16:52,  2 users,  load average: 3.99, 5.16, 5.37
Tasks: 760 total,   1 running, 759 sleeping,   0 stopped,   0 zombie
Cpu(s): 10.9%us,  0.2%sy,  0.0%ni, 88.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%
Mem:  132050336k total, 130871212k used,  1179124k free,   387620k buffers
Swap:  4194300k total,    64396k used,  4129904k free, 117989588k cached

免费的输出

$ free -g
            total       used       free     shared    buffers     cached
Mem:           125        124          1          0          0        112
-/+ buffers/cache:         11        113 
Swap:            3          0          3


从此我才明白12GB 内存目前正在被进程使用,113GB 是操作系统缓存。
我的理解是缓存使用的内存是不必要的,并且在内存使用率高时,此缓存会被释放并提供给需要内存的进程。

然而我在监控工具中看到了警告1260 pages were swapped to disk in the previous 15 minute(s)
操作系统是否会交换页面只是为了增加内存中的文件系统缓存?如果是这样,这会影响系统性能吗(由于频繁交换)?

相关内容