zoukankan      html  css  js  c++  java
  • linux io优化

    场景:xml文件解析入库;并备份

    问题:磁盘io异常,经常100%busy;

    linux io优化方法:

    1、修改磁盘挂着参数,修改为writeback模式;对于文件读取频繁的可以设置noatime;

    2、修改缓存写入磁盘时间

    pdflush的行为受/proc/sys/vm中的参数的控制

    /proc/sys/vm/dirty_writeback_centisecs (default 500): 1/100秒, 多长时间唤醒pdflush将缓存页数据写入硬盘。默认5秒唤醒2个(更多个)线程。

    如果wrteback的时间长于dirty_writeback_centisecs的时间,可能会出问题。


    pdflush机制:

    第一件事是读取缓存页里数据的过期时间(旧数据),在下一个周期内被写入硬盘。默认30秒是一个很长的时间。

    配置:/proc/sys/vm/dirty_expire_centiseconds   (default 3000)  单位:1/100秒。

    第二件事是判断内存是否到了要写入硬盘的限额,由参数决定:

    /proc/sys/vm/dirty_background_ratio (default 10)百分值,保留过期页缓存(脏页缓存)的最大值。是以MmeFree+Cached-Mapped的值为基准的

    pdflush写入硬盘看两个参数:

    1 数据在页缓存中是否超出30秒,如果是,标记为脏页缓存;

    2 脏页缓存是否达到工作内存的10%;

    以下参数也会影响到pdflush

    /proc/sys/vm/dirty_ratio (default 40)

    总内存的最大百分比,系统所能拥有的最大脏页缓存的总量。超过这个值,开启pdflush写入硬盘。如果cache增长快于pdflush,那么整个系统在40%的时候遇到I/O瓶颈,所有的

    I/O都要等待cache被pdflush进硬盘后才能重新开始。

    对于有高度写入操作的系统

    dirty_background_ratio: 主要调整参数。如果需要把缓存持续的而不是一下子大量的写入硬盘,降低这个值。

    dirty_ratio:第二调整参数。

    转载:http://wlservers.blog.163.com/blog/static/120622304201241715945256/

  • 相关阅读:
    用JSP实现的商城购物车模块
    C语言中的static 具体分析
    JAVA动态代理
    ACM之跳骚---ShinePans
    thinkphp5项目--个人博客(二)
    mysql数据类型
    htm、html、shtml网页区别
    thinkphp命名空间
    github README.md教程
    如何在github的README.md中添加图片
  • 原文地址:https://www.cnblogs.com/qq916653496/p/4519990.html
Copyright © 2011-2022 走看看