取締役 平社員 ブログ (ベータ版)

パソコン ( PC ) を安全に使えるような何かごとを徒然と書いてみたいと思います。  

 -無責管理

   当ページ記事により不具合、問題が発生した場合でも責任をもちません。


   情報セキュリティ系勉強会ポータルサイト  

  セキュリティ・キャンプ  (セキュリティ・キャンプ実施協議会)   Firefox ブラウザ無料ダウンロード 



仮想メモリ溢れな日


本棚二架




パソコントラブル出張修理・サポート日記 http://orbit.cocolog-nifty.com/supportdiary/2007/09/post_804e.html
> 2007年9月24日 (月)
> メモリを増設したのに速くならない。

(魚拓)



ストレージエグゾーション ストレージエクゾーション (virtual storage exhaustion)という現象のようです。


通常、


仮想メモリ容量最大値 = 実メモリ容量 + スワップファイル容量(ページングファイル容量)


ですが、Windows の場合、unix 系とは異なり、スワップファイルの容量を指定するのではなく、仮想メモリ全体の容量を指定する仕組みのため、このような不具合が起きてきます。


この例では、実メモリ 768MB を積んでいるにもかかわらず、仮想メモリ 382MB となっているため、実メモリの半分は使われておらず、それ故スワッピング(ページング)も発生していないと思われます。


但し、プログラムとデータの 実I/O は必ず発生しているはずです。


一度にメモリへ読み込みきれないわけですから。そのせいで遅くなります。


仮想メモリのサイズを「システム管理」サイズに設定すると、結果として仮想メモリ最低容量は、おそらく 1.1 GB ( 実メモリ 768MB + スワップ 384MB ) 程度になるのではないかと想像します。


「カスタム」サイズに設定するなら、最低 1.1GB 、最大 2.3GB 程度にすると良いのではないかと思います。


実メモリ 1GB なら、最低 1.5GB 、最大 3GB 程度でしょうか。


この例で、敢えてカスタム設定にしていた理由は、ページングファイルフラグメンテーション(断片化)によるパフォーマンス低下を防ぎたい、ということだと思います。= デフラグも楽になります。



(おまけ)

real storage exhaustion と云う現象もあります。


FIFOなスワッピング/ページング管理をしているシステムにおいてシーケンシャルアクセスなデータ処理を行う場合、データ量が実メモリ容量をたった1ページ超えただけでも、必ずスワップアウトとスワップインが一組で発生してしまい、仮想メモリのスワッピング/ページング処理による I/O 負荷で遅くなってしまうと云う現象です。

※ ランダムアクセスなデータ処理の場合は、「イン・メモリなデータに当たらない」確率が「実メモリ容量を超えた分の1ページ内にあるデータに当たる」確率に等しいと考えられるので、全体としてスワップの発生する確率はシーケンシャル処理に比べて大変低くなります。


通常、スワッピング/ページングが発生しないことは(スワップI/Oが発生しないので I/O 負荷が低く)良いことだ、と考えられてますが、それは仮想メモリが充分な場合であって、仮想メモリが足りないが故に、プログラムとデータの実 I/O (非スワップな通常の I/O) が発生していればそれは当然遅いでしょう、ということですね。



いじょうです。

    • -