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