linux下proc里关于磁盘性能的参数

http://blog.csdn.net/eroswang/article/details/6126646 

我们在磁盘写操作持续繁忙的服务器上曾经碰到一个特殊的性能问题。每隔 30 秒,服务器就会遇到磁盘写活动高峰,导致请求处理延迟非常大(超过3秒)。后来上网查了一下资料,通过调整内核参数,将写活动的高峰分布成频繁的多次写,每次写入的数据比较少。这样可以把尖峰的写操作削平成多次写操作。以这种方式执行的效率比较低,因为内核不太有机会组合写操作。但对于繁忙的服务器,写操作将更一致地进行,并将极大地改进交互式性能。

下面是相关参数的调整:

一、2.6内核下

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秒。缺省是 30000,也就是 30 秒的数据就算旧了,将会刷新磁盘。对于特别重载的写操作来说,这个值适当缩小也是好的,但也不能缩小太多,因为缩小太多也会导致IO提高太快。

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

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

5、/proc/sys/vm/vfs_cache_pressure

该文件表示内核回收用于directory和inode   cache内存的倾向;缺省值100表示内核将根据pagecache和swapcache,把directory和inode   cache保持在一个合理的百分比;降低该值低于100,将导致内核倾向于保留directory和inode   cache;增加该值超过100,将导致内核倾向于回收directory和inode   cache

缺省设置:100

6、 /proc/sys/vm/min_free_kbytes

该文件表示强制Linux   VM最低保留多少空闲内存(Kbytes)。

缺省设置:724(512M物理内存)

7、/proc/sys/vm/nr_pdflush_threads

该文件表示当前正在运行的pdflush进程数量,在I/O负载高的情况下,内核会自动增加更多的pdflush进程。

缺省设置:2(只读)

8、/proc/sys/vm/overcommit_memory

该文件指定了内核针对内存分配的策略,其值可以是0、1、2。

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

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

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

缺省设置:0

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页

转载于:https://www.cnblogs.com/zengkefu/p/5683575.html

/proc/sys/vm/ 内存参数相关推荐

  1. /proc/sys/vm虚拟内存参数

    1.admin_reserve_kbytes 给有cap_sys_admin权限的用户保留的内存数量,默认值是min(free pages * 3%, 8MB).这些内存是为了给管理员登录和杀死进程恢 ...

  2. Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches

    Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches 频繁的文件访问会导致系统的Cache使用量大增 $ free -m total used free shared ...

  3. linux内存——/proc/sys/vm/drop_caches

    原贴:http://www.linuxfly.org/post/320/ http://blog.csdn.net/chinalinuxzend/article/category/265273/2 h ...

  4. linux跑程序占用缓存过多释放内存echo 3 > /proc/sys/vm/drop_caches

    在跑pytorch时出现了占用内存过多的问题,当然这个问题可以通过调小num_workers解决,不过还有手动解决办法就是释放内存,命令如下: echo 3 > /proc/sys/vm/dro ...

  5. 手工释放linux内存——/proc/sys/vm/drop_caches

    总有很多朋友对于Linux的内存管理有疑问,之前一篇[转]理解Linux的性能日志似乎也没能清除大家的疑虑.而在新版核心中,似乎对这个问题提供了新的解决方法,特转出来给大家参考一下.最后,还附上我对这 ...

  6. linux proc 自动清理,Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches

    Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches 频繁的文件访问会导致系统的Cache使用量大增 $ free -m total used free shared ...

  7. dirty_background_ration 与 /proc/sys/vm/dirty_ratio

    wappiness的值的大小对如何使用swap分区是有着很大的联系的.swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用s ...

  8. linux的cache过高的原因定位与解决echo 3 > /proc/sys/vm/drop_caches

    先说结论解决办法: 一.在crontab定时执行echo 3> /proc/sys/vm/drop_caches清理缓存.治标不治本,过段时间缓存又会增加上来. 二.hcache -top 10 ...

  9. vm内核参数之内存脏页dirty_writeback_centisecs和dirty_expire_centisecs

    注:本文分析基于3.10.0-693.el7内核版本,即CentOS 7.4 1.背景 在<BDI writeback脏页回写>中我们了解了BDI的一些基本结构以及初始化和一些触发路径,现 ...

最新文章

  1. 斜挎包长度到哪里合适_济宁百叶窗哪里好
  2. python四十七:在子类中调用父类方法
  3. testid oracle vue,Vue 组件单元测试究竟测试什么?
  4. java数组比较的头文件_设给定一组整型数组,求它们的平均值及最大值 Java程序设计...
  5. python自动输入_使用Python和pywin32自动输入数据
  6. leetcode —— 29. 两数相除
  7. tpc三次握手与四次挥手
  8. C#序列化出现“因其保护级别而不可访问。只能处理公共类型。”
  9. 分享个Duilib中基于wke的浏览器控件
  10. Mat  iplimage
  11. [读书笔记]《刻意学习》
  12. 网盘共享文件有病毒吗?
  13. 如何在子控件上使用WS_EX_LAYERED
  14. ISDA发布亚洲衍生品调查报告
  15. 常见监控摄像头专业术语(码流、分辨率、帧率)详解
  16. 分享一款好用的ssh工具
  17. 休闲经营的农场小游戏推荐,果蔬连连看h5版游戏玩法技巧
  18. javaWEB——主页面新闻展示删除查看修改主题绑定
  19. 中兴面试2016 软件开发
  20. 为什么奇异阵是病态矩阵以及解决办法

热门文章

  1. 郑州网络推广教你如何“悄悄”做网站SEO,惊艳竞争对手?
  2. 贝叶斯软件genle教程_手把手教你用R的gemtc包对生存数据进行贝叶斯网状Meta分析...
  3. cmake gui安装教程_怎么在Linux下安装cmake-gui
  4. python wx窗口无法关闭_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题…...
  5. verilog设计一个补码加减法运算器_漫画:为什么计算机用补码存储数据?
  6. vimproc_mac.so” is not found
  7. 深入理解groupByKey、reduceByKey区别——本质就是一个local machine的reduce操作
  8. Apache Samza流处理框架介绍——kafka+LevelDB的Key/Value数据库来存储历史消息+?
  9. 拨出网线后,网卡IP丢失
  10. Vsphere 回收未消使用的磁盘空间