ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3832213 PF使用量の最大値と実際のメモリ搭載量の不一致
質問者:taque 私はデータの解析にメモリをよく食うアプリケーションをよく使っているのですが、
そのソフトウェアを4つ開き(ここでPF使用量が1GBくらい)、Illustratorで数枚ほど画を作り、
さらにPhotoshopを開こうとすると失敗してしまいます(エラーメッセージは無く単に
開かないか、たまにメモリ不足のエラー表示、さらにはボタンなどが消えたりもする)。
その時点でのPF使用量は1.2GBくらいになっているのですが、使用しているPCの搭載メモリは
3GBなのでまだ余裕がある様に見えます。

これはどういった状況になっているのでしょう。実際は3GB使用されており、タスクマネージャ
の表記が間違っているだけなのでしょうか。それとも、1.2GBまでしか使用しておらず、どうにか
すれば残りの1.8GBを使用できるものなのでしょうか。

正直、この状況はいつも起こるので非常に困っています。解析のアプリケーションかIllustratorを
終了しなければ画が作れず、作業効率が悪いのです。何とか改善出来ないかと考えています。
どなたか改善のアイデア、あるいはこれは改善出来ないという根拠を頂けないでしょうか。

なお、以下の構成のPCを使用しています。
本体 Dell Dimension 9150
メモリ PC-4200 512MB x2 (HYS64T64000HU-3.7-A), PC-4200 1GB x2 (DX533-1G)
OS Windows XP Professional

最初はメモリ自体や認識がおかしいのかと思い、EVERESTやmemtestといったソフトで
チェックを行ったのですが異常は見当たりませんでした。BIOSでも正常にDUAL INTERLEAVEDで
動作しているのが確認できます。OSの3GBスイッチはOFFでもONでも動作は変わりませんでした。

また解析のソフトの問題かとも思ったのですが、そういう訳ではないように思います。
その解析ソフトを使用していない状態でもまま起こります。(Matlab+Illustrator+…など)
他にも例えば起動直後にWindowsキー+Eを押しっ放しでExplorerを複数窓開くと、50個くらい
開いた辺りでボタンなどが消えて新たなウィンドウを開けなくなります。PF使用量は起動時の
305MBから350MBを越えた辺りで止まっており、3GBまでまだまだ余裕がある様に見えます。
困り度:
  • すぐに回答を!
質問投稿日時:
08/03/04 15:14
この質問に対する回答は締め切られました。

回答良回答10pt

ANo.3 コントロールパネルのシステムの詳細設定のパフォーマンスの仮想メモリのページングファイルサイズの設定はどうなっていますか?
カスタムサイズにしてあってそのサイズが少ないと問題があります。
explorerのヘルプのバージョン情報ではWindowsが使用できる物理メモリは何KBになっていますか。
もうひとつ、デスクトップ ヒープ不足が考えられます。
http://support.microsoft.com/kb/126962/en-us
http://support.microsoft.com/kb/126962/ja
回答者:zzzz0000
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/03/09 14:10
この回答への補足ページングファイルの設定は、システムドライブと同じハードディスクで
別パーティションのドライブにメモリと同じ値(3072-3072)を割り当ててました。
これがいけないかと思い一時無くしてみたりもしましたが影響なかった様思います。
explorerのバージョン情報では3,143,772KBになっていました。
デスクトップのヒープは、大きくしてみた事はなかったのでトライしてみます。
アドバイスありがとうございました。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.2 回答ではありませんが誤解するとまずいので #1 の間違いを指摘しておきます.
いくらなんでもそんな仕様にはなっていません>#1.
以下 32bit バージョンに限定しますが, XP は標準では
・各ユーザプロセスから見えるメモリは 4GB
・うち OS (カーネル) が 2GB を予約
・従って各ユーザプロセスが自由に使えるメモリは (残り) 2GB
のように設定します.
# 「カーネルに 1GB, ユーザプロセスに 3GB」という配分にする起動時オプションもあるけど, それでシステムが正しく動作するかどうかは不明.
つまり, 基本的にはページファイルの使用量に関係なく「2GB を越えるメモリを 1プロセスで使うことはできない」ということになります.
回答者:Tacosan
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/03/04 17:01
この回答への補足補足有難うございます。
そうです、重要な事を書き忘れていましたが使用しているXPは32bitです。
また、言及されてる3GBのスイッチは結局何も変わりませんでした。
1プロセスで使用しているメモリは500MBも無いし、メモリ不足になるのは
PF使用量が1.2GBくらいなのでやはり動作が不可解な気がします。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.1 XPで3Gのメモリを積んでも無意味です。勿体無い。

メモリは
・カーネル及びOS部分用で、最大2G
・ユーザーとアプリ用で、最大2G
が使用されます。

3G積んだ場合、デフォルトの設定では半々になる筈なので
・カーネル及びOS部分用で、最大1.5G
・ユーザーとアプリ用で、最大1.5G
が使用される筈です。

ファイルを開けば開いただけ、リソースも消費しますが、ユーザーとアプリ用のメモリも同時に消費されます。

従って、PF使用量では見えないメモリも裏でコッソリ消費しているので
>その時点でのPF使用量は1.2GBくらいになっているのですが
の時点で、ユーザーとアプリ用が「限界の1.5G」に達している筈です。

こうなったら、カーネル及びOS部分用でいくらメモリが余ってようとも「メモリが足りません」で止まるか、エラーが出る以前、ファイルを開けずに、エラー表示さえ行えずに終了するでしょう。

>他にも例えば起動直後にWindowsキー+Eを押しっ放しでExplorerを複数窓開くと、50個くらい
>開いた辺りでボタンなどが消えて新たなウィンドウを開けなくなります。

Explorerの窓を1つ開くと「ウィンドゥハンドル」「ファイルハンドル」などの複数の「リソース」を一気に消費します。

Explorerの窓に付いているボタン1個1個が「ハンドル」を持っていて、窓の内側にも外側にも、それとは別な「ハンドル」を持っています。

これら「ハンドル」はプロセスごとに管理され、1プロセスにつき1つの「ハンドルテーブル」が与えられます。

この「ハンドルテーブル」に格納出来るハンドル数は有限であり、Explorerは(複数の)全部の窓を1プロセスのみで実行している為、あっと言う間に上限に達します。

つまり、この「ハンドルテーブル」がすべて埋まると、メモリの使用量に関係なく「もうウィンドゥが開けません」な状態になります。

そう言った訳で「貴方のパソコンは、XPの仕様の通りの動作をしている」ので、ご安心を。

つまり「カーネル及びOS部分用で未使用のままのメモリは、一生、使われないまま終る」と言う事です。
回答者:chie65536
種類:回答
どんな人:一般人
自信:参考意見
回答日時:
08/03/04 15:52
この回答への補足なるほどよく解りました。ご回答ありがとうございます。しかし幾つか新たな疑問が。

>> デフォルトの設定では半々になる筈なので
この設定を変更する事は不可能なのでしょうか?
そんな半分も遊ばせる設定が変更不可能なのがWindows、ということなのでしょうか。

また、PhotoshopやIllustratorだけを立ち上げて、重い画像を延々と開いていった
場合はPF使用量の表示は2GBを越えていきます。これはPhotoshopやIllustratorが
メモリの確保に特別な処理を行っているから出来る事ということなのでしょうか。
この回答へのお礼この回答にお礼をつける(質問者のみ)