4.2. ディスク
以下のセクションでは、ディスクおよび I/O アクティビティーを監視するスクリプトを説明します。
4.2.1. ディスク読み取り/書き込みトラフィックの要約 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、どのプロセスが最も重いディスクの読み取り/書き込みをシステムに実行しているかを特定する方法を説明します。
disktop.stp
disktop.stp は、ディスクに重い読み取りまたは書き込みを行なっているプロセス上位 10 位を出力します。例4.5「disktop.stp のサンプル出力」 はこのスクリプトのサンプル出力となり、記載されているプロセスについて以下のデータが含まれます。
UID
— ユーザー ID。ユーザー ID が0
の場合は、root ユーザーを参照します。PID
— プロセスの ID。PPID
— プロセスの 親プロセスのプロセス ID。CMD
— プロセスの名前。DEVICE
— プロセスが読み取りまたは書き込みを行なっているストレージデバイス。T
— プロセスが実行したアクションのタイプ。W
は書き込みを、R
は読み取りを指します。BYTES
— ディスクから読み取った、またはディスクに書き込んだデータ量。
disktop.stp の出力の日時は関数
ctime()
と関数 gettimeofday_s()
によって返されます。ctime()
は、Unix 時間 (1970 年 1 月 1 日) 以降の秒単位経過をカレンダー時刻で引き出します。gettimeofday_s()
は、Unix 時間以降の 実際の 秒数をカウントします。これは、出力についてかなり正確でヒューマンリーダブルなタイムスタンプを提供します。
このスクリプトでは、
$return
は各プロセスが仮想ファイルシステムから読み取ったまたは書き込んだ実際のバイト数を保存するローカル変数です。$return
は return プローブ (vfs.read.return
や vfs.read.return
など) での使用のみが可能です。
例4.5 disktop.stp のサンプル出力