当看到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. 从零開始写游戏引擎(一) - project创建以及文件夹设置还有版本号控制

    一句话提要 好的開始等于成功了一半. 创建文件夹结构 project文件夹下最好分为以下几个文件夹 Docs - 开发文档,设计文档 Assets - 角色,动作,模型和音效等 Source - 代码 ...

  2. 一种基于Qt的可伸缩的全异步C/S架构server实现(五) 单层无中心集群

    五.单层无中心集群 对40万用户规模以内的server.使用星形的无中心连接是较为简便的实现方式.分布在各个物理server上的服务进程共同工作.每一个进程承担若干连接.为了实现这个功能,须要解决几个 ...

  3. Dynamics CRM2013 6.1.1.1143版本号插件注冊器的一个bug

    近期在做的项目客户用的是CRM2013sp1版本号,所以插件注冊器使用的也是与之相应的6.1.1.1143,悲剧的事情也因此而開始. 在插件中注冊step时,工具里有个run in user's co ...

  4. java连接sql server

    package com.cps.rom.utils; /************************************************************************ ...

  5. 英语发音规则---K字母

    英语发音规则---K字母 一.总结 一句话总结: 1.K发[k]音? kind [kaɪnd] n. 种类 bike [baɪk] n. 自行车 skate [skeɪt] vi. 滑冰 make [ ...

  6. dnscat使用——整体感觉这个工具不完善,失败率很高,传文件时候没有完整性校验,我自己测试时通过域名转发失败,可能是其特征过于明显导致

    git clone https://github.com/iagox86/nbtool make 然后就可以按照下面的官方说明进行操作了. 我的感受:整体感觉这个工具不完善,失败率很高,传文件时候没有 ...

  7. SQL语句之WITH AS

    一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到. 其实就是把一大堆 ...

  8. Redis运维时需要注意的参数

    1: 内存 Memory used_memory:859192 数据结构的空间 used_memory_rss:7634944 实占空间 mem_fragmentation_ratio:8.89 前2 ...

  9. Java基础——增强for循环

    java1.5版本引入了一个增强for循环,基本原理和for循环类似. 语法声明:for(表达式:条件表达式) 举例:for (String str : set) 解释:set代表set集合,str代 ...

  10. Windows 安装 MySQL8

    MySQL8下载地址:https://dev.mysql.com/downloads/mysql/ 解压到安装目录 新建配置文件my.ini [mysqld]# 设置mysql的安装目录basedir ...