io利用率100%问题
iostat -mx 1 dm-60 dm-61 dm-62 dm-63 dm-64 dm-65 dm-66 dm-67
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
dm-60 6.00 0.00 235.00 0.00 118.03 0.00 1028.63 0.40 1.69 1.69 0.00 0.74 17.45
dm-61 0.00 0.00 231.50 0.00 112.55 0.00 995.71 0.38 1.63 1.63 0.00 0.70 16.30
dm-62 0.00 0.00 1349.00 0.00 662.08 0.00 1005.14 122.07 92.08 92.08 0.00 0.59 79.10
dm-63 0.50 0.00 1143.00 0.00 560.10 0.00 1003.57 357.50 271.83 271.83 0.00 0.87 100.00
dm-64 0.00 0.00 1268.00 0.00 623.26 0.00 1006.66 151.34 115.45 115.45 0.00 0.62 79.10
dm-65 0.00 0.00 1288.00 0.00 633.29 0.00 1006.98 156.79 121.89 121.89 0.00 0.63 81.10
dm-66 0.00 0.00 230.50 0.00 112.05 0.00 995.54 0.38 1.66 1.66 0.00 0.71 16.35
dm-67 0.00 0.00 241.50 0.00 117.05 0.00 992.65 0.39 1.61 1.61 0.00 0.70 17.00
svctm 值很小,有一块盘的io利用率达到了100%。
查看iostat的manpage,
svctm
The average service time (in milliseconds) for I/O requests that were issued to the device. Warning! Do not trust this field any more. This field will be removed in a future
sysstat version.
发现该指标已经不具备参考性了,怎么判断我这块100%利用率的硬盘,耗时情况怎么样呢,写了个脚本如下:
#!/bin/bash
blktrace -d /dev/$1 -o hh -w 20
blkparse -i hh -d $1.blktrace.bin
btt -i $1.blktrace.bin -o /dev/shm/$1-caq
一个I/O请求进入block layer之后,可能会经历下面的过程:
- Remap: 可能被DM(Device Mapper)或MD(Multiple Device, Software RAID) remap到其它设备
- Split: 可能会因为I/O请求与扇区边界未对齐、或者size太大而被分拆(split)成多个物理I/O
- Merge: 可能会因为与其它I/O请求的物理位置相邻而合并(merge)成一个I/O
- 被IO Scheduler依照调度策略发送给driver
- 被driver提交给硬件,经过HBA、电缆(光纤、网线等)、交换机(SAN或网络)、最后到达存储设备,设备完成IO请求之后再把结果发回。
采样了20s,看到底哪里比较忙。取数据如下:
[root@localhost bak]# vi dm-63-caq
==================== All Devices ====================
ALL MIN AVG MAX N
--------------- ------------- ------------- ------------- -----------
Q2Qdm 0.000000025 0.001386351 0.204286857 3553
Q2Cdm 0.001132298 0.104383169 0.264029949 3554
Q2G 0.000000261 0.000003114 0.001671993 3425
G2I 0.000000437 0.000053202 0.003102351 3411
Q2M 0.000000726 0.000001618 0.000004214 129
I2D 0.000000443 0.000224963 0.014763260 3425
M2D 0.000000720 0.000284257 0.008655580 115
D2C 0.001126306 0.104102819 0.254061182 3554
可以看到D2C这一行,已经达到了平均104ms的单个io消耗,而这个是可以衡量硬件指标的。
由于dm-63是一块sas的ssd设备,正常情况下的1143次/s的读,还不应该达到瓶颈,考虑到空间占用也没有达到60%以上,不应该性能这么差。
待进一步排查。
io利用率100%问题的更多相关文章
- mysql在高内存、IO利用率上的几个优化点 (sync+fsync) 猎豹移动技术博客
http://dev.cmcm.com/archives/107 Posted on 2014年10月16日 by liuding | 7条评论 以下优化都是基于CentOS系统下的一些优化整理,有不 ...
- MySQL在高内存、IO利用率上的几个优化点
以下优化都是基于CentOS系统下的一些MySQL优化整理,有不全或有争议的地方望继续补充完善. 一.mysql层面优化 1. innodb_flush_log_at_trx_commit 设置为2设 ...
- mongoDb CPU利用率100%的分析和解决
在公司的项目中,突然出现过一个情况,mongodb 的CPU利用率到达100%,导致服务器这边卡死了,请求了半天无响应,提示请求超时. 因为,当时APP用户可能会在某一个时间段集中的使用,所以,请求量 ...
- linux 磁盘io利用率高,分析的正确姿势
一.背景简介 作为一个DBA难免不了会遇到性能问题,那么我们遇到性能问题该如何进行排查呢?例如我们在高并发的业务下,出现业务响应慢,处理时间长我们又该如何入手进行排查,本片文章将分析io高的情况下如何 ...
- MySQL实战45讲学习笔记:第二十九讲
一.引子 我在第25和27篇文章中,和你介绍了主备切换流程.通过这些内容的讲解,你应该已经很清楚了:在一主一备的双 M 架构里,主备切换只需要把客户端流量切到备库:而在一主多从架构里,主备切换除了要把 ...
- IO测试工具之fio详解
目前主流的第三方IO测试工具有fio.iometer和Orion,这三种工具各有千秋. fio在Linux系统下使用比较方便,iometer在window系统下使用比较方便,Orion是oracle的 ...
- TensorFlow如何提高GPU训练效率和利用率
前言 首先,如果你现在已经很熟悉tf.data+estimator了,可以把文章x掉了╮( ̄▽ ̄””)╭ 但是!如果现在还是在进行session.run(..)的话!尤其是苦恼于GPU显存都塞满了利用 ...
- 10个常见触发IO瓶颈的高频业务场景
摘要:本文从应用业务优化角度,以常见触发IO慢的业务SQL场景为例,指导如何通过优化业务去提升IO效率和降低IO. 本文分享自华为云社区<GaussDB(DWS)性能优化之业务降IO优化> ...
- 优化临时表使用,SQL语句性能提升100倍
[问题现象] 线上mysql数据库爆出一个慢查询,DBA观察发现,查询时服务器IO飙升,IO占用率达到100%, 执行时间长达7s左右.SQL语句如下:SELECT DISTINCT g.*, cp. ...
随机推荐
- 基于web的网上书城系统开发-----需求分析
网上书店管理系统主要针对中小型书店,图书管理员将图书信息整理归类发布到网上.,用户登录该网站后进行浏览图书信息.购买等活动. 前台客户输入的数据交给后台数据库处理并及时反馈给双方.客户和管理者拥有相应 ...
- 豹哥嵌入式讲堂:ARM开发之文件详解(4)- relocatable文件(object, library)
大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的relocatable文件(object, library). 前三节课里,豹哥都是在给大家介绍嵌入式开发中的input文件. ...
- Jenkins-Dingding Notification Plugin 配置
具体内容请移步Jenkins官网或作者Github,本文仅为实践分享,记录几个小坑! 感谢插件作者的贡献! 转载注明出处:http://www.cnblogs.com/ityoung/p/648915 ...
- 【jQuery】(6)---jQuery validate插件
jQuery validate插件 一.导入js库 先导入jQuery库,然后导入Validate插件,如果是中文提示还需要 ...
- 深度解剖dubbo源码
-----------学习dubbo源码,能给你带来什么好处?----------- 1.提升SOA的微服务架构设计能力 通过读dubbo源码是一条非常不错的通往SOA架构设计之路,毕竟SOA的服 ...
- Java中的集合框架(下)
学生选课--判断Set中课程是否存在 package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays ...
- 使用quartz实现不重启服务器修改自定义配置
为了方便维护系统,开发中通常会设置一些自定义参数,写在单独的配置文件里,需要调整时可直接登录服务器修复配置文件,而不需要修改程序.但尴尬的是,web服务器并不会自动重新加载配置文件,重启服务器又会中断 ...
- 移动端APP列表点透事件处理方法
关于点透事件这里不再赘述,如果不清楚的可以上网搜一搜,或者看小火柴的这篇文章. 这里是自己在做移动端时,在列表滑动的时候,遇到的点透问题.出现这个问题的来由是因为在转场的时候,各个手机的转场效果不一样 ...
- Codeforces Round #434 (Div. 2, based on Technocup 2018 Elimination Round 1)&&Codeforces 861B Which floor?【枚举,暴力】
B. Which floor? time limit per test:1 second memory limit per test:256 megabytes input:standard inpu ...
- 2017广东工业大学程序设计竞赛决赛 题解&源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)
心得: 这比赛真的是不要不要的,pending了一下午,也不知道对错,直接做过去就是了,也没有管太多! Problem A: 两只老虎 Description 来,我们先来放松下,听听儿歌,一起“唱” ...