我确定这是一个非常基本的问题,但我只是想弄清楚运行基于Rails的网站的Ubuntu Hardy服务器发生了什么.似乎我有可用的可用内存,但系统报告它仍在交换内存(除非我读错了吗?).
这是free -m输出
total used free shared buffers cached Mem: 1024 905 118 0 33 409 -/+ buffers/cache: 462 561 Swap: 2047 95 1952
任何人都可以向我解释一下它可能始终保持95MB交换的一些可能原因(它永远不会减少)吗?我只是想找一些我可以查看的内容,这些内容可以向我解释Linux中内存的使用情况.
我在Ted Ts’o教授的课程中接受培训,当我问同样的问题时他向我解释的方式是这样的……
原文链接:https://www.f2er.com/ubuntu/348566.html默认情况下,内核保留大部分内存用于缓存文件系统元数据等内容.这就是为什么你的“二手”栏显示905MB.这是“使用”的总内存,意味着程序和缓存.实际可用内存量位于“ – / buffers / cache”旁边的“free”列下,换句话说,为561MB.这是程序可用的数量.
现在,由于内核有462MB用于缓存,它完全可以留下118MB.当一个程序对内核说,“嘿,我现在需要50MB的内存!”,内核从这个“免费”池中获取内存.这使得“免费”池大约为68MB,这对于舒适来说太小了,所以在绘制内存之后,存储在缓存中的内容量会降低,“免费”池会重新启动.
但如果一个程序是一头猪,会发生什么,并说“我现在需要120MB的内存!”.你没有那么多“免费”内存,因此内核无法将其提供给程序,即使是暂时的,因此内核会深入研究交换,只需足够长的时间来分配足够的可用内存来为程序提供所需的内容,然后释放足够的缓存数据,以使“免费”内存恢复到舒适的水平.
通过建立过程,交换中的数据不会立即从交换中释放,即使它是缓存数据.交换内存将被使用的唯一时间是,某些东西请求存储在该小部分交换中的元数据(或任何缓存的信息).离开它没有任何害处.
如果它困扰你,你可以运行’swapoff’然后’swapon’来摆脱它,但它不会伤害任何东西.