HP-UX General
1819939 メンバー
3605 オンライン
109607 解決策
新規ポスト

topコマンドのMemory値の分析について

 
??_12
新しいメンバー

topコマンドのMemory値の分析について

topコマンドを用いてメモリ量の監視を行っているのですが、realとvirtualの値は一定であるにもかかわらず、freeの値は1時間に200M程度のペースで減少します。プロセス毎のSIZEやRES値を比較しても、数Kの増加があるプロセスはあっても、100Mの単位の変化があるプロセスは見当たりません。

このfree値の減少について、どういった原因が考えられるのでしょうか?

メモリリークの可能性があるようでしたら、リーク箇所(プロセス)の検出方法についても、併せてご教授いただけると幸いです。

以上、よろしくお願いいたします。
7件の返信7
テレコム担当者
尊敬されているコントリビューター

topコマンドのMemory値の分析について

非常に奇妙な現象ですね。

top だけでなく、vmstat とかsar で見るとどうでしょう?

(glance があればベストです)

# vmstat 1 3600
uhyo
貴重なコントリビューター

topコマンドのMemory値の分析について

バッファキャッシュの量ってかわってますか?

freeって実メモリのあきなので、プロセス以外が

メモリを利用する(バッファキャッシュ)場合、

プロセスの領域はかわらずにfreeはへると

思います。

??_12
新しいメンバー

topコマンドのMemory値の分析について

テレコム担当者様、uhyo様、さっそくのご返信ありがとうございます。

vmstatとsarのデータも取ってみたいと思います。

やはりメモリのチェックを行うためには、glanceが必要なのでしょうか。。。glanceの活用についても検討したいと思います。

uhyo様のバッファキャッシュの量についてもう少し教えていただきたいのですが、この値が変化しているかどうかをどのようにして調べれば良いのでしょう?

sysdefコマンドのbufpagesの値を定期的に監視することで得られるものなのでしょうか?

hazelwood
信頼あるコントリビューター

topコマンドのMemory値の分析について

> sysdefコマンドのbufpagesの値を定期的に監視する

> ことで得られるものなのでしょうか?

いけそうです。

実機で確認したところ、Glanceのレポートしている値とほぼ同じ値になっています。
oops
貴重なコントリビューター

topコマンドのMemory値の分析について

Uhyo さんがかかれている通り、real や virtual はプロセスベースの使用率ですが、free は物理メモリ全体の空きにになります。実メモリは、

System(Kernelベース) + User(processベース) + Buffer Cache + free

の合計ですから、Buffer Cache や Kernel の使用メモリが増加すると、free が減ってみえることはあると思います。

200MB/h もがんがん減っていくのであれば、カーネルのメモリリークの可能性もあるのでは?

glance は上記の分類をはっきりさせてくれるので、何が増えたか一目瞭然ですよ。仮想と物理も分けて見れるし、かなり細かいところまで確認できます。

??_12
新しいメンバー

topコマンドのMemory値の分析について

hazelwood様

実機で確認まで行っていただき、どうもありがとうございます。

次回性能測定を行う時は、sysdefのbufpagesも測定して、結果を見てみます。
??_12
新しいメンバー

topコマンドのMemory値の分析について

oops様

実メモリの計算式、ありがとうございます。

まずは、Buffer Cacheの測定が必要ですね。

そこで使用メモリの変化が見られなければ、カーネルも疑ってみる必要があるということですね。

媒体にはお試し用のglanceが含まれていると聞いたことがありますので、一度そのglanceを使って測定してみたいと思います。

いろいろとご助言いただき、どうもありがとうございました。