当前位置:首页 > 互联网 > 正文内容

给Linux分配多少Swap空间才够呢?

cmc5年前 (2019-11-11)互联网1595

Swap交换大小应该是多少?交换应该是RAM大小的两倍还是RAM大小的一半?如果我的系统有几GB的RAM,我是否需要交换?
也许这些是关于在安装Linux时选择交换大小的最常见问题。
这不是什么新鲜事。交换大小一直存在很多混乱。

Swap两倍于内存的时代已经过去

很长一段时间,推荐的交换大小是RAM大小的两倍,但这条黄金法则不再适用于现代计算机。

我们的系统RAM大小高达128 GB,许多旧计算机甚至没有这么多的硬盘。但是你会分配到具有32 GB RAM的系统的交换大小? 64GB?那将是一个荒谬的硬盘浪费,不是吗?

在了解需要分配Swap空间应该分配多大之前,让我们先快速了解交换内存的一两件事。
这些有助于让每个人真正理解为什么Linux需要Swap交换空间。

什么是Swap?Swap什么时候会被使用到?

我们都知道计算机系统在运行的时候会使用到RAM(Random Access Memory),当只有少数应用程序在运行时,系统会使用可用的RAM进行管理。

但是如果有很多很多的程序在运行,那么就需要非常大容量RAM,这时候计算机RAM不够,应用程序就会崩溃。

当RAM耗尽时,Swap交换空间会被系统使用。当RAM耗尽时,Linux系统使用部分硬盘内存并将其分配给正在运行的应用程序。

这听起来非常不错,这意味着如果我们如果分配50GBSwap交换空间,系统或许可以同时运行成百上千的应用程序?是这样么?大错特错!!!

你知道的,程序运行速度十分重要;
RAM访问数据的大小为纳秒级;
SSD访问数据(以微秒为单位),而普通硬盘以毫秒为单位访问数据;
这意味着RAM比SSD快1000倍,比普通HDD快100,000倍。

如果应用程序过分依赖Swap交换空间,则其性能将下降,因为它无法以与RAM中相同的速度访问数据。
因此,完成相同任务可能需要几分钟才能完成任务,而不需要花费1秒钟完成任务。这将使应用程序几乎无用。这被称为计算术语中的颠簸。

Swap交换空间只是用来应急的,所以它的分配要适量。

为什么需要Swap交换空间

以下是需要交换空间Swap的几个原因

  • 如果系统的RAM小于1GB,就必须使用Swap交换空间,不然没运行几个应用程序,他们就会崩溃

  • 如果系统运行了非常重的应用程序,例如视频制作软件,使用Swap交换空间可以防止因为RAM空间不够用导致的软件崩溃

  • 如果电脑休眠了,断电RAM会被断电;RAM没有断电记忆功能,因此要将这些内容暂时存入Swap交换空间里,当从休眠中恢复过来的时候,这些内容会被重新读入RAM,保证程序继续运行

  • 为了避免有些程序疯狂的吃掉很多内存,这个时候需要Swap来帮助我们规避这些风险

当RAM很大的时候,需不需要分配很大的交换空间?

如果你的RAM有32GB或者64GB,你的系统可能永远都不会使用到这么多的交换分区。

我猜测,如果你的系统有32GB的RAM,它或许至少有100GB的硬盘。
分配几GB的交换空间应该也无关痛痒,如果错误的程序开始滥用RAM,它将提供额外的“稳定性”。

应该分配多大的Swap交换空间

现在回到这个最大的问题上,应该给Linux分配多少Swap空间才够。
答案是没有一个确切的答案,不过倒是有一些建议,不同的人根据自己的实际情况分配交换空间的大小。

如果根据Red Hat的建议,他们建议是分配RAM 20%的换空间,也就是RAM是8GB,分配1.6GB交换空间。

CentOS建议

  • 如果RAM小于2GB,就分配和RAM同等大小的Swap交换空间。

  • 如果RAM大于2GB,就分配2GB交换空间

Ubuntu考虑到系统需要休眠,

  • 如果RAM小于1GB,Swap空间至少要和RAM一样大,甚至是要为RAM的两倍大小

  • 如果RAM大于1GB,Swap交换空间应该至少等于RAM大小的平方根,并且最多为RAM大小的两倍

  • 如果要休眠,Swap交换大小应该等于RAM的大小加上RAM大小的平方根

Ubuntu建议的Swap分配表

Ram大小Swap大小激活Swap后合计大小
256MB256MB512MB
512MB512MB1GB
1GB1GB2GB
3GB2GB5GB
4GB2GB6GB
6GB2GB8GB
8GB3GB11GB
12GB3GB15GB
16GB4GB20GB
32GB6GB38GB
64GB8GB72GB
128GB11GB139GB

结语

事实上没有一个真正确定的Swap交换空间分配大小,根据实际情况来吧,如果你不在乎多点交换空间,可以使用两倍于RAM的这种方案。
你更倾向于使用哪种方案呢?


 

扫描二维码推送至手机访问。

版权声明:本文由陈茂春的博客发布,如需转载请注明出处。

本文链接:https://www.0817cmc.com/post/756.html

分享给朋友:

相关文章

修改qq版本号,使qq2004可以登陆

修改qq版本号,使qq2004可以登陆

本人一直用的qq2004,但是直到2006年1月19日,我打开qq.出现的是以下图片:screen.width-333)this.width=screen.width-333"˃ 我看了很多的论坛,知道包括qq2003,qq2004都被...

终结辉煌:微软7月正式停止支持98/ME

终结辉煌:微软7月正式停止支持98/ME

微软已经作出官方声明,它要求仍然使用Windows 98/98 SE和ME的用户尽快升级他们的系统,微软将会在今年7月11号正式停止所有公开的技术支持和安全升级。  其实微软早打算在2004年1月16号停止对这些系统的支持,不过微软延长了这...

WindowsXP 64是微软最失败的系统?

WindowsXP 64是微软最失败的系统?

Windows Vista的曙光已经开始照耀我们的脸颊,我们都知道,从Vista发布那一天起,64位架构过渡将真正拉开序幕,大步前进--将Windows XP 64远远落在身后。  记得笔者去年升级系统的时候,笔者决定将操作系统一同升级到W...

延长系统的使用寿命 打造不死的Windows

Windows给我们带来方便的同时,也让我们不得不忍受系统从崩溃→重装的痛苦。于是如何延长Windows的使用寿命,减少重装次数,也就提上了我们的日程……事实上,通常出现的一些诸如蓝屏、死机等现象,大多是由于某些系统文件操作不当或者感染病毒...

2万元的笔记本卖6千 一个奸商的忏悔录

我的低价陷井  这世界,什么样的人不爱占小便宜?   即然有“低价”需求,自然要有“低价”的供应,所谓供求平衡嘛!   眼见各网站电子商务开展的如火如茶,若不趋势捞得一笔,怎对得起生我养育我的父老乡亲!   那就开个网站吧?简单!稍稍懂点简...

系统敏感端口真正的关闭大法

大致的敏感端口有:23、135、137-139、445、1433、3389等等。   23端口关闭大法:开始-运行-CMD.net stop telnet;   135端口关闭大法:控制面版-管理工具-服务-找到 remote proced...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。