I/O可以说是问题大户,线上的问题经常都是它引起的,很多人却不知道怎么定位这种问题。今天简单介绍一下,在此抛砖引玉。

此类问题我们一般分三步定位:按系统级I/O、进程级I/O、业务级I/O定位即可,一般情况下分析前面两步就可以知道大致问题所在。

系统级I/O (使用iostat、vmstat命令)

常用选项

-d 显示设备(磁盘)使

I/O可以说是问题大户,线上的问题经常都是它引起的,很多人却不知道怎么定位这种问题。今天简单介绍一下,在此抛砖引玉。

此类问题我们一般分三步定位:按系统级I/O、进程级I/O、业务级I/O定位即可,一般情况下分析前面两步就可以知道大致问题所在。

系统级I/O (使用iostat、vmstat命令)

常用选项

-d 显示设备(磁盘)使用状态 。

-x 显示和I/O相关的扩展数据。

-k 使用k为单位。

线上I/O问题排查思路

%util 代表磁盘繁忙程度,0%~100%之间。

argrq-sz 提交给驱动层的IO请求大小,用于度量随机程度。

svctm 单次IO请求耗时,寻道+旋转延迟时间,一般不超过8ms。

vmstat命令可以查看系统纬度的CPU负载,显示如下:

us:表示用户进程消耗的CPU时间百分比。

sy:内核模式消耗的CPU时间百分比。

wa:IO等待消耗的CPU时间百分比。

进程级I/O (使用iotop、strace)

常用选项

-d SEC:间隔SEC秒显示一次。

-p PID:监控的进程pid。

iotop

线上I/O问题排查思路

用状态 。

-x 显示和I/O相关的扩展数据。

-k 使用k为单位。

%util 代表磁盘繁忙程度,0%~100%之间。

argrq-sz 提交给驱动层的IO请求大小,用于度量随机程度。

svctm 单次IO请求耗时,寻道+旋转延迟时间,一般不超过8ms。

vmstat命令可以查看系统纬度的CPU负载,显示如下:

us:表示用户进程消耗的CPU时间百分比。

sy:内核模式消耗的CPU时间百分比。

wa:IO等待消耗的CPU时间百分比。

进程级I/O (使用iotop、strace)

常用选项

-d SEC:间隔SEC秒显示一次。

-p PID:监控的进程pid。

iotop

I/O排查命令的更多相关文章

  1. java问题排查命令

    java问题排查命令 jps:查看java进程 jmap:导出堆详细信息(与jhat一起使用) jhat:分析Java堆的命令(与jmap一起使用) jstack:可以定位到线程堆栈,根据堆栈信息我们 ...

  2. Java开发必须掌握的线上问题排查命令

    作为一个合格的开发人员,不仅要能写得一手还代码,还有一项很重要的技能就是排查问题.这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查.由于在生产环境中,一般没办法 ...

  3. Rocket MQ 问题排查命令

    修改rocketmq官方代码测试: package com.alibaba.middleware.race.rocketmq; import java.util.Scanner; import com ...

  4. linux系统性能排查命令

    [top] 命令可以动态查看当前系统的资源情况,以及占用资源的命令列表 用法: - ctrl + c / q : 停止此命令运行 - c : 展示完整的命令 - [top -bn1]:可以不动态的展示 ...

  5. 5.Linux常用排查命令

    可以使用一下命令查使用内存最多的10个线程     ps aux | sort -k4nr | head -n 10   可以使用一下命令查使用CPU最多的10个线程     ps aux | sor ...

  6. mysql常用排查命令

    1.查看服务器使用状态 mysqladmin -uroot -p -S /tmp/mysql.sock -r -i 1 ext |\ awk -F"|" \ "BEGIN ...

  7. linux常用命令 、查看日志、web排查

    linux常用命令 ps aux|grep xxx (比如 ps aux|grep tomcat ps aux|grep tomcat-portalvip ps aux|grep nginx 等) r ...

  8. mongodb系列~mongo常用命令

    mongodb常用命令大全1 索引相关命令 db.chenfeng.ensureIndex({"riqi":1}) 添加索引会阻塞nohup mongo --eval " ...

  9. 系统管理员应该知道的20条Linux命令

    如果您的应用程序不工作,或者您希望在寻找更多信息,这 20 个命令将派上用场. 在这个全新的工具和多样化的开发环境井喷的大环境下,任何开发者和工程师都有必要学习一些基本的系统管理命令.特定的命令和工具 ...

随机推荐

  1. Qt模态与非模态

    模态对话框就是指在子对话框弹出时,焦点被强行集中于该子对话框,子对话框不关闭,用户将无法操作其他的窗口.非模态相反,用户仍然可以操作其他的窗口,包括该子对话框的父对话框. 如果从线程角度来讲,模态对话 ...

  2. 转载:mysql 操作总结 INSERT和REPLACE

    转自:http://www.jb51.net/article/19411.htm   用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做 ...

  3. 自定义HttpModule,用于未登录用户,不弹出Windows认证窗口,而是跳转回SSO站点

    2012年的一篇随笔记录,可以学习到如何自定义HttpModule,而具体里面针对需求开发的代码,可能未必能让大伙了解到什么,可快速扫描而过. using System; using System.W ...

  4. Ubuntu 13.10 安装 Oracle11gR2

    #step 1:  groupadd  -g 2000 dba useradd   -g 2000 -m -s /bin/bash -u 2000 grid useradd   -g 2000 -m ...

  5. Java web url 规范

    设计URI应该遵循的原则 URI是网站UI的一部分,因此,可用的网站应该满足这些URL要求 简单,好记的域名 简短(short)的URI 容易录入的URI URI能反应站点的结构 URI是可以被用户猜 ...

  6. 视觉SLAM漫淡

    视觉SLAM漫谈 1.    前言 开始做SLAM(机器人同时定位与建图)研究已经近一年了.从一年级开始对这个方向产生兴趣,到现在为止,也算是对这个领域有了大致的了解.然而越了解,越觉得这个方向难度很 ...

  7. TCP/IP协议族-----24、网络管理(SNMP)

  8. UIScrollView的用法,属性

    iOS开发学习笔记-UIScrollView的用法 转载地址:http://www.jianshu.com/p/bcaf5cdfaa7e# UIScrollView是用来在屏幕上显示那些在有限区域内放 ...

  9. Array遍历的小技巧

     如果在遍历中删除或增加了部分元素,就会导致遍历失败,因为对象数组的长度发生了变化,索引随之而变,遍历的结果不完整或者引发运行时错误.其实不需要任何复杂的判断,最简单的方法是:倒过来遍历,像这样: f ...

  10. Java Integer常量池

    public class IntegerExample { public static void main(String[] javalatte) { Integer i = 10; Integer ...