当前位置: 首页>>技术教程>>正文


我有16GB内存。我需要32GB交换吗?

, ,

问题描述

我读过很多地方,交换空间的经验法则是将物理RAM的数量翻倍。但是,32 GB似乎很多。我需要那么多吗?对于这么高的物理内存,我是否需要它?

最佳解决方法

这完全取决于你打算如何处理机器。例如,如果它是一个Sap服务器,那么是的,我会添加32GB交换(我们有128GB RAM和32GB交换工作的盒子)。如果你操纵大量的图片和视频,那么有一点互换是有道理的。 32GB可能是矫枉过正。

但是我不会说零交换。

在不太可能发生内存不足的情况下 – 可能会打开一个大文件,在Firefox中设置一个长时间运行的选项卡,这并不重要,在这种情况下,内核OOM杀手将会启动并开始杀死应用程序以恢复内存。在这种情况下,完全有可能在应用程序被杀后丢失数据。但是,如果您有一点互换,那么系统将继续进行,抓取交换并允许系统继续。当交换发生时系统变慢,您注意并调查所有交换耗尽之前。磁盘也很便宜,为什么不交换?

如果没有问您实际上在使用计算机做什么,那么任何说“您不需要交换”的人都在做出假设。尽管对于吃RAM的计算机你可能做得很少,但最好还是问一下你打算做什么的问题,然后再作出不认可”need”的轻率判断。在我的愚见

次佳解决方法

以下是来自RedHat的一个非常好的建议:Recommended System Swap Space

摘自相同链接的摘录:

In years past, the recommended amount of swap space increased linearly with the amount of RAM in the system. But because the amount of memory in modern systems has increased into the hundreds of gigabytes, it is now recognized that the amount of swap space that a system needs is a function of the memory workload running on that system. However, given that swap space is usually designated at install time, and that it can be difficult to determine beforehand the memory workload of a system, we recommend determining system swap using the following table.

当前表格(截至2017年12月):

Amount of RAM in the system   Recommended swap space         Recommended swap space 
                                                             if allowing for hibernation
---------------------------   ----------------------------   ---------------------------
2GB of RAM or less            2 times the amount of RAM      3 times the amount of RAM
2GB to 8GB of RAM             Equal to the amount of RAM     2 times the amount of RAM
8GB to 64GB of RAM            At least 4 GB                  1.5 times the amount of RAM
64GB of RAM or more           At least 4 GB                  Hibernation not recommended

原始表格:

Amount of RAM in the System     Recommended Amount of Swap Space
4GB of RAM or less              a minimum of 2GB of swap space
4GB to 16GB of RAM              a minimum of 4GB of swap space
16GB to 64GB of RAM             a minimum of 8GB of swap space
64GB to 256GB of RAM            a minimum of 16GB of swap space
256GB to 512GB of RAM           a minimum of 32GB of swap space 

第三种解决方法

哎呀。这篇文章的答案是非常错误的,这是谷歌搜索“多少交换?”的第一个结果之一。

首先,一个很好的参考点是Ubuntu Swap FAQ

这个常见问题提出了一个重要的观点,这里没有人提到,那是(强调我的)

Sometimes, a large program (like OpenOffice, Neverwinter Nights, or a video editor) make the entire system need extra memory. A significant number of the pages used by these large programs during its startup may only be used for initialization and then never used again. The system can swap out those pages and free the memory for other programs or even for the disk cache. In these cases, swap will be used to help the system handle any extra load.

所以,交换不仅仅是为了休眠!这项活动,换出未使用的页面,在某些情况下可能会有所帮助,而在其他情况下则可能不利。因为它可以释放系统在其他地方使用的内存,但是当换出过于积极时会产生不利影响,并且将实际需要的页面换掉。特别是在桌面系统上,应用程序可以长时间处于闲置状态,但用户仍然期望在将其恢复到现实生活中时立即获得性能。控制这种攻击的方式被称为swappiness

Ubuntu Swap常见问题在What is swappiness and how do I change it?中对此进行了详细讨论。Ubuntu系统的默认值是60,而常见问题解答建议桌面计算机的值为10。

所以,我想说,没有一个完全没有交换空间的系统通常是非常重要的,因为有些人在这个问题上提出了建议,除非您知道某些特定的系统使用场景,并且非常了解后果它可能有。 (就个人而言,我不会在没有交换的情况下运行系统)在没有交换的内存不足情况下,系统将开始查杀进程(通常是导致OOM的进程)

第四种方法

可能不会。如果您打算休眠您的计算机(suspend-to-disk),那么您至少需要16 GB。如果你不休眠,那交换几个千兆字节就足够了(最多4-8个)

第五种方法

从经验我可以这样说:

对于我在3年内使用4GB ram的内容,Ubuntu的交换使用率大约为60MB,但只在执行一些非常密集的任务时使用。几个星期前,我开始使用具有16GB内存的PC,并且交换使用率一直保持在0%。我做了多个编译,视频渲染和其他密集型任务。互换从未发生过变化。甚至没有1KB的变化。

基本上,在Ubuntu中,您拥有的内存越多,使用或需要交换任何任务的可能性就越小。 16GB的内存,甚至8GB的内存绰绰有余。我已经完成了16GB PC 8 Virtualbox PC(每个1GB到2GB的RAM)。我编译并渲染了一个720p的视频,甚至在这些条件下都没有改变。

有了这个说法,内存ram的两倍的规则不应该适用于基于Linux的系统,如果你拥有更多的内存,则更是如此。然而,您应该拥有与您的内存大小相同的交换大小,或者如果您打算进入休眠状态,因为休眠过程可以抓取内存中的所有内容并将其置于交换位置,这就是为什么您需要最小大小等于内存大小的原因交换。

另一个细节是有些应用程序(不是全部)仍然会强制从swap中读取。所以有点好。完全禁用它是非常糟糕的情况下,你到了内存不足或OOM的地步。在这一点上,如果你没有交换内核,内核不能交换进/出不同的RAM应用程序的用法,并最终将开始杀死较少使用的内存。

如果它有助于家庭桌面决策,在4年多的时间里更新这个答案之后,我使用了16GB,32GB,现在是64GB的RAM。只有128MB的交换测试表明,除了如果我想休眠,我不需要更大的交换。我已经在它们上面使用了云环境,lxc,virtualbox,wine,您可以将其命名。我用openshot,卡扎姆,手刹,大胆制作了视频。我使用过gimp,blender,Inkscape甚至是完整的LibreOffice套件。我甚至在蒸蒸日上,并没有使用这种交换方式。当然,如果你最终以某种方式使用完整公羊的数量,它最终会被使用,但总的来说,你拥有的内存越多,交换所需的就越少。

只是我2美分。

第六种方法

不,您不需要32 GB,只要您不使用挂起到磁盘等功能即可。

第七种方法

在大多数情况下,我会说你根本不需要任何东西。也许如果你编辑非常大的图像文件,或者其他需要很多内存的应用程序,你可能需要一些。

我从来没有在我的系统上看到任何使用过的,类似于你的系统。事实上,曾经有一次,我偶然发现有一两周被禁用了,从未发现任何问题。但是我的交换驱动器仍然保持大约5GB,主要是因为我有超过1TB的可用空间,并且没有使用所有的空间。

第八种方法

如果你的内存高于1GB,通常对于Ubuntu来说已经足够了。 “Swap = RAM x2”规则适用于256或128mb ram的旧电脑。

所以1GB的交换对于4GB的RAM通常就足够了。 8 GB会太多。

第九种方法

如果你使用休眠,你的交换应该至少与物理内存相同。

第十种方法

如果您使用休眠模式,则可以尽可能多地交换内存数量。

有关多少交换的一般经验法则,请阅读此处:

https://help.ubuntu.com/community/SwapFaq

在你的情况下,我会说4 GB将足以匹配你的RAM。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/143.html,未经允许,请勿转载。