巧用pt-ioprofile 工具

发布时间:2020-04-16 16:38:46 作者:roidba
来源:网络 阅读:1573


一、描述

     生产系统数据库性能压力比较大,cpu iowait 40%~50% ,数据库系统登录难。需要查出来是什么进程导致的,最好是找到是什么文件引起的。


二、操作过程

1.因为是数据库系统,很容易知道是mysqld引起的,使用glances系统工具。



2. pt-ioprofile的原理是对某个pid附加一个strace进程进行IO分析。通过ps aux|grep mysqld 找到 mysqld进程对应的进程号,通过pt-ioprofile查看哪个文件的IO占用时间最多,对于定位问题更有用的是通过IO的吞吐量来进行定位。使用参数 --cell=sizes,该参数将结果已 B/s 的方式展示出来:

# ps -ef|grep mysql

# pt-ioprofile --profile-pid=113106 --cell=sizes


Mon May 15 13:48:36 CST 2017

Tracing process ID 113106

     total                     pread       read               pwrite      write      fsync       open      close      lseek  ftruncate filename

2032296082          0               3424256          0             146          0              0            0             2028871680          0 /data/disk1/mysqllogs/relay-bin.002231

 486457344         482263040          0    4194304          0          0          0          0          0          0 /data/disk1/mysqldata/dcs@002dpartition/t_warn_info_history#P#p201705.ibd

 148111360         540672          0  147570688          0          0          0          0          0          0 /data/disk1/mysqldata/ibdata1

  19590656            0          0   19590656          0          0          0          0          0          0 /data/disk1/mysqldata/ib_logfile0

   6725632          0     162765          0          0          0          0          0    6562867          0 /data/mysqllogs/relay-bin.002231

   3429905          0          0          0    3429905          0          0          0          0          0 /data/disk1/mysqllogs/mysql-bin.000431

     35824          0          0          0      17912          0          0          0      17912          0 /data/disk1/mysqldata/innodb_status.113106

     32768      32768          0          0          0          0          0          0          0          0 /data/disk1/mysqldata/mysql/slave_master_info.ibd

       561          0         66          0          0          0          0          0        495          0 /data/mysqllogs/relay-bin.index

       448          0          0          0        448          0          0          0          0          0 /data/mysqllogs/relay-bin.002232

       314          0          0          0        314          0          0          0          0          0 /data/disk1/mysqllogs/error.log

         0          0          0          0          0          0          0          0          0          0 /data/mysqllogs/relay-bin.~rec~

         0          0          0          0          0          0          0          0          0          0 /data/mysqllogs/relay-bin.index_crash_safe

         0          0          0          0          0          0          0          0          0          0 /data/mysqllogs/

         0          0          0          0          0          0          0          0          0          0 /data/disk1/mysqllogs/relay-bin.index


通过上面很容易发现是因为复制引起的性能问题,进一步再去查看复制状态即可,结合业务分析为什么会出现周期性的插入波峰。

最终处理只是修改了数据库的个别参数,主要是内存相关的参数,明天需要继续观察。本来计划要升级一下系统配置,如果通过分析修改数据库、系统系统参数解决了此问题。那么才能体现DBA的价值~

推荐阅读:
  1. 巧用命令行工具UCloud CLI,轻量操作API管理云资源
  2. 巧用Oracle VM VirtualBOX自带命令完美克隆系统

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

pt 巧用 ioprofile

上一篇:Nginx如何通过upstream和proxy_pass实现了负载均衡

下一篇:增加sticky session模块支持解决问题答疑

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》