ubuntu – 内存是免费的,但仍在交换?

我确定这是一个非常基本的问题,但我只是想弄清楚运行基于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教授的课程中接受培训,当我问同样的问题时他向我解释的方式是这样的……

认情况下,内核保留大部分内存用于缓存文件系统元数据等内容.这就是为什么你的“二手”栏显示905MB.这是“使用”的总内存,意味着程序和缓存.实际可用内存量位于“ – / buffers / cache”旁边的“free”列下,换句话说,为561MB.这是程序可用的数量.

现在,由于内核有462MB用于缓存,它完全可以留下118MB.当一个程序对内核说,“嘿,我现在需要50MB的内存!”,内核从这个“免费”池中获取内存.这使得“免费”池大约为68MB,这对于舒适来说太小了,所以在绘制内存之后,存储在缓存中的内容量会降低,“免费”池会重新启动.

但如果一个程序是一头猪,会发生什么,并说“我现在需要120MB的内存!”.你没有那么多“免费”内存,因此内核无法将其提供给程序,即使是暂时的,因此内核会深入研究交换,只需足够长的时间来分配足够的可用内存来为程序提供所需的内容,然后释放足够的缓存数据,以使“免费”内存恢复到舒适的水平.

通过建立过程,交换中的数据不会立即从交换中释放,即使它是缓存数据.交换内存将被使用的唯一时间是,某些东西请求存储在该小部分交换中的元数据(或任何缓存的信息).离开它没有任何害处.

如果它困扰你,你可以运行’swapoff’然后’swapon’来摆脱它,但它不会伤害任何东西.

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...