找出linux伺服器IO占用高的程式

2021-07-04 00:20:36 字數 560 閱讀 8121

一台伺服器比較效能無外乎記憶體、cpu使用率、io使用率,把這3樣優化好了,你伺服器的負載就要小很多,當然網路情況不在我的考慮範圍,畢竟網路這個情況是很不穩定,就算你伺服器上把網路優化得再好,idc不給力也沒用,除非是自己公司機房,好了,今天只說下怎麼找io占用高的程式.

系統:centos 5.5

1.開啟io監控

sysctl vm.block_dump=1或echo 1 >/proc/sys/vm/block_dump

2.開啟後核心會將io讀寫dump到日記,用dmesg檢視:

dmesg

3.程序讀寫block到磁碟dm-0:

mysqld(7822): read block 78196624 on dm-0

kjournald(529): write block 211136 on dm-0

bash(8336): dirtied inode 7391146 (dmesg) on dm-0

4.統計當前占用io最高的10個程序:

dmesg |awk -f: ''|sort|uniq -c|sort -rn|head -n 10

Shell找出伺服器占用CPU 記憶體過高的程序

快速找出占用伺服器資源過高程序,我們可以結合ps命令來寫乙個shell指令碼,以便快速找出占用資源過高的程序。bin bash echo cpu top 10 ps eo pid,pcpu,pmem,args sort pcpu head n 10 echo memeory top 10 ps eo...

一次伺服器IO佔用率高的定位分析

檔案系統 資料庫 如果innodb flush log at trx commit設定為1,每次事務提交時mysql都會把log buffer的資料寫入log file,並且flush 刷到磁碟 中去.如果innodb flush log at trx commit設定為2,每次事務提交時mysql...

一次伺服器IO佔用率高的定位分析

檔案系統 資料庫 高效能mysql 這本書的第10章 複製的章節 從上面的環境描述中可以看到我使用了mysql的主主複製 找到了對sync binlog的說明 如果innodb flush log at trx commit設定為1,每次事務提交時mysql都會把log buffer的資料寫入log...