某資料庫伺服器寫入極慢,使用效能監控工具包 sysstat-9.0.4 全面檢測,內建多工具實用性極高。
# tar zxvf sysstat-9.0.4.tar
# cd sysstat-9.0.4
# ./configure --prefix=/usr/local/tools
# make && make install
# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 120 249420 219056 6520512 0 0 0 1 1 1 7 0 90 3 0
各指標看似正常,無明顯異常,需進階工具深入。
# iostat -cdDPx
extended device statistics
cpu device mgr/s mgw/s r/s w/s kr/s kw/s size queue wait svc_t %b us sy wt id
sda1 ;;0;; 0.0 0.0 ;; 1.3 14.8 0.00 0.0 0.00 0.0 00703 90
sda2 ;;0;; 0.0 0.0 ;; 0.0 ;; 0.0 ;; 0.0 0.0 0.00 0.0
sda3 ;;0;; 0.0 0.0 111.2 266.5 0.0 0.0 0.00 0.0 0.0 00000
發現 sda3 寫入頻率極高。與正常資料庫伺服器對比,確認寫操作頻繁度明顯異常。
# /usr/local/tools/bin/sar -u 3 5
Linux 2.6.16.60-0.21-bigsmp (linux-1kio) 09/22/09 _i686_ (4 CPU)
17:36:03 CPU %user %nice %system %iowait %steal %idle
17:36:06 all 25.04 0.00 0.25 2.66 0.00 72.05
17:36:09 all 23.25 0.00 0.17 1.75 0.00 74.83
17:36:12 all 23.48 0.00 0.00 2.25 0.00 74.27
17:36:15 all 23.58 0.00 0.08 1.92 0.00 74.42
17:36:18 all 23.52 0.00 0.00 2.25 0.00 74.23
Average: all 23.78 0.00 0.10 2.17 0.00 73.96
%iowait 偏高(平均 2.17%),顯示 CPU 等待磁碟 I/O 佔用較多時間。
# /usr/local/tools/bin/sar -d 3 5
DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
dev8-0 23.59 0.00 621.93 26.37 0.21 8.79 8.34 19.67
dev8-0 14.00 0.00 197.33 14.10 0.14 9.71 8.76 12.27
dev8-0 21.67 0.00 253.33 11.69 0.11 4.49 4.86 10.53
正常情況 svctm (服務時間) < await (平均等待時間)。部分記錄 svctm 接近甚至超過 await,說明磁碟讀寫極頻繁,I/O 效能已異常。
透過 vmstat、iostat、sar 組合,從 CPU、記憶體、I/O 多維度定位瓶頸。本案例中資料庫寫入頻繁、I/O 等待偏高,進一步排查可鎖定磁碟子系統效能問題。希望此檢測流程對大家有幫助。