当看到I/O等待时间所占CPU时间的比重非常高的时候,首先要检查的就是机器是否正在大量使用交换空间,由于硬盘操作的速度远远低于RAM。所以当系统内存耗尽,開始使用交换空间的时候。系统的性能会受到严重影响。

不论什么想要訪问硬盘的操作都要完毕与硬盘的I/O交换。所以,故障排除的第一步是看内存是否耗尽,假设是。先解决问题。假设还有大量可用的RAM,你须要明白那个进程占用了大部分I/O操作。

在你非常难弄明确究竟是哪个进程占用了大量I/O资源。使用iostat能够找到是哪个分区运行大量I/O操作。

iostat的使用

最上面显示的是1个cpu,64位系统,linux内核版本号

avg-cpu段:

%user: 在用户级别执行所使用的CPU的百分比

%nice: nice操作所使用的CPU的百分比

%system: 在系统级别(kernel)执行所使用CPU的百分比

%iowait: CPU等待硬件I/O时,所占用CPU百分比

%idle: CPU空暇时间的百分比

Device段:

sda:设备名

tps: 每秒钟发送到的I/O请求数.

Blk_read /s: 每秒读取的数据量

Blk_wrtn/s: 每秒写入的数据量.

Blk_read:   读入的总的数据量

Blk_wrtn:  写入的总的数据量

iostat各个參数说明:





-c 仅显示CPU统计信息.与-d选项相互排斥.

 -d 仅显示磁盘统计信息.与-c选项相互排斥.

 -k 以K为单位显示每秒的磁盘请求数,默认单位块.

 -p device | ALL

  与-x选项相互排斥,用于显示块设备及系统分区的统计信息.也能够在-p后指定一个设备名,如:

  # iostat -p hda

  或显示全部设备

  # iostat -p ALL

 -t    在输出数据时,打印搜集数据的时间.

 -V    打印版本和帮助信息.

 -x    输出扩展信息.

iostat后加一个数字

iostat 4 表示每隔4秒就刷新一次

iotop的使用

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFwZW5nMDExMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

--version 显示版本然后退出

       -h, --help 显示帮助然后退出

       -o, --only 仅仅显示正在产生I/O的进程或线程。除了传參。能够在执行过程中按o生效。

       -b, --batch 非交互模式。一般用来记录日志

       -n NUM, --iter=NUM 设置监測的次数,默认无限。在非交互模式下非常实用

       -d SEC, --delay=SEC 设置每次监測的间隔。默认1秒。接受非整形数据比如1.1

       -p PID, --pid=PID 指定监測的进程/线程

       -u USER, --user=USER 指定监測某个用户产生的I/O

       -P, --processes 仅显示进程,默认iotop显示全部线程

       -a, --accumulated 显示累积的I/O。而不是带宽

       -k, --kilobytes 使用kB单位。而不是对人友好的单位。

在非交互模式下,脚本编程实用。

-t, --time 加上时间戳。非交互非模式。

-q, --quiet 禁止头几行,非交互模式。有三种指定方式。

-q     仅仅在第一次监測时显示列名

              -qq    永远不显示列名。

              -qqq   永远不显示I/O汇总。

查看系统的I/O使用iostat命令而使用iotop能够依据I/O统计信息排序,追踪到详细的进程的更多相关文章

  1. Linux 系统管理命令 - iotop - 动态显示磁盘 I/O 统计信息

    命令详解 重要星级: ★★★★☆ 功能说明: iotop 命令是一款实时监控磁盘 I/O 的工具, 但必须以 root 用户的身份运行.使用 iotop 命令可以很方便的查看每个进程使用磁盘 I/O ...

  2. Linux查看系统状态命令

    Linux查看系统状态命令       iostat iostat 命令详细地显示了存储子系统方面的情况.你通常用iostat来监控存储子系统总体上运行状况如何,并且在用户注意到服务器运行缓慢之前提早 ...

  3. linux系统top命令查看系统状态

    Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 使用SSH ...

  4. linux怎样使用top命令查看系统状态

    有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程. Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分 ...

  5. 使用top命令查看系统状态

    Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高? 使用SSH ...

  6. Linux--top命令查看系统状态,所有值讲解

    Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 一.top ...

  7. linu查看系统用户与显示命令行提示符格式信息

    目录 一:查看系统用户whoami 二:显示命令行提示符格式信息变量 一:查看系统用户whoami whoami : 当前窗口登录的用户 who : 当前用户登录系统的终端 作用: 显示当前用户登录了 ...

  8. iostat命令学习

    iostat命令主要用于监控linux系统下cup和磁盘IO的统计信息 可以通过iostat --help获得该命令的帮助信息 [oracle@std ~]$ iostat --help Usage: ...

  9. linux 查看系统状态方法

    Linux下如何查看系统启动时间和运行时间 1.uptime命令输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.0 ...

随机推荐

  1. BA-BACnet对象

    BACNET协议有多少个对象呢,拿出西门子教程中的看看一下,居然有48个,其中的大部分都没有用到:

  2. rails undefined method error_messages

    rails undefined method error_messages 学习了:http://stackoverflow.com/questions/10002140/use-error-mess ...

  3. c++中字符输入函数getline、cin.getline区分

    1.cin>>s; s能够是:string  s.char s[]; 这个是ostream中的函数.遇到' '(空格) , '\n'(换行),就会自己主动结束,因此假设用cin读取字符串, ...

  4. 常用的Linux 命令

    来源于面试 求一条linux命令:查找当前目录下所有含有字符串type="json",文件名以.xml的所有文件 find . -name "*.xml"|xa ...

  5. 淘宝数据库OceanBase SQL编译器部分 源代码阅读--生成逻辑计划

    淘宝数据库OceanBase SQL编译器部分 源代码阅读--生成逻辑计划 SQL编译解析三部曲分为:构建语法树.生成逻辑计划.指定物理运行计划. 第一步骤,在我的上一篇博客淘宝数据库OceanBas ...

  6. 将字符串序列化Object格式

    using Newtonsoft.Json; 首先引用  Newtonsoft.Json; 定义一个字符串 string str = "[{'ID':8.0,'PAGEID':201.0,' ...

  7. BZOJ 3052 树上带修莫队

    思路: 就是把带修莫队移到了树上 块的大小开到(n^2/3)/2 比较好- 这是一个卡OJ好题 //By SiriusRen #include <cmath> #include <c ...

  8. WPF MVVM 从Prism中学习设计模式之Event Aggregator 模式

    Prism简介 Prism是由微软Patterns & Practices团队开发的项目,目的在于帮助开发人员构建松散耦合的.更灵活.更易于维护并且更易于测试的WPF应用或是Silverlig ...

  9. layui的多文件列表上传功能前端代码

    html页面的代码(注意:引入layui相关的css): <div class="layui-upload" style="margin-left: 130px&q ...

  10. wechat4j开发所有jar包

    wechat4j开发所需要的jar包合计,不用你去单独下载,已经全部包括 下载连接 wechat4j-lib.rar 如果你的服务是部署在新浪云计算SAE上的,那么下载这个jar合集 wechat4j ...