首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux将内存从RAM交换到交换文件的确切条件是什么?

Linux将内存从RAM交换到交换文件的确切条件是什么?
EN

Stack Overflow用户
提问于 2010-01-08 16:28:58
回答 2查看 2.5K关注 0票数 5

我的服务器有8Gigs的RAM和8Gigs配置为交换文件。我有内存密集型应用程序运行。这些应用程序有高峰负载,在此期间,我们发现交换使用率增加。使用了大约1G的交换。

我有另一台服务器,它有4G的RAM,8G的交换和类似的内存密集型应用程序。但是在这里,交换的使用是非常微不足道的。大约100 MB。

我想知道确切的条件是什么,还是基于的粗略公式,它将对内存中的进程内存进行交换文件的交换。我知道它的基础是虚张声势。它还基于什么?交换文件大小?任何指向Linux内核文档/源代码的指针都能解释这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-19 22:38:27

我见过很多人对此发表了主观的解释。希望这是一个更完整的答案。

在post 2.6.28上的拆分LRU中,Linux交换是一个乘法器,用于任意修改计算的分数,以确定两个LRUs中累积的压力。

因此,例如,在没有空闲内存的系统上--现有内存的值是根据被列为“活动”的内存的比率和页面在进入非活动列表后被提升为活动的频率来衡量的。

一个LRU在活动和非活动之间有很多提升/降级的页面是在很多使用中。

通常,当内存耗尽时,文件备份存储更便宜、更安全,并且会自动获得200的修饰符(这使得文件备份内存比交换备份内存(交换支持内存的值为0)乘以此分数时更无价值(交换备份内存的值为0)。

swappiness所做的是修改这个值,方法是扣除给文件内存的切换数(默认为60),并将您给出的切换值作为一个乘数添加到anon内存中。因此,默认的交换使您拥有比文件内存更有价值的匿名内存(200-60表示文件,0+60用于anon)。因此,在耗尽所有内存的典型linux系统上,页缓存必须比匿名内存活跃80倍,才能将匿名内存替换为页缓存。

如果将swappiness设置为100,则给出一个修饰符为100,而文件内存则为100 (200-100),使得两个LRUs都具有相同的权重。因此,在文件较多的系统上,需要提供页面缓存的anon内存不像页缓存那样活动,然后将anon内存交换到磁盘,为额外的页缓存腾出空间。

票数 8
EN

Stack Overflow用户

发布于 2010-01-08 17:23:38

Linux (或任何其他操作系统)将内存分成页面(通常为4Kb)。这些页面中的每一个都代表了一块内存。维护这些页面的使用信息,这些信息主要包含以下信息:页面是免费的还是正在使用(某个进程的一部分)、最近是否已被访问过、它包含什么样的数据(进程数据、可执行代码等)、页面所有者等等。这些页面还可以大致分为两类--文件系统页或页缓存(在其中所有数据都读/写到您的文件系统中)和属于进程的页。

当系统内存不足时,内核开始根据页面的使用情况交换页面。使用按顺序排列的页面列表w.r.t最近的访问通常用于确定哪些页面可以交换(linux内核也有这样的列表)。

在交换过程中,Linux内核需要决定核弹内存中的页面并将它们发送给交换时需要交换什么。如果它过于积极地交换文件系统页,则需要从文件系统中读取更多的数据,以便在需要时重新读取这些页面。但是,如果它更积极地交换进程页,就会损害交互性,因为当用户尝试使用交换的进程时,必须从磁盘中读取它们。请看一个不错的讨论这里关于这一点。

通过设置swappiness = 0,可以告诉linux内核不要交换属于进程的页面。相反,当设置swappiness = 100时,您会告诉内核更积极地交换属于进程的页面。要调优您的系统,请尝试使用"vmstat“命令按10步更改swapped参数,监视性能和在每个设置下交换的页面。保持给你最好结果的设置。请记住在峰值使用时间内进行此测试。:)

对于数据库应用程序,通常建议使用swappiness =0。(即使如此,在您的系统上测试不同的设置,以达到一个好的值)。

参考文献:

http://www.linuxvox.com/2009/10/what-is-the-linux-kernel-parameter-vm-swappiness/

http://www.pythian.com/news/1913/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2029015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档