pt-ioprofile,是一個percona的性能分析工具,可以查看進程輸出、輸入,打印一些表文件及活動IO。pt-ioprofile是一個只讀工具,所以對數據沒風險。由於網上對pt-ioprofile的安裝說明比較少,很多小伙伴都無從下手^.^
下面介紹一下pt-ioprofile的安裝過程:
#!/bin/bash toolkit(){ version=$(cat /etc/redhat-release | awk '{print $3}' | awk -F '.' '{print $1}') if [ $version -eq 6 ] then rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm else rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm fi yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes -y wget http://www.percona.com/downloads/percona-toolkit/LATEST/RPM/percona-toolkit-2.2.11-1.noarch.rpm rpm -ivh percona-toolkit-2.2.11-1.noarch.rpm } toolkit
如果安裝過程報以下錯誤
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again error: Failed dependencies: perl(DBI) >= 1.13 is needed by percona-toolkit-2.2.11-1.noarch perl(DBD::mysql) >= 1.0 is needed by percona-toolkit-2.2.11-1.noarch perl(Time::HiRes) is needed by percona-toolkit-2.2.11-1.noarch perl(IO::Socket::SSL) is needed by percona-toolkit-2.2.11-1.noarch
原因是rpm -ivh裝了epel源后,出現yum安裝異常,解決辦法是編輯/etc/yum.repos.d/epel.repo,把基礎的恢復,鏡像的地址注釋掉,
#baseurl
mirrorlist
改成
baseurl
#mirrorlist
再運行腳本安裝即可
使用:可以man pt-ioprofile查看使用方法。
pt-ioprofile的原理是對某個pid附加一個strace進程進行IO分析。通過ps aux|grep mysqld 找到 mysqld進程對應的進程號,通過pt-ioprofile查看哪個文件的IO占用時間最多,對於定位問題更有用的是通過IO的吞吐量來進行定位。使用參數 --cell=sizes,該參數將結果已 B/s 的方式展示出來:
請參考:http://www.cnblogs.com/cenalulu/archive/2013/04/12/3016714.html
請參考http://www.percona.com/doc/percona-toolkit/2.0/pt-ioprofile.html
作者:陸炫志 出處:xuanzhi的博客 http://www.cnblogs.com/xuanzhi201111 您的支持是對博主最大的鼓勵,感謝您的認真閱讀。本文版權歸作者所有,歡迎轉載,但請保留該聲明。 |