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. 防止网页被别站用 iframe嵌套

    将下面的代码加到您的页面 <head></head> 位置即可: <script language="javascript"> <!-- ...

  2. 学习使用资源文件[11] - DLL 中的资源文件

      本例将把一张 bmp 图片, 以资源文件的方式嵌入 dll, 然后再调用. 第一步: 建一个 DLL 工程, 如图: 然后保存, 我这里使用的名称都是默认的. 第二步: 建一个资源原文件, 如图: ...

  3. 制作一款3D炸弹超人游戏

    说起炸弹超人,相信很多朋友都玩过类似的游戏,其中最为人熟知的莫过于<泡泡堂>.该类型游戏需要玩家在地图中一边跑动一边放置炸弹,同时还要躲避敌方炸弹保护自己.最初的炸弹超人游戏都是2D的,今 ...

  4. php 用命令行导出和导入MySQL数据库

    命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\ ...

  5. ubuntu下vim配置(刷题和比赛两套)

    1. 平时刷题练习使用 "mswin.vim 插件提供windows下的编辑快捷键功能 source $VIMRUNTIME/mswin.vim behave mswin set nu se ...

  6. java图形化Swing教程(一)

    与多线程.泛型等不同,Swing主要在于使用. 以下主要放代码和凝视.少说话. (一)基本框架 package Swing; import java.awt.*; import javax.swing ...

  7. day11<Java开发工具&常见对象>

    Java开发工具(常见开发工具介绍) Java开发工具(Eclipse中HelloWorld案例以及汉化) Java开发工具(Eclipse的视窗和视图概述) Java开发工具(Eclipse工作空间 ...

  8. EditPlus详解

    如何让EditPlus支持LUA教程是本文要介绍的内容,这次主要介绍一下学习Lua之前的准备工作.关于在EditPlus中实现lua的安装,具体内容来看本文详解. (1) 下载Lua安装包,最新版本是 ...

  9. js jquery获取当前元素的兄弟级 上一个 下一个元素 jquery如何获取第一个或最后一个子元素

    var chils= s.childNodes;  //得到s的全部子节点 var par=s.parentNode;   //得到s的父节点 var ns=s.nextSbiling;   //获得 ...

  10. Python实现自动登录/登出校园网网关

    学校校园网的网络连接有免费连接和收费连接两种类型,可想而知收费连接浏览体验更佳,比如可以访问更多的网站.之前收费地址只能开通包月服务才可使用,后来居然有了每个月60小时的免费使用收费地址的优惠.但是, ...