总结可知cached中的脏数据满足如下几个条件中一个或者多个的时候就会被pdflush刷新到磁盘:

(1)数据存在的时间超过了dirty_expire_centisecs(默认30s)时间

(2)脏数据所占内存 /(MemFree + Cached - Mapped) > dirty_background_ratio。也就是说当脏数据所占用的内存占(MemFree + Cached - Mapped)内存的内存的比例超过dirty_background_ratio的时候会触发pdflush刷新脏数据。

可以看出这两个参数是有联系的。比如把dirty_expire_centisecss设置较小,那么pdflush就会刷新脏数据的频率就会增加,这样就会使得脏数据所占总内存的比例不会达到dirty_background_ratio,从而使得dirty_background_ratio参数没有什么作用。相反,如果dirty_background_ratio参数设置很小同时dirty_expire_centisecs设置较大,可能在达到过期时间之前脏数据就被pdflush刷新到磁盘中。

2.  参数调优

如果系统的cached中脏数据量很大,会产生两个问题:

a.缓存的数据越多,丢数据的风险越大。

b.会定期出现IO峰值,这个峰值时间会较长,在这期间所有新的写IO性能会很差(极端情况直接被hang住)。

后一个问题对写负载很高的应用会产生很大影响。

如何调节内核IO参数来优化IO写性能?

(1)首先调优dirty_background_ratio

把这个参数适当调小,这样可以使得cached主的脏数据减少,把原来一个大的IO刷新操作变为多个小的IO刷新操作,从而把IO写峰值削平。对于cached很大或者磁盘很慢的场景,应该把这个值设置的小一点。调节方法:echo 5 >> /proc/sys/vm/dirty_background_ratio 把这个百分比更新为5% (注意这里所占的百分比是针对于:MemFree + Cached - Mapped而言的,并不是相对于MemTotal)

(2)第二步调节dirty_ratio参数

把这个参数适当调小,原理通(1)类似。如果cached的脏数据所占比例(这里是占MemTotal的比例)超过这个设置,系统会停止所有的应用层的IO写操作,等待刷完数据后恢复IO。所以万一触发了系统的这个操作,对于用户来说影响非常大的。

(3)第三步调节dirty_expire_centisecs参数(这个参数表示page cache中的数据多久标记为脏)

这个参数调节可能意义不大。调小这个参数并不保证可以很快的把脏数据刷新下去,因为这里会有个IO拥塞问题。如果在一个dirty_expire_centisecs周期内没有刷完脏数据就会导致这个参数失效了。理想情况我们希望一个dirty_expire_centisecs刷完脏数据,但如果cached的脏数据较多或者磁盘较慢的时候就会导致IO拥塞问题。一般使用默认值就好。

(4)第四步调节dirty_writeback_centisecs参数(这个参数调节pdflush被唤醒的频率)

理论上调小这个参数,可以提高pdflush工作频率,从而尽快把脏数据刷新到磁盘上。但是这一样会遇到第三步IO拥塞问题。所以这个参数效果也不尽如人意。一般使用默认值就好。

3. Swapping调优

swap空间是一块磁盘空间,操作系统使用这块空间保存从内存中换出的操作系统不常用page数据,这样可以分配出更多的内存做page cache。这样通常会提升系统的吞吐量和IO性能,但同样会产生很多问题。页面频繁换入换出会产生IO读写、操作系统中断,这些都很影响系统的性能。这个值越大操作系统就会更加积极的使用swap空间。

调节swappniess方法如下:

cat /proc/sys/vm/swappniess查看这个参数的配置(默认值是60)

echo 0 >> /proc/sys/vm/swappniess 禁止操作系统使用任何的swap空间

echo 100 >> /proc/sys/vm/swappniess 操作系统会尽量使用swap空间

swappniess设置一个适当值对于系统性能也会有明显的影响。

swappniess很小时,系统能并发的进程或者线程就会减少,但每个进程或者线程运行的速度较快,cpu利用率较好。

swappniess很大时,系统并发好,但每个进程或者线程速度较慢。较多IO读写和系统中断会消耗很多cpu资源,此时系统效率较低。

所以如果希望提高服务器的并发量,对服务的相应时间要求不很高的场景可以适当的把swappniess调节的高些。对于并发量不大但希望相应时间小的应用场景可以适当的调小这个参数,比如个人电脑可以直接禁掉swap。

linux 内核参数分析,linux 内核参数VM调优 之 参数调节和场景分析相关推荐

  1. 在RedHat Enterprise Linux 上Oracle 9i的安装配置与调优

    1 安装配置Oracle 9i数据库 本章描述内容如下所示: 1.1 安装前的准备工作 介绍在安装Oracle之前所需的准备工作. 1.2安装前的系统设置 介绍在安装Oracle之前所必须的系统设置. ...

  2. Linux 网络包接收过程的监控与调优

    Linux内核对网络包的接收过程大致可以分为接收到RingBuffer.硬中断处理.ksoftirqd软中断处理几个过程.其中在ksoftirqd软中断处理中,把数据包从RingBuffer中摘下来, ...

  3. 51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)

    51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程 第一课 Linux运维经验分享与思路 1.一般把主机名,写到hosts下    127.0.0.1    hostname,因为 ...

  4. 通过大规模机器学习自动调优数据库参数

    目录 1. 引言 2. 挑战 3. 系统概览 3.1 举例 3.2 假设和限制 4. 工作负载识别 4.1 统计收集 4.2 修剪冗余监控指标 5. 识别重要的参数 5.1 使用Lasso进行特征选择 ...

  5. JVM调优和参数配置

    1.JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots    答:什么是垃圾:简单的说就是内存中已经不再被使用到的空间就是垃圾        要进行垃圾回收,如何判断一个对象是否可以被回 ...

  6. 单个GPU无法训练GPT-3,但有了这个,你能调优超参数了

    视学算法报道 编辑:陈萍.小舟 模型越大,超参数(HP)调优成本越高,微软联合 OpenAI 提出 HP 调优新范式,单个 GPU 上就可以调优 GPT-3 超参数. 伟大的科学成就不能仅靠反复试验取 ...

  7. DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏)

    DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏) 目录 神经网络的参数调优 1.神经网络的通病-各种参数随机性 2.评估模型学习能力

  8. 发布即巅峰:Java性能调优六大工具:MAT内存分析工具

    MAT内存分析工具 MAT是MemoryAnalyzerTool的简称,它是一款功能强大的Java堆内存分析器,可以用于查找内存泄漏以及查看内存消耗情况.MAT是 基于Eclipse开发的一款免费的性 ...

  9. 风险策略调优中重要的三步分析法

    如何通过额度策略的调优,达到最大利润的平衡.比如当给到某客户3千的额度时候,相信大家也在思考相关额度是否可以调整到4千或者5千,或者甚至降额至2千,这时公司的盈利才是最大化的. 相信这个问题,也是很多 ...

最新文章

  1. 从mongodb中查询数据
  2. 洛谷P4114 Qtree1(树链剖分+线段树)
  3. 如何构建一个拖垮整个公司的备份系统
  4. vscode安装live server
  5. 【HDU 5869】Different GCD Subarray Query【区间不同 gcd 个数】
  6. step7-micro/win 在win10系统下安装步骤
  7. 10/9 直播预告|半只土豆老师来啦
  8. 虚拟机内linux网络连接,vmware中redhat5虚拟机无法连接网络
  9. [iOS]让你的应用支持新iPad的Retina显示屏
  10. 微信小程序自定义地址组件
  11. 【Day5.7】美食街实在吃不下去,回暹罗商圈再晚餐
  12. 27 信息过滤与反垃圾
  13. fatal: the remote end hung up unexpectedly问题解决办法
  14. 英语每日一句: What’s your point? 你到底想说什么?
  15. 记某环境SqlServer异地备份的坑(Server权限管控贼拉严格)
  16. 华硕笔记本电脑换电池
  17. 【火灾检测】森林火灾检测系统(带面板)【含GUI Matlab源码 1921期】
  18. C#中调用WIN32API函数
  19. 一款轻巧快速的跨平台文档阅读器
  20. 2022-07-06 使用tpch大数据量压测mysql

热门文章

  1. 桌面虚拟云终端技术研究
  2. 何时创建MVC应用程序
  3. PyQt5-多窗口数据传输
  4. Linux之磁盘挂载
  5. mac 下chrome 和 微信web开发工具跨域配置
  6. linux下 mysql5.5数据库迁移操作
  7. php删除数组中相同的元素,只保留一个相同元素
  8. 工作小总结(字符串包含,获取当前页面的url等系列问题)
  9. (CSS3)CSS3- 最常用的属性(一)
  10. 企业实战|Mysql不停机维护主从同步