【LINUX】linux 虚拟内存调优

*************************************************************************

****原文:blog.csdn.net/clark_xu 徐长亮的专栏

*************************************************************************

公司师兄原创

1、/proc/sys/vm/dirty_ratio

控制文件系统的文件系统写缓冲区的大小,单位是百分比;表示当写缓冲使用到系统内存多少的时候,开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。当需要持续写入时,应该降低其数值:

echo ‘1’ > /proc/sys/vm/dirty_ratio

2、/proc/sys/vm/dirty_background_ratio

控制文件系统的pdflush进程,在何时刷新磁盘,单位是百分比;表示当写缓冲使用到系统内存多少的时候,pdflush开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。当需要持续写入时,应该降低其数值:

echo ‘1’ > /proc/sys/vm/dirty_background_ratio

3、/proc/sys/vm/dirty_writeback_centisecs

控制内核的脏数据刷新进程pdflush的运行间隔,单位是1/100秒,缺省数值是500,也就是5秒;如果需要持续地写入时,那么实际上还是降低这个数值比较好,这样可以把尖峰的写操作削平成多次写操作。设置方法如下:

echo "100" > /proc/sys/vm/dirty_writeback_centisecs

如果你的系统是短期地尖峰式的写操作,并且写入数据不大(几十M/次)且内存有比较多富裕,那么应该增大此数值。设置方法如下:

echo "1000" > /proc/sys/vm/dirty_writeback_centisecs

4、/proc/sys/vm/dirty_expire_centisecs

声明Linux内核写缓冲区里面的数据多“旧”了之后,pdflush进程就开始考虑写到磁盘中去。单位是1/100秒。缺省是 3000,也就是 30 秒的数据就算旧了,将会刷新磁盘。对于特别重载的写操作来说,这个值适当缩小也是好的,但也不能缩小太多,因为缩小太多也会导致IO提高太快。设置方法如下:

echo "100" > /proc/sys/vm/dirty_expire_centisecs

当然,如果你的系统内存比较大,并且写入模式是间歇式的,并且每次写入的数据不大(比如几十M),那么这个值还是大些的好。

5、/proc/sys/vm/vfs_cache_pressure

表示内核回收用于directory和inode cache内存的倾向,缺省值100。降低该值低于100,将导致内核倾向于保留directory和inode cache;增加该值超过100,将导致内核倾向于回收directory和inode cache。

6、 /proc/sys/vm/min_free_kbytes

表示强制Linux VM最低保留多少空闲内存(Kbytes)。缺省设置:46240。

7、/proc/sys/vm/nr_pdflush_threads

表示当前正在运行的pdflush进程数量,在I/O负载高的情况下,内核会自动增加更多的pdflush进程。缺省设置:2。

8、/proc/sys/vm/overcommit_memory

指定了内核针对内存分配的策略,其值可以是0、1、2。缺省设置:0。

0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2,表示内核允许分配超过所有物理内存和交换空间总和的内存(参照overcommit_ratio)。

9、/proc/sys/vm/overcommit_ratio

如果overcommit_memory=2,可以过载内存的百分比,通过以下公式来计算系统整体可用内存。系统可分配内存=交换空间+物理内存*overcommit_ratio/100。缺省设置:50(%)。

10、/proc/sys/vm/page-cluster

表示在写一次到swap区的时候写入的页面数量,0表示1页,1表示2页,2表示4页。缺省设置:3(2的3次方,8页)。

11、/proc/sys/vm/swapiness

表示系统进行交换行为的程度,数值(0-100)越高,越可能发生磁盘交换。

12、/proc/sys/vm/drop_caches

用于释放cache。值可以为0、1、2、3,默认是0。

0,不做任何动作

1,释放pagecache,

echo 1 > /proc/sys/vm/drop_caches

2,释放dentries和inodes,

echo 2 > /proc/sys/vm/drop_caches

3,释放pagecache、dentries和inodes,

echo 3 >/proc/sys/vm/drop_caches.

就看你能不能战胜它。战胜了,你就是英雄,就是生活的强者。

【LINUX】linux 虚拟内存调优

相关文章:

你感兴趣的文章:

标签云: