快速业务通道

再谈Linux下的swap分区

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-26
最近看到有朋友在我的Blog中问关于Linux环境下swap分区设置的问题,问题如下:“需要设置一个10G的swap分区,是设置成单个10G的好呢,还是5个2G的,还是其他的方案,比如2个5G的分区?” 看来有必要再写一篇Blog来阐述一下这个问题. 在网络上我经常看到这样的经典问答: 问:我的内存大小是xxx,那么我建立的swap多少才合适?
答:大概物理内存的1倍即可. 我认为这种回答是很不负责任的,所谓1倍内存大小或2倍内存大小的swap分区设置,是给那些对Linux系统不是很熟悉的用户的简单建议,这种设置在桌面Linux下是没有什么问题的,最多是占用一些硬盘空间而已.但是在真正的生产环境下,这种设置是很不合理的一种设置. 对swap的简单介绍在我以前的《如何合理设置Linux的swap分区》这篇文章中介绍过,我在这里就不再介绍了,有兴趣的朋友可以去看一看. 一、swap分区大小是怎么确定的? 其实swap分区的大小设置是很考验Linux系统管理员水平的一件事情,swap的大小是这样决定的: ( 内存大小 Swap分区大小 ) * 80%或70% >= 程序需要占用总内存数 如果系统内存大小已经大于系统中所有任务最大内存使用大小,那么就根本没有必要设置swap分区了,如果这个时候设置上,那么就是白白占用了那些硬盘空间(当然,如果硬盘足够富裕,可以忽略这些占用了). 那么有的管理员就会说了:我不知道我系统中所有任务最大内存使用大小是多少啊! 我在这里给你一个方法,可以找到这个大小是多少,下面跟着我一步一步来:
1、用swapoff 关掉所有swap 然后正常运行任务,如果出现内存不足的提示,就需要逐步增加swap
2、一般来讲,物理内存达到256m,在安装时即可不用划分交换分区..
3、可以在安装后建立交换分区,或者建立交换文件.
BTW:swap还有一个用处,就是在机器lock,出现问题的时候内存的内容会自动copy到swap上面,这样可以有效防止机器故障带来内存中的内容忽然丢失的情况. 二、为什么swap分区不宜过大? 为什么 swap 分区不宜过大,这是 Linux 内存分配的特点——它会尽可能多地使用内存(包括swap 分区).尽量使用内存的目的是加快 IO 处理的速度,比如关掉一个程序,原先占有的内存空间并不立即清空,下一次打开时就不用去硬盘找数据,而直接从内存中读取.但是如果虚拟内存过大,那么保留在内存缓冲区中的数据实际上还是在硬盘中,那对于加快速度就没有多大的作用了.
swap 分区对于物理内存小的机器是必不可少的,假设物理内存只有64M,而某个程序启动最少要256M,如果没有足够的虚拟内存,这个程序是根本打不开的(系统会报内存不足错误,甚至崩溃).对于程序而言,物理内存和虚拟内存是没有任何区别的,它们只关心空间是否够大.在物理内存够用的情况下可以适当分配一些空间给 swap ,这仅仅是为了偶尔同时开很多大家伙时,防止出现内存不足错误. 三、swap是一个大分区还是多个小分区? 我记得有人说过在fedora和debian的文档中看到过说明,建议swap分区大小不要超过2G. 为什么是2G呢?我觉得32位机的文件偏移指针是个无符号整型,单个文件偏移最大到2的31次方,也就是2G.其次,旧的文件系统对大文件的支持并不是很好(有点类似Windows环境下FAT文件格式不能有文件大小限制),在文档中建议swap分区大小不超过2G(要知道swap是可以在运行过程中动态加载swap文件的).如果各位使用的是2.4 内核或者64位的系统,那么可以放心地把swap分区设置的足够大,IBM在针对其Linux 2.4 kernel的文档中明确表明,2.4.10及以后的linux kernel,支持的每块swap最大不超过24GB. 下面再说说设置多个swap的好处,那就是可以把多个swap分担到多块硬盘上,如果你有多个物理磁盘,建议在把swap分布到每块磁盘上,这时确实可以提高运行速度. 当然,文章中的不足,欢迎各位朋友指出,大家一起学习进步.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号