對於MySQL的讀寫比率統計,我們一般的做法是通過統計"show global status like 'com_%' "來得到相關數值。這裡有一個不錯的script。用來即時查看MySQL讀寫比率是個不錯的選擇。它的項目首頁是http://code.google.com/p/rw-ratio/
安裝與使用都很簡單:
用perl寫的嘛,DBI、DBD之類的依賴包肯定是少不了的。這個指令碼使用到三個包分別是:
a.perl-DBI
b.perl-Term-ReadKey
c.perl-DBD-MySQL
前面a、b兩個包找一下匹配OS版本的rpm封裝一下,至於最後的c包安裝時會遇到找不到“libmysqlclient.so.1*”的問題。網上的解決方案很多,大多使用軟連結的方式,不過如果遇到提供的是libmysqlclient.so.16而要的是libmysqlclient.so.15的情況下,這種方法很有可能是不行的。所以最好的方法是安裝完a、b兩個包後,使用tar包安裝。
# tar -zxvf DBD-mysql-4.013.tar.gz
# cd DBD-mysql-4.013
# perl Makefile.PL --testhost=127.0.0.1 #這裡要說明一下,最好要指定--testuser和--testpassword,這個使用者最起碼要對test.*擁有所有all privileges
# make && make test
# make install
好了,環境完成後,直接運行這個統計r/w ratio的指令碼即可。當然必要的參數還是要加的,比如'--user':
# ./rw-ratio --host=localhost --user=lrngsql --port=3306 --sleep=10
Enter password:
Time: xxxx Interval: 10 R: xxx dR: xxx W: xxx dW: xxx dR/dW: xxx R/W: xxx
對於它的輸出項,它的指令碼裡有詳細的說明,這裡粘一些:
=item B<Time>
The timestamp, expressed as a UNIX epoch, of the sample.
=item B<Interval>
The number of seconds between the previous sample and the current sample.
=item B<R>
The total number of database reads.
=item B<dR>
The delta of reads between the previous sample and the current sample.
=item B<W>
The total number of database writes.
=item B<dW>
The delta of writes between the previous sample and the current sample.
=item B<dR/dW>
The ratio of reads to writes, calculated using the current deltas
=item B<R/W>
The ratio of reads to writes, calculated using the totals