巧用pt-ioprofile 工具
admin
2023-05-24 14:42:35
0次


一、描述

     生产系统数据库性能压力比较大,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、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...