浅谈Linux服务器究竟设置多大交换分区合适
2013-02-19 10:43
411 查看
年前一客户来电,说他们信息中心机房一台Linux服务器运行缓慢,系统服务出现间歇性停止响应,让过去帮忙处理一下这一问题。
到达现场之后,发现此服务器的物理内存是16G,而最初装机的时候,系统管理人员却只分配了2G的虚拟内存。查看内存的使用状况,物理内存并没有完全耗尽,但虚拟内存已经耗尽,整个系统CPU负载和磁盘IO都非常高。
知道了问题所在是由于交换分区不足导致,那么解决方法就是:将虚拟内存通过虚拟文件的方式增加到8G,系统运行状况明显好转。
其实虚拟内存并不是等到物理内存用尽了才使用的,是否尽量的使用或不使用swap,在内核空间有一个参数控制。
swappiness=0 的时候表示最大限度使用物理内存,然后才是swap空间;swappiness=100 的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
对于现在动辄几十GB、上百GB物理内存的服务器来说,究竟为其Linux系统设置多大的交换分区合适呢?为此,我引用红帽官方文库里的一段文字进行浅析说明。
到达现场之后,发现此服务器的物理内存是16G,而最初装机的时候,系统管理人员却只分配了2G的虚拟内存。查看内存的使用状况,物理内存并没有完全耗尽,但虚拟内存已经耗尽,整个系统CPU负载和磁盘IO都非常高。
知道了问题所在是由于交换分区不足导致,那么解决方法就是:将虚拟内存通过虚拟文件的方式增加到8G,系统运行状况明显好转。
其实虚拟内存并不是等到物理内存用尽了才使用的,是否尽量的使用或不使用swap,在内核空间有一个参数控制。
[root@server ~]# cat /proc/sys/vm/swappiness 60
swappiness=0 的时候表示最大限度使用物理内存,然后才是swap空间;swappiness=100 的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
对于现在动辄几十GB、上百GB物理内存的服务器来说,究竟为其Linux系统设置多大的交换分区合适呢?为此,我引用红帽官方文库里的一段文字进行浅析说明。
目前Red Hat(红帽官方)推荐交换分区的大小应当与系统物理内存的大小保持线性比例关系。 不过在小于2GB物理内存的系统中,交换分区大小应该设置为内存大小的 两倍,如果内存大小多于2GB, 交换分区大小应该是物理内存大小加上2GB。其原因在于,系统中的物理内存越大, 对于内存的负荷可能也越大。
但是,如果物理内存大小扩展到数百GB,这样做就没什么意义了。 实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷。 Red Hat Enterprise Linux 5可以在这样的情况下工作:完全没有交换分区, 而且系统中匿名内存页和共享内存页小于3/4的物理内存量。在这种情况下, 系统会将匿名内存页和共享内存页锁定在物理内存中,而使用剩余的物理内存来缓冲文件系统数据(pagecache), 当内存耗尽时,系统内核只会回收利用这些pagecache内存。 考虑到以下情况: 1)安装系统时难以确定内存的负荷,如何设置交换分区大小 2)系统中物理内存越大,所需交换分区就会越少 因此,在Red Hat Enterprise Linux 5中,以下是设置合适的交换分区大小的规则: 注:适用于RHEL 5.x(CentOS 5.x)“5的版本
相关文章推荐
- 浅谈Linux服务器究竟设置多大交换分区合适
- 浅谈Linux服务器究竟设置多大交换分区合适
- 浅谈Linux服务器究竟设置多大交换分区合适
- 浅谈Linux服务器究竟设置多大交换分区合适
- win8.1安装Ubuntu14双系统交换分区的设置
- 网页页面尺寸一般设置多大才合适
- 服务器 交换分区(Swap) 设置
- 交换分区设置
- Linux Swap交换分区设置
- linux swap 交换分区设置
- Linux Swap交换分区设置
- InnoDB log file 设置多大合适?
- JVM内存设置多大合适?Xmx和Xmn如何设置?
- 如何设置/修改centos上的swap交换分区
- InnoDB log file 设置多大合适?
- 设置/修改centos上的swap交换分区的方法(转帖)
- linux 设置交换分区
- 设置/修改centos上的swap交换分区的方法
- 如何设置/修改centos上的swap交换分区