MacOSXの非アクティブなメモリを理解する問題


8

MacOSXがメモリをどのように管理するかは理解できたと思いましたが、最近、そのパフォーマンスに困惑しました。ここに状況があります:

  1. MacOSX 10.6.7を実行する8GBの物理メモリを備えた真新しいCore i7システムを持っています。サファリ、メール、Xcode、ターミナルなど、いくつかのメモリを定期的に実行しているいくつかのアプリがあります。
  2. 3つの64ビットプロセスを並行して実行する必要があります。各プロセスは、約2000Mの実メモリを使用します。
  3. ワイヤードメモリは1000M未満のままです(つまり、プロセスに7000Mを超えて使用できます)が、ページングアクティビティが激しく、起動した3つのメモリ集約型プロセスのパフォーマンスが非常に低下しています。
  4. 報告されている非アクティブメモリは約2500Mのままで、アクティブメモリが5000Mを超えないため、使用可能なRAMが不足しているようには見えません。

MacOSXが非アクティブメモリを必要とするプロセスのために解放せず、代わりにページングに頼る理由について誰かが私に手掛かりを与えることができますか?また、システムによるメモリ管理に影響を与える適切な方法はありますか?


回答:


5

私のマシンでは、Mac OS Xが正しいものをページングするのが少し遅いことがわかりました。

特にメモリを大量に消費することをするときはいつでも、それを助けるためにいくつかのアプリケーションを終了することがよくあります。Safariは、長時間実行されている場合、巨大なメモリを消費し、終了するアプリケーションのリストのトップになります。私の場合、これは、十分な実際のRAMなしでVMWare Fusionを実行しようとしたときです。

あなたはおそらくこれを知っていますが、OS Xでのメモリ使用量と仮想メモリを説明するAppleのドキュメントへのリンクがいくつかあります。

http://support.apple.com/kb/ht1342

http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html

説明は次のとおりです。非アクティブリストには、現在物理メモリに常駐しているが最近アクセスされていないページが含まれています。これが何を意味するのかを正確に定義することは困難ですが、ファイルシステムキャッシュと実際の非アクティブメモリが含まれているようです。

非アクティブなメモリはおそらく、ユーザーがいつでも実行中のアプリケーションに切り替えることを選択できる対話型のGUI駆動OSで処理するのは難しいことであり、このような状況で応答性を提供することは重要です。あなたのような状況では、OSは何をすべきかがよくわかりません。

削除コマンドを使用して、非アクティブなメモリ(の一部)を削除することができます。これは、CHUDツールをインストールしてインストールする必要がある場合がありますが、すでにインストールされている場合があります。私はパージコマンドを使用したことがないので、YMMV ...

私は少し戸惑いましたが、あなたの質問に答えたかもしれないし、していないかもしれません。これらすべてを書き終えた後、私はこのサイトで同じ情報の多くが役立つかもしれない別の質問を見つけました。


ありがとう!purgeコマンドは、私が探していたまさにです。AppleのKBでサポート記事を見つけましたが、それらは特に役に立ちませんでした。
Ventzi Zhechev

1

MacOS 非アクティブなメモリを解放しますが、それが本当に必要な場合のみです。その「非アクティブメモリ」は、実際にはカーネルがページアウトの候補であると考えているメモリである可能性があります。すぐに再び使用される可能性は低くなります)。このような場合、非アクティブなメモリを「パージ」すると、実際にパフォーマンスが低下します(頻繁に使用されるページは、プログラムが実行を続行する前にディスクから読み戻す必要があるため)。

purge開発者がアプリケーションの起動条件をシミュレートするのに役立ちます。たとえば、アプリケーションが起動または長い休止の後で初めて実行されるまでにかかる時間を確認するためです。一般的なユーザーにとって、purgeはあまり役に立ちません(実際には一時的にパフォーマンスが低下します)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.