ディスクIO負荷率を計算する方法は?

ディスクIO負荷率を計算する方法は?

diskIOLAが利用できないことがわかるように、net-snmp出力は次のようになります。

SNMP table: UCD-DISKIO-MIB::diskIOTable

diskIOIndex diskIODevice diskIONRead diskIONWritten diskIOReads diskIOWrites diskIOLA1 diskIOLA5 diskIOLA15 diskIONReadX diskIONWrittenX

      25          sda   845276160     2882477056      576632     42597061         ?         ?          ?   5140243456    883350772736

ここの定義によるとhttp://www.net-snmp.org/docs/mibs/ucdDiskIOMIB.html:

ディスクIOLAxx分単位の平均ディスク負荷(%)を示します。

表の他の値は次のとおりです。

  • diskIONRead - 起動後にこのデバイスから読み込まれたバイト数。
  • diskIONWritten - 起動後にこのデバイスに書き込んだバイト数。
  • diskIOReads - 起動後にこのデバイスからの読み取りアクセス数。
  • diskIOWrites - 起動後にこのデバイスへの書き込みアクセス数

では、この負荷はサーバーに収集されませんが、どのように手動で計算できますか?

最後に、ディスクIOが使用中であることを確認できるようにユーザーグラフを表示しようとしています。読み取り/書き込みバイト/秒または読み取り/書き込み要求/秒を使用して表示できます。

1秒あたりの読み取り/書き込み要求を個別に表示すると、多くのI / Oが発生していることがわかります。ただし、ディスクの読み取り/書き込み速度がこれによって影響を受けるかどうかはわかりません。

単にR / W速度を表示するだけでは、速度が影響を受ける理由はわかりません。 I/O 操作が多すぎるからか、非同期書き込みのためのバッファメモリが不足しているからかも知れません。したがって、私たちは両方をマークする必要があります。

しかし、ディスクILOadの他の値は何を意味し、どのように計算し、snmpから収集されないのですか?この機能を有効にすると負荷がかかりますか?この値を収集すると、大きな負荷が発生した場合に手動で計算できます。しかし、公式は何ですか?

ベストアンサー1

提供された情報はディスク使用率を計算するのに十分ではありません。ディスク使用率(%)は次のように計算されますdisk_time_spent_in_io / elapsed_time
たとえば、ディスクがIOの実行に1秒間0.25秒を費やす場合、ディスク使用率は25%です。

稼働率の点では、作業回数は意味がありません。ディスクと実行しているIOの種類(バッチとランダム)に応じて、10 IOPSまたは10,000 IOPSで100%の使用率を得ることができます。知っている唯一の方法は、ディスクがこれらのIOPを実行するのにかかる時間を調べることです。

おすすめ記事