当前位置:首页 > Linux > 正文内容

Linux 中交换空间 (swap)应该分多大才好?

canca9年前 (2016-06-25)Linux431

前一段时间,我们机房中一台Linux服务器运行缓慢,系统服务出现间歇性停止响应,让我过去处理一下这一问题,登录到服务器之后,发现此服务器的物理内存是16G,而最初装机的时候,系统管理人员却只分配了4G的虚拟内存。查看内存的使用状况,物理内存并没有完全耗尽,但虚拟内存已经耗尽,整个系统CPU负载和磁盘IO都非常高。

知道了问题所在是由于交换分区不足导致,那么解决方法就是:将虚拟内存通过虚拟文件的方式增加到16G,系统运行状况明显好转。其实虚拟内存并不是等到物理内存用尽了才使用的,是否尽量的使用或不使用swap,在内核空间有一个参数控制。

[root@web ~]# cat /proc/sys/vm/swappiness

60

swappiness=0 的时候表示最大限度使用物理内存,然后才是swap空间;swappiness=100 的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。对于现在动辄几十GB、上百GB物理内存的服务器来说,究竟为其Linux系统设置多大的交换分区合适呢?为此,我引用红帽官方里的一段文字进行简单说明一下,嘿嘿。

目前红帽官方推荐交换分区的大小应当与系统物理内存的大小保持线性比例关系,不过在小于2GB物理内存的系统中,交换分区大小应该设置为内存大小的两倍,如果内存大小多于2GB,交换分区大小应该是物理内存大小加上2GB。其原因在于,系统中的物理内存越大, 对于内存的负荷可能也越大。但是,如果物理内存大小扩展到数百GB,这样做就没什么意义了,大家说对吧!

实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷。Red Hat Enterprise Linux 可以在这样的情况下工作:完全没有交换分区,而且系统中匿名内存页和共享内存页小于3/4的物理内存量。在这种情况下,系统会将匿名内存页和共享内存页锁定在物理内存中,而使用剩余的物理内存来缓冲文件系统数据(pagecache),当内存耗尽时,系统内核只会回收利用这些pagecache内存。

考虑到以下情况:

1)安装系统时难以确定内存的负荷,如何设置交换分区大小

2)系统中物理内存越大,所需交换分区就会越少

因此,在Red Hat Enterprise Linux 中,以下是设置合适的交换分区大小的规则:

物理内存交换分区(SWAP)
<= 4G至少4G
4~16G至少8G
16G~64G至少16G
64G~256G至少32G

注:

1.但我们平时安装系统时,默认都分内存的2倍,因为现在有硬盘空间都很大,也不在乎那几十G的空间,嘿嘿!(其实也是为了省事)

2.其它操作系统也是类似。

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

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/56.html

标签: Linux
分享给朋友:

“Linux 中交换空间 (swap)应该分多大才好?” 的相关文章

在Linux下安装和使用MySQL

一、引言   想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的 MySQL。本以为有Windows下使用SQL Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,...

Linux常用命令集锦

查看所有已安装前缀为samba的RPM包      rpm -qa samba*删除目录或文件   rm -r 文件名linux解压bz2文件使用   bunzip2   linux-2-4-2.tar.bz2 &nbs...

linux删除乱码文件

一些乱码文件不可以通过普通的rm命令进行管理。可以通过删除i节点的方式删除。[root@192_168_100_35 musicwap]# ls??,?K?k??a*.?J]?k?Φ??P???Z?b?A?R???X??u??.?????*H@B?T???xS*查看乱码文件的i结点[root@192...

用cat命令显示一个文件的最后几行

tail -10 filenamecat filename |tail -10view filename+G...

CentOS 7最小化安装后找不到‘ifconfig’命令——修复小提示

就像我们所知道的,“ifconfig”命令用于配置GNU/Linux系统的网络接口。它显示网络接口卡的详细信息,包括IP地址,MAC地址,以及网络接口卡状态之类。但是,该命令已经过时了,而且在最小化版本的RHEL 7以及它的克隆版本CentOS 7,Oracle Linux 7和...

centos 7 crontab定时器及开机自启

crontab 建议直接采用centos7 自带得cronteb包,定时器:就是定时去执行干某一件事在这里我以脚本为媒介1 当然是创建一个脚本,创建目录随意但是你一定要记得。。直接通过vi来创建一个test.sh脚本!vi /etc/test.sh编辑脚本内容:#!/bin/bash #...

发表评论

访客

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