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.