1. 程式人生 > >巧用pt-ioprofile 工具

巧用pt-ioprofile 工具

巧用pt-ioprofile 工具


一、描述

生產系統數據庫性能壓力比較大,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 [email protected]/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的價值~

本文出自 “roidba” 博客,請務必保留此出處http://roidba.blog.51cto.com/12318731/1925986

巧用pt-ioprofile 工具