我的服务器具有的RAM 8Gigs和8Gigs配置用于交换文件。我有内存密集型应用程序的运行。这些应用具有峰值负载时,我们发现交换使用增加。大约使用1个GIG互换的。

我的RAM 4Gigs和交换和在其上运行类似的存储器密集型应用的8场演出另一个服务器。但在这里交换使用是非常微不足道的。大约100 MB。

我想知道什么是在确切条件或的 粗糙式 基于在Linux将做RAM中的处理存储器的换出交换文件。 我知道它基于swapiness因素。还有什么是它的基础上?交换文件大小?到Linux内核文档/源代码的任何指针解释这将是巨大的。

有帮助吗?

解决方案

我已经看到很多人发布的这是什么一样的主观解释。下面是有希望的更完整的答案。

在上柱的Linux 2.6.28 swappiness分割LRU是用于任意地修改所计算确定的LRU两者建立的压力的分数的乘数。

因此,例如,没有免费的记忆中留下一个系统上 - 你有现有内存的值是基于断了多少内存显示为“有效”和页面是如何经常提拔速度的速度测量活跃后落入非激活名单。

用的活性和非活性之间的页面许多优惠/降级的LRU处于大量使用。

通常文件备份存储是便宜和安全的运行内存时,并自动被赋予200的改性剂(驱逐这使得文件备份存储器200倍交换支持的存储器(其具有值0更毫无价值)时它乘以该级分

什么swappiness确实是通过扣除你给swappiness数(默认为60)到文件存储器和添加你给作为乘数到不久又看到内存swappiness值修改该值。因此,默认swappiness给你留下匿名内存为80倍以上的文件存储(200-60文件,0 + 60匿名)更有价值。因此,已用完所有的存储器的典型linux系统,页面缓存将必须比匿名存储器匿名存储器多种活性80倍到有利于页缓存的被换出。

如果设置swappiness至100这给不久的100和文件存储器中的改性剂100(200 - 100)的改性剂而使两个LRU相等地加权。因此,该公司希望页面缓存提供匿名内存是不是活跃页面缓存然后不久将内存交换到磁盘,使额外的页面缓存空间的文件系统重

其他提示

的Linux(或任何其他操作系统)把存储器成页(通常4KB)。每个页面代表的内存块。这些页面使用信息维护,基本上包含了该页面是否是免费的还是在使用(有些过程的一部分),它是否已经被最近访问,信息是什么样它包含的数据(过程数据,可执行代码等。 ),页面的所有者,等等。这些页面也可以大致分为两类 - 文件系统页面或页面缓存(其中所有数据读取/写入文件系统所在)和属于过程的页面。

当在系统运行内存不足,内核启动换出基于它们的使用的页面。使用的页的列表排序w.r.t访问的新近度是常见的用于确定哪些页面可以被换出(Linux内核具有这样的列表太)。

在交换,Linux内核的需求来决定的摧毁内存页面并将它们发送到交换时如何权衡。如果交换文件系统页面过于激进,更读是从文件系统需要阅读这些内容返回在需要的时候。但是,如果换出程序页面更积极它可以伤害交互性,因为当用户试图使用换出的过程中,他们将不得不从磁盘读取回来。见一个很好的讨论这里这一点。

通过设置swappiness = 0,你告诉Linux内核不换出属于过程的页面。当设置swappiness = 100,而不是,你告诉内核换出属于工艺更积极的网页。要调整系统,尝试改变的10个步骤的swappiness参数,监控性能和页面被输入/输出时使用“的vmstat”命令各设置交换。记住,给你最好的结果设置。记得在高峰使用时间这样做测试。 :)

有关的数据库应用程序,swappiness =通常建议0。 (即使是这样,在系统上测试不同的设置,以到达一个良好的值)。

参考文献:结果 HTTP://www.linuxvox。 COM / 2009/10 /什么 - 是最Linux内核参数-VM-swappiness / 结果 http://www.pythian.com/news/1913/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top