快速业务通道

Linux系统优化(2)---sysctl设置内核参数之VM

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-03

为方便对系统内核参数调节,现根据官方内核包里的文档做了一些摘译.

系统环境:CentOS 5.5 X86

可以使用下面的方法下载内核包:

cd /usr/src/

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.8.tar.bz2

tar xvfj linux-2.6.18.8.tar.bz2

mv linux-2.6.18.8 linux

cd /usr/src/linux/Documentation/

使用find命令查找sysctl目录及文件:

cd /usr/src/linux/Documentation/

find . -name "*sysctl*"

可以看到有一个目录和两个文件.进入到sysctl目录.

cd /usr/src/linux/Documentation/sysctl/

可以看到有以下几个文件:

这里主要记录一些关于VM调整的一些参数.

可以打开vm.txt文件,看看里面写了些什么,很多重要参数说明都在这里解释着呢.

more vm.txt

关于vm的这些参数文件都在/proc/sys/vim/目录,可以看下,这个目录下有些什么文件:

cd /proc/sys/vm ; ls

看看这些文件都在vm.txt里有具体的说明.

上图中的一些参数的解释并不在vm.txt,而在proc.txt文件,proc.txt的路径/usr/src/linux/Documentation/filesystems/proc.txt:

dirty_ratio, dirty_background_ratio, dirty_expire_centisecs,dirty_writeback_centisecs, vfs_cache_pressure, laptop_mode,block_dump, swap_token_timeout, drop-caches

好了,说一堆没用的,下面跟着vm.txt文件,说一些比较重要的参数吧:

可以执行命令,如下图示:

sysctl -a|grep “^vm.*”

这些参数对应的文件路径都在这个目录下:/proc/sys/vm/

修改sysctl里的参数值等于修改/proc/sys/vm/目录下的文件值.以下介绍几个重要的参数:

(1)vm.overcommit_memory

默认值为:0

从内核文档里得知,该参数有三个值,分别是:

0:当用户空间请求更多的的内存时,内核尝试估算出剩余可用的内存.

1:当设这个参数值为1时,内核允许超量使用内存直到用完为止,主要用于科学计算

2:当设这个参数值为2时,内核会使用一个决不过量使用内存的算法,即系统整个内存地址空间不能超过swap 50%的RAM值,50%参数的设定是在overcommit_ratio中设定.

(2)vm.overcommit_ratio

默认值为:50

这个参数值只有在vm.overcommit_memory=2的情况下,这个参数才会生效.

(3)vm.page-cluster

默认值为:3

这个参数用来控制VM的虚拟内存的,读取大量的page,同时发生page错误时,linux VM子系统为了避免过多的磁盘寻址.读取大量的page依赖于系统的内存.内核 一次读取page的数量等于2的page-cluster值的次方即2^page-cluster.当设的值超过2的5次方即2^5,它不会被swap所检测到.swap的数据page最大为2的5次方即32-page.

(4)vm.min_free_kbytes

默认值 :3519

这个参数值用来强制linux虚拟内存保留最小值的空闲.

(5)vm.drop_caches

默认值 :0

设置这个参数的值会让内核清理内存中的caches、denties、inodes,从而释放更多的内存.

有三个值可以设置,每设一个值都会引发内核释放不同的内容:

1:释放pagecache

2:释放denties、inodes

3:释放pagecache、denties、inodes

这是一个非破坏性操作脏对象不会被释放,因此应当先执行”sync“后再设置这个参数.

(6)vm.dirty_writeback_centisecs

默认值:499

这个参数会触发pdflush回写进程定期唤醒并将old数据写到磁盘.每次的唤醒的间隔,是以数字100算做1秒.

如果将这项值设为500就相当5秒唤醒pdflush进程.

如果将这项值设为0就表示完全禁止定期回写数据.

(7)vm.dirty_ratio

默认值:40

参数意义:控制一个在产生磁盘写操作的进程开始写出脏数据到内存缓冲区.缓冲区的值大小是系统内存的百分比.增大会使用更多系统内存用于磁盘写缓冲

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号