HP-UX General
1819633 メンバー
2131 オンライン
109604 解決策
新規ポスト

b2600:スワップ情報の表示について

 
K_Sa
時折のコントリビューター

b2600:スワップ情報の表示について

いつも参考にさせていただいています。

現在、b2600を使用しているのですが、hpterm を起動す

るだけでスワップ使用量(memory)が増えています(swapinfo コマンドにて)。

開発アプリのシステムは未起動状態です。

(メモリをほとんど使用していないので、とても、スワップを使用しなくてはな

らない状況とは思えないのです)

例:

hpterm を起動したら、使用量が増え、hpterm を終了させても使用量が元にもど

らない

(ただし、タイミングがあるのか、もとにもどる場合もある)

ただし、上記をtopコマンドにて表示させると、hpterm でメモリ使用量が増

え、hpterm 終了で使用量が元に戻っています。

# swapinfo -at

Kb Kb Kb PCT START/ Kb

TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME

dev 524288 18552 505736 4% 0 - 1 /dev/vg00/lvol2

reserve - 97196 -97196

memory 381096 350720 30376 92%

total 905384 466468 438916 52% - 0 -

#

増えるのは上記 memory の USED の値である「350720」です。

(もちろん、FREE は少なくなる)

■マシン環境

1)OSバージョン

> uname -a

HP-UX XXXXXX B.11.00 U 9000/785 2002020740 無制限のユーザ・ライセンス

2)CDE環境を未使用

本当にスワップの使用量が増えているのか、それとも swapinfo の表示が不正な

のかわからない状態です。

どなたか、上記原因を知ってられる人はおられませんか?

よろしくお願いします。

5件の返信5
テレコム担当者
尊敬されているコントリビューター

b2600:スワップ情報の表示について

hpterm の起動でスワップは発生せず、メモリの消費量が増えている

だけだと思います。

# swapinfo -t;vmstat

Kb Kb Kb PCT START/ Kb

TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME

dev 1572864 0 1572864 0% 0 - 1 /dev/vg00/lvol2

reserve - 588520 -588520

memory 747096 437752 309344 59%

total 2319960 1026272 1293688 44% - 0 -

procs memory page

faults cpu

r b w avm free re at pi po fr de sr in

sy cs us sy id

1 0 0 11872 28439 3 0 0 0 1 0 0 124

17140 8246 2 2 95

# hpterm&

22021

# swapinfo -t;vmstat

Kb Kb Kb PCT START/ Kb

TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME

dev 1572864 0 1572864 0% 0 - 1 /dev/vg00/lvol2

reserve - 589992 -589992

memory 747096 437756 309340 59%

total 2319960 1027748 1292212 44% - 0 -

procs memory page

faults cpu

r b w avm free re at pi po fr de sr in

sy cs us sy id

0 0 0 11565 28134 3 0 0 0 1 0 0 124

17139 8246 2 2 95

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

b2600:スワップ情報の表示について

swapinfo でのメモリーの部分は、man にもかかれているように、メモリーページングスペースの使用に関わる表示です。

メモリーをスワップとして使うこともできるために出力されますが、優先順位が最も低いため通常メモリーページングとして使われることは、あまりないと思います。

AVAIL の量は、dmesg のMemory Information でのlockable と同等になります。

もうおわかりになるかもしれませんが、malloc()した後にmlock() して、メモリー上にmalloc() した領域をロックするとその部分はメモリーページングするための領域としては使えなくなるためにswapinfo の出力のUSED が増えることになります。もちろんswap として使われているわけではありません。このようにメモリーをロックするようなオペレーションを行ってもUSED は増えます。

hpterm の起動と停止でどのくらいUSED が増減するんですか?まさか350720Kbytes 増えるわけじゃないですよね。

vmstat で、po がないかどうかやfreeの量を監視してもよいと思いますよ。

K_Sa
時折のコントリビューター

b2600:スワップ情報の表示について

返答、いろいろありがとうございます。

>メモリーをスワップとして使うこともできるために

>出力されますが、優先順位が最も低いため通常メモ

>リーページングとして使われることは、あまりない

>と思います。

私が疑問に思ったのは、なぜ、優先順位が低いメモリーがスワップとして使われているんだろう? ということだったのですが、「テレコム担当者」さんも書かれているように、memory の USED が増えているのは、スワップではないのでしょうかねえ。

お客さんのマシンにて発生している現象なのですが、このまま memory の USED の値が増え続けて大丈夫なのかと心配なのです。

また、メモリ消費量が増えているのだとしたら、どこかで、malloc() したままのタスクがあって、メモリを解放していないことになるのでしょうか?

(もし、そうであれば、かなり大問題)

>hpterm の起動と停止でどのくらいUSED が増減する

>んですか?まさか350720Kbytes 増えるわけじゃな

>いですよね。

hpterm の起動で 12Kbyte 増えて、exit しても USED の値が減らないんですよね。

(ただし、マシンを立ち上げ直しをした場合に hpterm を起動して、停止したら、 12Kbyte 増えて減る場合もあるんです。どういうタイミングでそうなるのかはわからないのですが・・・)

uhyo
貴重なコントリビューター

b2600:スワップ情報の表示について

おそらく、今回の現象のもっとも大きい要因は

バッファキャッシュが原因ではないでしょうか?

11.0標準でのバッファキャッシュは動的に変化します。OS起動時にI/Oが発生し、メモリをまだだれも使っていないので当然バッファキャッシュがメモリを

使います。(デフォルトでは最大50%)

ここでバッファキャッシュとして使われたメモリは

その時点では、swapとしては利用できないので

swapinfoのメモリの使用率があがってしまう

ということだと思います。

swapinfoのmanにもありますが

memoryのラインは必ずしもswapで使われているわけではなく、ほかの理由も含めてメモリがswapとして利用できない状態の使用率を表示します。

ほかには、一部のデーモンプロセスがplock()システムコールを内部で実施して自分をページアウト

させないようにするときも、このmemoryの部分が

ふえます。

参考になれば幸いです。
masaakio65
レギュラーアドバイザー

b2600:スワップ情報の表示について



結局問題は、メモリーが足りない状況があってなにがメモリーを使っているのかを調べたいということなのではないのですか?

まず、ps -elf とかでsz が極端に多いプロセスがないかみてみましょうよ。ipcs コマンドで共有メモリーはどうかみてみるとか。uhyo さんがいうbuffer cache であれば、sysdef コマンドの結果のbufpage に4K かければbuffer cache のサイズになります。