web-dev-qa-db-ja.com

ディスクを取得するにはどうすればよいですかIO HP-UXでの使用率(パーセンテージ)

選択したディスクのディスク使用率に関するデータを収集する必要があります。 glance-plusモニタリングツールを使用して、現在のデータをパーセントで表示できます(topに似ています)が、これらの値をファイルに収集して、そこからグラフを作成できるようにする必要があります。

残念ながら、これは一見不可能なので、この目的のために独自のスクリプトを作成したいと思いました。 1秒あたりの読み取り/書き込みブロック数を収集するスクリプトを作成できましたが、最大使用率が何であるかがわからないため、これをパーセントに簡単に変換する方法がわかりません。スクリプトは次のとおりです。

#!/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でこれを行う簡単な方法はありますか?できれば無料/デフォルトのツールを使用してください

4
Petr

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と一致します。

4
Emmanuel