Mysql

了解 Solaris 中的 iotop (DTT) 輸出

  • June 3, 2011

當在寫入量大的 Solaris 10 伺服器上執行 DTT iotop 時,該伺服器執行多個安裝了 MySQL 守護程序的區域,我得到以下輸出:

UID PID PPID CMD 設備 MAJ MIN D 字節
70 26636 1 mysqld sd1 10 64 R 360448
70 25940 1 mysqld sd1 10 64 R 530432
0 5 0 zpool-rpool sd1 10 64 W 17250816

令我困擾的是zpool-rpool佔用大部分 io 的事實。我能做些什麼來查看哪個 MySQL 或其他程序真正佔用了 IO - 更詳細的細分?如果zpool-rpool代表“寫入 ZFS”,那麼 iotop 在這裡真的沒有幫助我…… :)

謝謝!

您可能會發現 Brendan Gregg 最近關於文件系統延遲的部落格系列很有用。他展示了一些腳本,用於調查使用系統呼叫提供程序的文件系統使用情況(與 iotop 使用的 io 提供程序相比,這應該更可靠地辨識負責的程序)。

例如,syscall-read-zfs.d第 4 部分中顯示的腳本可以很容易地修改為在 pid 而不是 execname 上探測寫入和聚合。

這個腳本的輸出也可能比 iotop 更有用,因為它顯示了 IO 的數量和每個程序的 IO 延遲分佈。對於數據庫,讀取和同步寫入的延遲是性能痛苦的直接衡量標準——比每秒字節數更容易解釋。

如果您有時間,我還強烈建議您觀看他在 BayLISA的展示,以親身體驗他如何研究 MySQL 查詢性能問題。

引用自:https://serverfault.com/questions/275904