Monitoring

如何在 HP-UX 上以百分比形式檢索磁碟 IO 使用率

  • December 20, 2013

我需要收集有關選定磁碟的磁碟使用率數據。我可以使用glance-plus 監控工具以百分比顯示目前數據(它看起來類似於top),但我需要將這些值收集到一個文件中,以便我可以從中創建圖表。

不幸的是,這不可能一目了然,所以我想為此創建一些自己的腳本。我設法創建了一個腳本,該腳本收集每秒讀/寫的塊數,但我不知道如何輕鬆將其轉換為百分比,因為我真的不知道最大使用率可能是多少。腳本如下:

#!/bin/sh
list=`iostat 10 2 | grep -v ' 0' | grep -v 'device' | grep -vE '^ *$' | sed 's/^........ *//' | sed 's/ .*//'`
value=0
for rt in `echo $list`
do
value=`expr $rt + $value`
done

echo `expr $value / 10`

有沒有更簡單的方法可以在 hp-ux 上執行此操作,最好使用一些免費/預設工具

請注意,glance可以編寫腳本:

# cat /opt/perf/examples/adviser/disk_sar

 #The following glance adviser disk loop shows disk activity comparable
 #to sar -d data.

 #Note that values will differ between sar and glance because of differing
 #data sources, calculation methods, and collection intervals.

headersprinted = 0

# For each disk, if there was activity, print a summary:
disk loop {
 if BYDSK_PHYS_IO_RATE > 0 then {
   # print headers if this is the first active disk found this interval:
   if headersprinted == 0 then {
     print "--------    device          %util   queue   r+w/s    KB/s    msecs-avserv"
     headersprinted = 1
   }
   print GBL_STATTIME, "   ",BYDSK_DEVNAME|15, BYDSK_UTIL|7|2,
         BYDSK_REQUEST_QUEUE|8|2, BYDSK_PHYS_IO_RATE|8|0,
         BYDSK_PHYS_BYTE_RATE|8|0, BYDSK_AVG_SERVICE_TIME|16|2
 }
}

if headersprinted == 0 then
 print GBL_STATTIME, "   (no disk activity this interval)"

要使用該腳本:

glance -aos /opt/perf/examples/adviser/disk_sar  -j 5

這裡 BYDSK_UTIL 是收集間隔期間磁碟繁忙的時間百分比。

閱讀*/opt/perf/paperdocs/gp/C/gp-metrics.txt* 和*/opt/perf/paperdocs/ovpa/C/methp.txt*以查看可用的指標。

如果您更喜歡其他工具。您可以使用sar(預設情況下在 hp-ux 上)用於egrep -f fiters過濾您的磁碟

例如:

(awk 是為每個磁碟設置一個時間戳)

sar -d 5 10 | awk '/^[0-9]/ {t=$1} {sub("^........",t,$0); print }' | egrep -f myfilter
11:56:15   device   %busy   avque   r+w/s  blks/s  avwait  avserv
11:57:17 disk1680   23.76    0.50     200    3200    0.00    1.19
11:57:17 disk1689    0.99    0.50       1     507    0.00    5.45
11:57:17 disk1694   41.58    0.50     237    3786    0.00    1.75
11:57:17 disk1696    0.00    0.50       1      16    0.00    2.07
11:57:17 disk1707    0.99    0.50       1      16    0.00    5.82
11:57:17 disk1709    4.95    0.50       2    2044    0.00   24.10
11:57:17 disk1712    3.96    0.50       2    1980    0.00   23.69
...

使用 myfilter 包含您要觀看的磁碟。

# cat  myfilter
disk1680 
disk1689 
...

在每個磁碟名稱後添加一個空白字元“”,否則 disk1 將匹配 disk10

引用自:https://unix.stackexchange.com/questions/106021