system management
1748010 メンバー
4836 オンライン
108757 解決策
新規ポスト

メモリが余っているのにスワップアウトされる

 
Naoyuki
アドバイザー

メモリが余っているのにスワップアウトされる

rp7410をHP-UX 11.11で使用しています。

メモリは4GB、4CPUです。

最近メモリが余っているのに、大量のプロセスがスワップアウトされていることに気付きました。

以下にほんの一部ですが、sarとtopの結果を載せます。

00:00:00 runq-sz %runocc swpq-sz %swpocc

01:13:00 1.2 14 8.2 32

01:14:00 1.0 3 37.7 100

01:15:00 1.7 15 21.5 87

System: PMUX001 Tue Feb 3 01:13:03 2004

Load averages: 0.62, 0.61, 0.45

195 processes: 162 sleeping, 32 running, 1 zombie

Cpu states:

CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS

0 0.56 4.0% 12.3% 8.0% 75.6% 0.0% 0.0% 0.0% 0.0%

1 0.72 4.9% 16.0% 7.5% 71.6% 0.0% 0.0% 0.0% 0.0%

2 0.75 4.8% 25.0% 9.8% 60.3% 0.0% 0.0% 0.0% 0.0%

3 0.43 4.4% 7.1% 8.5% 80.0% 0.0% 0.0% 0.0% 0.0%

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

avg 0.62 4.5% 15.1% 8.5% 71.9% 0.0% 0.0% 0.0% 0.0%

Memory: 897540K (607604K) real, 3632592K (1971752K) virtual, 107460K free Page# 1/1

System: PMUX001 Tue Feb 3 01:14:03 2004

Load averages: 0.50, 0.59, 0.45

190 processes: 137 sleeping, 53 running

Cpu states:

CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS

0 0.49 5.9% 0.0% 4.1% 90.0% 0.0% 0.0% 0.0% 0.0%

1 0.94 4.9% 0.0% 4.3% 90.7% 0.0% 0.0% 0.0% 0.0%

2 0.35 3.0% 0.0% 3.3% 93.7% 0.0% 0.0% 0.0% 0.0%

3 0.23 5.0% 1.8% 5.5% 87.7% 0.0% 0.0% 0.0% 0.0%

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

avg 0.50 4.7% 0.4% 4.3% 90.5% 0.0% 0.0% 0.0% 0.0%

Memory: 1272832K (858452K) real, 4525144K (2573940K) virtual, 107812K free Page# 1/1

System: PMUX001 Tue Feb 3 01:15:03 2004

Load averages: 0.76, 0.62, 0.47

260 processes: 246 sleeping, 14 running

Cpu states:

CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS

0 0.54 3.1% 2.3% 9.6% 85.0% 0.0% 0.0% 0.0% 0.0%

1 1.46 3.0% 2.4% 9.6% 85.0% 0.0% 0.0% 0.0% 0.0%

2 0.44 3.7% 2.3% 8.6% 85.4% 0.0% 0.0% 0.0% 0.0%

3 0.61 3.5% 4.2% 8.9% 83.4% 0.0% 0.0% 0.0% 0.0%

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

avg 0.76 3.3% 2.8% 9.2% 84.7% 0.0% 0.0% 0.0% 0.0%

Memory: 1024692K (754032K) real, 3545096K (2020988K) virtual, 26088K free Page# 1/1

実メモリを1GB程度しか使用していないのに、どうしてswpoccが100になってしまうのか理解できません。

(つまりスワップアウトされて実行できない?)

何か根本的に理解が違うのでしょうか?

どなたかこの現象を説明できますでしょうか?

4件の返信4
oops
貴重なコントリビューター

メモリが余っているのにスワップアウトされる

top の 3回目の結果をみると、freemem が 25MB くらいしかないようですが… 1回目、2回目では 100MB くらいありましたけど。top の実メモリは、どの程度まで含んでるんでしょうかね。プロセスだけでの使用量しかでていないなら、1GB しか使ってないという考えが間違っているかもしれません。

メモリに関する統計は、sar よりも vmstat の方がわかりやすいと思います。そもそも swap out という概念は現 UNIX カーネルでは存在しませんし。

sar の swap に関する項目はあまり信用せず、vmstat の情報をご覧になられてはいかがでしょうか?

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

メモリが余っているのにスワップアウトされる

Memory: 1272832K (858452K) real, 4525144K (2573940K) virtual, 107812K

top のこの行だけでは、1.27GB しか使ってないとは判断できないのです。動作しているプロセスの共有メモリーの情報などは含まれてませんし。

4GB 実メモリーで空きが25MB程度しかなければ、pageout は起こるでしょうね。

メモリーリーク(カーネル、ユーザープロセス)ということもあるでしょう。

ps -efl などで極端にszの値が多いものとかありませんかね。

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

メモリが余っているのにスワップアウトされる

HP-UX 11.11 ですと、カーネルのパッチ、

PHKL_28695 s700_800 11.11 Cumulative VM, Psets,

Preemption, PRM, MRG

が関係していそうな。この中で、

After periods of memory pressure, large processes that have been deactivated take a long time to be reactivated, even after memory pressure is alleviated.

(メモリ使用量が高い時間が過ぎた後、その間にdeactivateされた大きなプロセスが、メモリ使用量

が解消された後も、reactivateに時間がかかる。)

ここで言う deactivateは、実質的には swapoutに近く、メモリ使用量が多い時に、メモリをたくさん使っているプロセスを強制的にスケジューリングから外すことで、使われていたメモリが vhandデーモンによってpage outされ、free memoryを作る動作です。

  このパッチの記述からすると、free memoryが回復した後、deactivateされたプロセスがreactivate (再度スケジューリングの対象にする)まで時間がかかる、というのを修正しているようです。
Naoyuki
アドバイザー

メモリが余っているのにスワップアウトされる

topで出力される結果には共有メモリの値が入っていなかったのですね。ついうっかりしてました。

共有メモリを確認したところ、2.5GB程度使用していたので、4GB使い切るのも分かりますね。

PHKL_28695 のパッチも何か関係がありそうな気がします。