有时我会看到基于Linux的服务器在没有必要时使用交换。 特别是当所有的免费内存用于caching。 但现在我的专用服务器与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,但这是原则。
如果内核看到一个内存页面很长时间没有被触摸,它就会机会地将其交换出去,为其他应用程序或caching释放内存。
这样做可以更好地使用您拥有的RAM,从而使您的系统更好地运行。