system management
1752805 メンバー
5706 オンライン
108789 解決策
新規ポスト

アクセスの多いファイルの特定方法

 
S_Kaw
時折のアドバイザー

アクセスの多いファイルの特定方法

ディスクの性能監視を行う際に、

・アクセスの多いデバイス(sar -d の%busy)

・アクセスの多いプロセス(Glance のPROC_DISK_PHYS_IO_RATE等)

は測定できるのですが、

・アクセスの多いファイル

を測定する方法がわかりません。

申し訳ありませんがご教示の程お願い致します。
4件の返信4
nadachi
レギュラーアドバイザー

アクセスの多いファイルの特定方法

少々まどろっこしい方法ですが。

 アクセスの多いデバイスが分かっているのですから、まず、"fuser"コマンド(+ブロックスペシャルファイル指定)で、そのファイルシステムのファイルを使っているプロセスIDのリストが得られます。

 次に、glanceを使って、それぞれのプロセスの

"Open Files" を表示します。このリストの中で、

"Offset"値が頻繁に更新されるものが、このプロセスでもっとも多くアクセスされるファイルと推定できます。

 glanceは、"Open Files"の画面では、デバイスファイルと、inode 番号を表示していますので、ファイル名が必要であれば、

$ find -inum

で表示できます。

 これをfuserで表示されたプロセスごとに行って、

共通集合を求めれば、忙しいファイルが見つかると

思うのですが。

S_Kaw
時折のアドバイザー

アクセスの多いファイルの特定方法

nadachi様、ご回答ありがとうございます。

「Offsetが頻繁に更新される=そのファイルは頻繁にRead/Writeしている」

という考えですね。

(sar -d のように、アクセス時間やバイト数などが分かると一番いいのですが、

 そういったものはないですよね・・。

 以下(GlancePlusのメトリック(英語版))からも探すことができませんでした。

 http://ovweb.external.hp.com/ovnsmdps/pdf/ar1204_gp-metrics11_c0385.pdf

夜間のディスクアクセスも監視したいため、

アドバイザ機能などを使用して計測処理を自動化したいと考えています。

もしご存知でしたら、Glanceの"Open Files"画面で表示される項目が

どのメトリックに対応するのかご教示ください。

・プロセスID PROC_PROC_ID

・"Offset"値 PROC_FILE_OFFSET

・デバイスファイル ?

・inode 番号 ?

nadachi
レギュラーアドバイザー

アクセスの多いファイルの特定方法

> もしご存知でしたら、Glanceの"Open Files"画面

> で表示される項目がどのメトリックに対応する

> のかご教示ください。

glanceの"Open Files画面"でhelpを起動し、"Current Screen Metrics"を選び、さらに、

"File Name"を選ぶと、

File Name

* PROC_FILE_NAME

とあります。

 Open Countは

* PROC_FILE_COUNT

 Offsetは

* PROC_FILE_OFFSET

と分かります。
S_Kaw
時折のアドバイザー

アクセスの多いファイルの特定方法

nadachi様、ご回答ありがとうございます。

helpで画面表示とメトリックの対応を確認できたんですね。失礼しました。

Glanceの画面表示およびマニュアルを参照し、

"File Name"(PROC_FILE_NAME)欄には

ファイルパス名(40文字まで)、

不明の場合は<ファイルタイプ,ファイルシステム,マウントポイント

,デバイス名(lvol),inode:inode番号>を表示することが分かりました。

(表示例)

/home/hoge/file1



また、簡単なアドバイザ構文を作成し、ファイル名やOffsetを表示できました。

本当にありがとうございました。

----- glance_proc_disk.adv ----------------------

print GBL_STATDATE, " ",GBL_STATTIME

process loop

{

if (PROC_DISK_PHYS_IO_RATE > 0) then

{

proc_file loop

{

if (PROC_FILE_TYPE == "reg") then

{

print PROC_PROC_ID|6,

" ",

PROC_PROC_NAME|16,

" ",

PROC_FILE_NAME|40,

" ",

PROC_FILE_OFFSET|12

}

}

}

}

----------------------------------------------------

<コマンド>

glance -j 5 -adviser_only -iterations 10 -syntax ./glance_proc_disk.adv