如果有足够 RAM,为什么还要使用交换?

如果有足够 RAM,为什么还要使用交换?

我发现有时基于 Linux 的服务器在没有必要的情况下使用交换。尤其是当所有可用 RAM 都用于缓存时。但现在我的专用服务器(具有 16GB RAM)开始交换,尽管有足够的可用 RAM:

$ free -m

            total      used     free     shared    buffers     cached
Mem:        16029      10035    5994     0         421         8508
-/+ buffers/cache:     1104     14925
Swap:       19322      3        19319

服务器正在运行 Web 服务器、php 和数据库,它们永远不会使用全部 16GB。应该不需要交换。但 Linux 仍然这样做。在这种情况下只有 3MB,但这是原则。

答案1

如果内核发现某个内存页面长时间未被触及,它就会趁机将其换出,释放该内存以供其他应用程序或缓存使用。

这样做可以更好地利用您现有的 RAM,使您的系统性能更好。

相关内容