zoukankan      html  css  js  c++  java
  • [Linux] 磁盘IO性能查看和优化以及iostat命令

    今天听到看部门同事有遇到IO过高的问题 , 简单的查询了下

     iostat命令:

    %user:CPU处在用户模式下的时间百分比。

    %nice:CPU处在带NICE值的用户模式下的时间百分比。

    %system:CPU处在系统模式下的时间百分比。

    %iowait:CPU等待输入输出完成时间的百分比。

    %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。

    %idle:CPU空闲时间百分比。

    如果%iowait的值过高,表示硬盘存在I/O瓶颈

    如果%idle值高,表示CPU较空闲

    如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。

    如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU。

    工作机制

    当应用程序需要读取文件中的数据时,操作系统先分配一些内存,将数据从存储设备读入到这些内存中,然后再将数据分发给应用程序;当需要往文件中写数据时,操作系统先分配内存接收用户数据,然后再将数据从内存写到磁盘上。
    对于每个文件的第一个读请求,系统读入所请求的页面并读入紧随其后的少数几个页面(不少于一个页面,通常是三个页面),这时的预读称为同步预读。
    如果应用程序接下来是顺序读取的话,那么文件 cache 命中,OS 会加大同步预读的范围,增强缓存效率,此时的预读被称为异步预读
    如果接下来 cache 没命中,那么 OS 会继续使用同步预读。

    因此基本思路就是:

    尽量避免磁盘的随机IO , 尽量利用磁盘预读缓存 , 利用局部性原理
    尽可能地顺序读写一个文件
    单进程读写硬盘
    避免对大目录操作
    把小文件的读写转换为大文件的写

  • 相关阅读:
    如何用正确的方法写出高质量软件的75条体会(转)
    使用javascript动态添加onclick事件,
    签名和重载
    C#文件后缀名详解
    配置SQL Server 2005 Express的身份验证方式,以及如何启用sa登录名。
    CSS选择符及优先级计算
    关于软件版本的解释
    数据结构形象解释
    CSS属性选择符
    [转载]Repeater三层嵌套
  • 原文地址:https://www.cnblogs.com/taoshihan/p/14119321.html
Copyright © 2011-2022 走看看