本篇文章是一篇关于负载定位的帖子

媒介:

在一般运维任务中经常会碰到这么一个场景,服务器的IO负载很高(iostat中的util),但是没法倏地的定位到IO负载的起源程进和起源文件致使没法行进响应的略策来解决题问。

这个象现在MySQL上更为见常,在5.6(performance_schema供提io instrument)之前,我们常通只能猜到是MySQL致使的高IO,但是没法定位体具是哪个文件带来的负载。

例如是ibdata的刷写?还是冷门ibd的随机读取?

本文就将分析一个比较简单的定位IO高负载的流程。

具工备准:

iotop: http://guichaz.free.fr/iotop/

pt-ioprofile:http://www.percona.com/downloads/percona-toolkit/2.2.1/


Step1 : iostat 看查IO情况

iostat -x 1 看查IO情况,从下图可以看到dfa这个磁盘的IO负载较高,接下来我们就来定位体具的负载起源


 Step2: iotop定位负载起源程进

iotop的质本是一个python脚本,从proc中获得thread的IO信息,行进汇总。

从下图可以看出大部分的IO起源都来自于mysqld程进。因此可以肯定dfa的负载起源是数据库


 

Step3 pt-ioprofile定位负载起源文件

pt-ioprofile的理原是对某个pid附加一个strace程进行进IO析分。

以下是摘自官网的一段警示:

每日一道理
毅力,是千里大堤一沙一石的凝聚,一点点地累积,才有前不见头后不见尾的壮丽;毅力,是春蚕吐丝一缕一缕的环绕,一丝丝地坚持,才有破茧而出重见光明的辉煌; 毅力,是远航的船的帆,有了帆,船才可以到达成功的彼岸。

However, it works by attaching strace to the process using ptrace(), which will make it run very slowly until strace detaches. In addition to freezing the server, there is also some risk of the process crashing or performing badly after strace detaches from it, or indeed of strace not detaching cleanly and leaving the process in a sleeping state. As a result, this should be considered an intrusive tool, and should not be used on production servers unless you are comfortable with that.

通过ps aux|grep mysqld 找到 mysqld程进对应的程进号,通过pt-ioprofile看查哪个文件的IO占用间时最多。

认默参数下该具工展示的是IO占用的间时。

 对于定位题问更有效的是通过IO的吞吐量来行进定位。应用参数 --cell=sizes,该参数将结果已 B/s 的式方展示出来

从上图可以看出IO负载的重要起源是sbtest (sysbench的IO bound OLTP测试)。

并且压力重要中集在读取上。

文章结束给大家分享下程序员的一些笑话语录: 女人篇
  有的女人就是Windows虽然很优秀,但是安全隐患太大。
  有的女人就是MFC她条件很好,然而不是谁都能玩的起。
  有的女人就是C#长的很漂亮,但是家务活不行。
  有的女人就是C++,她会默默的为你做很多的事情。
  有的女人就是汇编虽然很麻烦,但是有的时候还得求它。
  有的女人就是SQL,她会为你的发展带来莫大的帮助。

**加粗样式**

IO负载高的来源定位相关推荐

  1. IO负载高的来源定位 IO系列

    http://elf8848.iteye.com/category/281637 前言: 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的util),但是无法快速的定位到 ...

  2. 磁盘性能分析一:IO负载高的判断详解

    iostat和iowait详细解说 %iowait并不能反应磁盘瓶颈 iowait实际测量的是cpu时间: %iowait = (cpu idle time)/(all cpu time) 这个文章说 ...

  3. oracle导致的负载高,Oracle 11g 数据库服务器CPU、IO负载高的故障排除流程

    使用top查看负载高的进程 ~ [OSMSRDB]$ top top - 11:02:43 up 12 days, 17:15,  4 users,  load average: 1.50, 0.93 ...

  4. linux 磁盘并发io,Linux系统 磁盘IO过高排查总结

    最近做的一个电商网站因为磁盘 I/O 过高导致访问速度奇慢,问题存在两个月有余未得到解决办法.此次排查原因的经验可以作下次问题的参考. 1.会看懂 top 系统命令出来的各项参数.此次是无意中发现 u ...

  5. 面试官:磁盘 IO 变高,你怎么分析?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 工具准备: iotop: http://guichaz.f ...

  6. 一次详尽的问题定位记录:CPU使用率低负载高的排查过程

    历史原因,当前有一个服务专门用于处理mq消息,mq使用的阿里云rocketmq,sdk版本1.2.6(2016年). 随着业务的发展,该应用上的consumer越来越多,接近200+,导致该应用所在的 ...

  7. linux 系统负载高 如何检查

    1:load Average 1.1:什么是Load?什么是Load Average? Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a measur ...

  8. cpu平均负载高的几种情况

    前言: 每次排查性能相关问题的时候,我们都会先通过监控来查看下当前机器的CPU负载,根据负载结果值的输出,来判断当前CPU的基本状况. 那么什么是CPU负载呢?具体CPU负载多少才算是正常的呢?有哪些 ...

  9. linux系统硬盘使用过高,磁盘IO过高时的处理办法

    转: http://www.cnblogs.com/wjoyxt/p/4808024.html 针对系统中磁盘IO负载过高的指导性操作 主要命令: echo deadline > /sys/bl ...

  10. memcached在大负载高并发网站上的应用(一)

    大家可能对memcached这种产品早有了解,或者已经应用在自己的网站中了,但是也有一些朋友从来都没有听说过或者使用过. 这都没什么关系,本文旨在从各个角度综合的介绍这种产品,尽量深入浅出,如果能对您 ...

最新文章

  1. MS-SQL中的事务
  2. thinking-in-java(13) String字符串
  3. php按时间归档,PHP文章按日期(月日)SQL归档
  4. aria2c下载迅雷离线
  5. 通过pip下载python包缓慢的解决方法
  6. 【Leetcode】数学题(Python)
  7. 《通信原理》复习笔记10----第十章模拟信号的数字传输及相关例题(重点及难点)
  8. 移动边缘计算(MEC)
  9. 8月刚入职字节跳动的测试开发面试题,附答案
  10. [CUDA报错] CUDA error: device-side assert triggered
  11. phoenxi elixir 框架几个方便的命令
  12. Word2013目录设置,页码对齐
  13. 机器翻译和人工智能翻译,语言学与机器翻译
  14. 关于Spark Steaming中的Processing Time/Total Delay/Processing Delay
  15. 法律人工智能的前世今生,附熊明辉教授简历(公号回复“法律AI”或“熊明辉AI”下载PDF典型资料,欢迎转发、赞赏支持科普)
  16. 6个炒菜习惯 丢失营养
  17. reactrouter4路由钩子_React-Router4.x中文文档
  18. 术业有专攻,数据库的 dba
  19. 期望、方差、标准差、协方差、相关系数、协方差矩阵、残差、残差平方和(SSE)、标准化残差,残差分析
  20. 50个最好的firefox扩展让你尽情冲浪

热门文章

  1. [BZOJ1594] [Usaco2008 Jan]猜数游戏(二分 + 并查集)
  2. gethostbyname
  3. Naive Bayes text classification
  4. ascll编码表图片_ASCII码一览表,ASCII码对照表
  5. springboot幂等性_springboot + redis + 注解 + 拦截器 实现接口幂等性校验
  6. eclipseini设置使用的jdk_设置 Maven 对应的JDK 版本
  7. PLC可编程控制器的结构和工作原理
  8. 删除exchange误发邮件
  9. iconv-----linux gbk 转 UTF-8
  10. 无法在web服务器上启动调试。调试失败,因为没有启用集成windows身份验证