收藏本站
   
查看手机网站
其他账号登录: 注册 登录

内存内核参数优化


内存内核参数优化


/proc/sys/vm/dirty_background_ratio

这个参数指定了文件系统缓存脏数据数量达到系统内存百分之多少时(如10%)就会触发pdflush/flush/kdmflush等后台回写进程运行,将一定缓存的脏页异步地刷入磁盘。


/proc/sys/vm/dirty_ratio

这个参数指定了当文件系统缓存脏数据数量达到系统内存百分之多少时(如15%),系统不得不开始处理缓存脏页(因为此时脏数据数量已经比较多,为了避免数据丢失需要将一定脏数据刷入磁盘)。如果触发了这个设置,那么新的I/O请求将会被阻挡,直到脏数据被写入磁盘。这是造成I/O卡顿的重要原因,但这也是保证内存中不会存在过量脏数据的保护机制。

这个数值一定要大于或等于dirty_background_ratio的值

在磁盘写入不是很频繁的场景,适当增大此值,可以极大提高文件系统的写性能。但是,如果是持续、恒定的写入场合,应该降低其数值。


/proc/sys/vm/dirty_expire_centisecs

这个参数表示如果脏数据在内存中驻留时间超过该值,pdflush进程在下一次将把这些数据写回磁盘。对于特别重载的写操作来说,这个值可以适当缩小,但也不能缩小太多,因为缩小太多会导致I/O提高太快。


/proc/sys/vm/dirty_writeback_centisecs

这个参数控制内核的脏数据刷新进程pdflush的运行间隔。默认值是500,也就是5s。如果系统是持续地写入动作,那么建议降低这个数值,这样可以把尖峰的写操作削平成多次写操作;相反,如果系统是短期地尖峰式的写操作,并且写入数据不大且内存又比较富裕,那么应该增大此数值。


/proc/sys/vm/min_free_kbytes

这个参数表示强制Linux VM最低保留多少空闲内存(Kbytes)。默认值为90112(88M物理内存)


/proc/sys/vm/overcommit_momory

这个参数指定了内核针对内存分配的策略,其值可以是0、1、2。其中,0表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。1表示内核允许分配所有的物理内存,而不管当前的内存状态如何。2表示内核允许分配超过所有物理内存和交换空间总和的内存。

如果允许的是Redis内存数据库,那么推荐设置为1;如果是Web类应用,建议默认即可。


/proc/sys/vm/panic_on_oom

这个参数表示内存不够时内核是否直接panic(恐慌)。默认值为0,表示当内存耗尽时,内核会触发OOM killer杀掉最耗内存的进程。如果设置为1表示在OOM时系统会panic。Linux Kernel 不知道如何运行,此时它会尽可能把此时能获取的全部信息都打印出来。有时候为了不让系统自动kill掉进程,需要设置此值为1。


/proc/sys/vm/swappiness

这个参数表示使用Swap分区的概率。swappiness=0时表示最大限度使用物理内存,然后才是Swap空间;swappiness=100时表示积极使用Swap分区,并且把内存上的数据及时搬运到Swap空间里面。Linux默认设置为60,表示物理内存在使用到40%(100-60)的时候,就开始使用交换分区。此值在一些内存数据库服务器上需要设置的足够小,如Redis、HBase机器上,应该设置0~10之间,表示最大限度使用物理内存。


分享到:
客服咨询
0752-7897707
邮政编码:516870
客服邮箱:156449799@qq.com
公司地址:广东省惠州市永汉文建路59号
宝禄微信公众号
宝禄微信小程序
在线客服
 
 
 工作时间
周一至周五 :8:00-18:00
周六至周日 :10:00-17:00
 联系方式
客服热线:0752-7897707
赵工邮箱:156449799@qq.com