我只是想知道您是否可以拥有太大的交换分区。如果是,交换分区什么时候太大?交换分区太大(即使我有足够的磁盘空间),也会带来哪些负面影响?
如果没有,拥有超过建议的交换空间的好处是什么?
我只是想知道您是否可以拥有太大的交换分区。如果是,交换分区什么时候太大?交换分区太大(即使我有足够的磁盘空间),也会带来哪些负面影响?
如果没有,拥有超过建议的交换空间的好处是什么?
Answers:
乍一看,您不能有太多交换,因为您可以将交换视为增加RAM的一种方式。实际上,它并没有增加 RAM,它只是假装:如果您具有8 GB的实际RAM和配置的24 GB交换空间,则您的程序可以分配和使用最多8 + 24 = 32 GB的内存一开始听起来不错。
如果您运行的应用程序存在内存泄漏或不是真正适合运行8 GB的内存(例如,考虑视频编辑),则这些应用程序将开始使用该交换空间,并且交换速度很慢。这些应用程序积极使用的交换空间越多,系统越忙于仅在磁盘之间来回移动内存。这将大大降低整个系统的响应速度,并导致不良的用户体验。
最终-当交换空间用完时-某些应用程序将面临内存不足的情况,并被内核的 OOM_Killer杀死。
从维基:
当操作系统无法创建更多的虚拟内存时,现代计算机中通常会出现OOM情况,因为它的所有潜在支持设备都已装满。
因此,交换空间过多的一个缺点是:拥有的交换空间越多,OOM发生的时间就越晚,并且系统滞后且无响应的时间就越长。
当然,另一个明显的弊端是浪费磁盘空间,但这在当今并不重要。
较大的交换空间没有直接的缺点。通过内核管理它的方式,交换空间数量的增加超出了足够的数量,对性能没有影响或影响很小。
“太多”交换空间的唯一缺点是您不能使用该空间进行存储。
除了减少磁盘上的空间之外,您将不会感到任何其他弊端,我认为当今大多数系统中2倍内存的概念已经过时了。我通常建议使用与笔记本计算机相同大小的ram来交换笔记本电脑中的内存,以使您有机会休眠PC而不会由于RAM的易失性而丢失任何数据。
当我认为要在短时间内升级RAM大小时,我唯一会考虑为交换分区使用超过RAM大小1倍的情况。或者,如果您打算使用一个系统,您将在某种缓存中存储同一时间未使用的程序所使用的内存量。
希望我的观点足够清楚,我再说一遍,我认为您不会因为交换内存过多而遇到任何问题。
祝你今天愉快!
这是一个误解,当您使用休眠方式时,您需要RAM x 2作为SWAP大小。交换大小必须是已用RAM的大小,而不是已安装RAM的大小。通常,交换大小需要为已安装RAM的2/5。要找出使用所需的最小RAM:
$ cat /sys/power/image_size
3153907712
在此8 GB RAM机器上,至少需要3 GB的休眠空间。
您可以调整值以image_size
获得较小的交换大小,但有失败的风险。您可以对其进行调整以获得更大的交换空间,并可能加快休眠速度。
参考:https : //wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate
在您拥有16 MB Ram的日子里,在720 MB硬盘驱动器上进行32 MB交换的x 2是有意义的。在1995年“华盛顿邮报”上的一些RAM和HDD历史。
23年后,可能会发现1995年以来的一些技术文章(尽管我没有找到任何文章)误导新用户。但是,我确实在2007年找到了一篇推荐SWAP = RAM x 2的文章。
早在1995年,在760 MB硬盘中32 MB交换仅占硬盘的4%。实际上,交换分区在1995年可能已经使用了很多。今天,到了2018年,在256 GB SSD上使用16 GB RAM x 2表示32 GB SWAP的意义并不相同,因为它占用了13%的SSD。今天,除非我在测试OOM-Killer时强行将其填满,否则根本不会使用我的8 GB SWAP分区:Google Chrome浏览器将占用我的内存,直到它导致我的计算机几乎死机。我该怎么做才能避免这种情况?。
当物理内存(RAM)容量已满时,将使用Linux中的交换空间。如果系统需要更多的内存资源并且RAM已满,则内存中的非活动页面将移至交换空间。虽然交换空间可以帮助具有少量RAM的计算机,但不应将其视为替代更多RAM。交换空间位于硬盘驱动器上,其访问时间比物理内存慢。
交换空间可以是专用交换分区(推荐),交换文件,也可以是交换分区和交换文件的组合。
交换应等于2倍的物理RAM。
优点:
当内存完全用完时提供溢出空间可以将不需要的物品从高速内存中移出,使您进入休眠状态
缺点:
由于SWAP分区无法动态调整大小,因此会占用硬盘驱动器上的空间可能会增加硬盘驱动器的磨损并不一定会提高性能(请参阅下文)
当SWAP分区“无济于事”时,如“不值得与额外的存储空间进行比较”:
如果您的硬盘只有5400 RPM,而您的RAM很少,那么可以说> 2GB。为什么呢 由于系统一直希望访问SWAP分区,因此最终将变得非常缓慢。即使您现在在内存中有空间,SWAP分区中的所有内容也都需要移回。由于系统运行缓慢,因此分配将保留在SWAP分区中。这只能通过重新启动来解决。无论如何,这将需要一段时间,因为系统需要在关闭前从SWAP分区中删除所有内容。
如果您希望能够休眠计算机,则应该有一个SWAP分区。该分区的大小应为已安装内存的大小,再加上10%到25%的空间,以便为已经移入SWAP分区的所有项目留出空间。
如果您只想提高性能(并且至少有7200rpm的硬盘驱动器),则可以根据需要添加SWAP分区,但是除非您的安装内存少于4GB,否则不需要这样做。它的大小可以随心所欲。但是,我建议将RAM精确设置为2倍。如果您有足够的存储空间。
如果您有5400rpm的硬盘驱动器,则不应仅仅因为瓶颈会使您的计算机状况恶化而创建SWAP分区。但是,如果您绝对希望使用SWAP,则仍可以使用上面概述的相同的大小调整准则来创建分区-但将swappiness值更改为更低的值。
我的想法:
但是无论如何,如果您将Ubuntu用作日常使用的主操作系统,我建议将RAM大小提高2倍。因为您不仅仅因为有一台旧计算机而安装了Ubuntu。但是,因为您要将系统用作主操作系统。
如果需要,可以购买一些额外的硬件,而不是调整系统分区以保持其运行。如果您购买游戏,还请确保系统是“最新的”,而不是将设置调整为“可玩”。
您最好有一些额外的空间,SWAP,速度,功率,而不要太短或以后需要调整所有内容的大小。因为您需要交换或空间,所以购买了RAM?或者因为一个内存插槽或记忆棒坏了而需要快速购买内存。
确实有开销,但是很小。对于每个磁盘“页面”,都有一个参考计数器,并且每个交换区都有几个结构。这在内核内存中,因此无法分页。每4 GB,它介于2到16 MB之间,具体取决于体系结构。其余的是相当动态的,因此取决于使用情况。
因此,您可以拥有足够的空间,但是要记住,分页的地址空间本身会在RAM上增加一些开销,最重要的是,交换页的跟踪正在进行中,因此扩展范围不会很大。即使施加了相当大的开销,文件系统在处理较大区域时也比交换区域有效得多,因为vfs可以将结构信息卸载到磁盘上(由于硬件限制,通常至少不能交换页表,并且vmm可能会在所有簿记中使用不可交换的内存)。
我想不出任何其他缺点,OTOH交换太少会在交换页面时导致碎片,这意味着更多的寻找。如果有很多东西,那么在某些时候也不会有任何改善。
交换通常是最后一个资源(除了休眠状态),因此,交换空间可能不会比RAM多,尤其是如果您有超过4GB的RAM,有时甚至与RAM太大一样大(认为64 GB),您将不会从中受益。 。