文档章节

浅谈Linux服务器究竟设置多大交换分区合适

袁跃平
 袁跃平
发布于 2013/02/19 10:43
字数 787
阅读 601
收藏 13
年前一客户来电,说他们信息中心机房一台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的版本



本文转载自:http://300second.blog.51cto.com/7582/1131191

袁跃平
粉丝 13
博文 46
码字总数 21177
作品 0
成都
系统管理员
私信 提问
加载中

评论(1)

5292401
5292401
不错
Linux下硬盘分区的最佳方案

Linux下硬盘分区的最佳方案 在对硬盘进行分区前,应该先弄清楚计算机担负的工作及硬盘的容量有多大,还要考虑到以下几个问题。   第一点也是最重要的一点,要知道当前安装LILO的版本,因为...

龙玉华
2010/03/19
153
0
Linux系统分区和挂载浅谈

好久没有写BLOG了,之前出差了2个月,都没怎么看书,也没有太多时间写。回来后一个月人也有点放松。现在开始还是得继续努力啊。不废话了,下面就介绍下Linux系统的分区和挂载 一 Linux的安装 Li...

Van_chan
2012/12/13
2.4K
0
linux系统调优-存储(内存、硬盘)

首先一个基本概念: 存储系统存储速度的快->慢: 内存->闪存->磁盘 因为内存的价格限制以及操作系统支持的限制,我们只能从磁盘这块来看,可见磁盘正是存储系统的最大瓶颈所在。 **下面具体提...

月黑风高杀人夜
2015/08/21
541
0
Linux操作系统下硬盘分区的最佳解决方案

在对硬盘进行分区前,应该先弄清楚计算机担负的工作及硬盘的容量有多大,还要考虑到以下几个问题。   第一点也是最重要的一点,要知道当前安装LILO的版本,因为LILO2.21及早期版本对硬盘大...

JavaGG
2009/05/07
312
0
是否调整swap大小依据

现象: 信息中心机房一台Linux服务器运行缓慢,系统服务出现间歇性停止响应,发现此服务器的物理内存是16G,而最初装机的时候,系统管理人员却只分配了2G的虚拟内存。查看内存的使用状况,物...

庆沉
2015/06/26
133
0

没有更多内容

加载失败,请刷新页面

加载更多

《JAVA核心知识》学习笔记 (19. 数据库)

19.1.1. 存储引擎 19.1.1.1. 概念 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、 更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧...

Shingfi
9分钟前
1
0
三分钟手操自己的yum源

本文章原创首发公众号:编程三分钟 上次就想手操yum源了,考虑到有的朋友没接触过,直接写成了yum源的科普,活活憋了我一个星期,现在我们快快开始。 什么情况下我们需要搭建一个仓库呢? 记...

编程三分钟
12分钟前
3
0
一起来学Java8(二)——Lambda表达式

Lambda简介 什么是Lambda表达式,简单的说是一种匿名函数表达方式。因此Lambda表达式本质是个函数,只不过没有函数名称。 Lambda表达式具有以下特点: 匿名,它没有函数名称 本质是个函数,除...

猿敲月下码
14分钟前
3
0
排序算法之希尔排序

1、介绍。 希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D...

daxiongdi
22分钟前
3
0
log4j2入门hello world

1.什么是log4j2 (1)log4j log4j是apache的一个开源项目,表示log for java.是一个日志工具,可以将日志信息输出到文件,控制台等其他地方 ,还可以定义日志的输出格式,另外还有日志级别的区分,可...

Blueeeeeee
25分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部