仕事の終わりに「非アクティブ」なメモリがたくさんあるとはどういう意味ですか?


21

Mac OS X 10.6.5を実行しているMacBook Proで1日作業した後、アクティビティモニターは、コンピューターの8 GBのメモリの大部分が「非アクティブ」であり、円グラフのごく一部のみが「無料」であることを示します。これは、Finderのみが実行されている状態で、すべてのアプリケーションを閉じた場合でも同様です。

どういう意味ですか?「非アクティブ」メモリは何かに占有されていますか?または、実際にアプリケーションで使用できるのですか?ありがとう。


回答:


27

OS Xは、ほとんどの最新のオペレーティングシステムと同様に、仮想メモリシステムを使用してメモリを管理します。これにより、オペレーティングシステムはコンピューターを無制限のメモリプールとして扱うことができます。これを実現するために、OSはRAMの未使用部分をswapfileとして知られるディスクストアにページングします。

もちろん、RAMは無制限ではないため、OS XはRAMを有線、アクティブ、非アクティブ、空きの4つのカテゴリにグループ化します。ワイヤードメモリはオペレーティングシステムに必要であり、メモリからページアウトすることはできません。アクティブメモリは、現在実行中のプログラムが使用するメモリです。非アクティブなメモリは、現在終了している(または長期間使用されていない)プログラムによって最近使用されました。空きメモリは、その名が示すとおり、使用されていないRAMです。

プログラムを起動すると、アクティブなメモリにロードされます。ただし、プログラムを終了しても、RAMからは削除されません。むしろ、非アクティブなメモリに衝突します。これが、プログラムを再起動する方が速い場合が多い理由です-まだRAMにあります(Firefoxのような大きなプログラムでこれを試してください)。

すべてのメモリが使用されると(空きメモリは0)、OSは非アクティブなメモリをスワップファイルに書き込み、アクティブなメモリにより多くのスペースを確保します。

プログラムがスワップファイルにページアウトされ、それを再起動すると、スワップファイルからアクティブなメモリにプルされます。

つまり、空きメモリが少なくても気にする必要はありません。実際には、あなたはそれを低くしたいです-空きメモリは無駄なメモリです(OSは何のためにもそれを使用していないので)。

コンピューターが使用しているメモリの量を調べるとき、実際には、主にSwap usedに注目します。これは、仮想メモリスワップファイルのサイズを示し、Page insは、OSがスワップファイルからメモリをプルする頻度を示します。アクティブなメモリに。


2
ページインにはスワップファイルからのロードだけでなくプログラムのロードも含まれるため、ページアウトはページインよりもスワップ使用のより良い指標であると思います。
ゴードンデイヴィソン

1
アクティビティモニターで、VMサイズが160 GBを超えています!私のコンピューターには、実際にはそんなに大きなスワップファイルがありますか?!
hpy

1
@penyuan:いいえ。それは理論的にはスワップファイルの大きさですが、スワップファイルの実際のサイズには、アクティビティモニターで使用されるスワップというラベルが付いています。
ミパディ

1
非アクティブなメモリは、部分的にはあなたが言うように、具体的にはアプリケーションによって再アクセスされる可能性のあるファイルシステムまたはライブラリのキャッシュですが、特定の期間に割り当てられたがアクセスされていない現在実行中のアプリケーションからのメモリのブロックでもあります正確な時間の長さ)。空きメモリの量が少なくなりすぎると、カーネルはそれらを非アクティブとしてマークし、ディスクへのページングの優先順位を付けます。
drfrogsplat

2
@deceze:非アクティブなメモリはページアウトされます。アクティブなメモリは、不要になると非アクティブになります。非アクティブなメモリのスペースがないほどメモリが少ない場合、アクティブなメモリは直接ディスクにページングされると思いますが、それは特別な状況です。確かに、swapfileは理論的には無限に成長します(ディスクスペースがなくなるまで)が、それも非常にまれにしか発生しません。
mipadi

9

これは問題ではない可能性が高く、実際にコンピューターの速度を上げる可能性があります。

すべての(ほとんどの?)オペレーティングシステムは、最近アクセスしたファイルをメモリに保存するディスクキャッシュを使用して、それらのファイルへの繰り返しアクセスを高速化できるようにします。OS Xのディスクキャッシュのサイズは可変であり、使用中の「非アクティブメモリ」として表示されます。

プログラムがさらにメモリを必要とする場合、OS Xはディスクキャッシュ(最も使用頻度の低いファイル)の一部をクリアして、プログラムの実行/拡張のためのスペースを確保します。

大量のコンパイルまたは写真の並べ替え(つまり、数千のファイルへの連続アクセス)を行うと、ディスクキャッシュが拡張され、非アクティブなメモリを大量に使用することになります。このディスクキャッシュがあれば、心配する必要はありません。

メモリ使用量が増加している(ただし、ページが非アクティブとしてマークされている)バックグラウンドプロセスまたはアプリケーションである場合は、アクティビティモニタで "Real Memory"の使用率が非常に高いプログラムを確認することで確認できます。そこに明らかに大きなものがない場合(つまり、合計が8GBに満たない場合)、ファイルキャッシュになります。

スワップの使用はほとんどありません。また、メモリを集中的に使用するプログラムを開くと、ディスクにスワップすることなく非アクティブなメモリの量が減少します。

(10.4または10.5にしばらくバグがあったため、このメモリが常に非常に効果的に解放されず、大きなディスクキャッシュがあるにもかかわらずスワッピングが発生すると考えられますが、私の経験では10.6で解決されたようです)。


非アクティブなメモリは実際にはRAMであり、ディスクにページアウトされたメモリではありません。
mipadi

3

「非アクティブ」メモリは、他のプログラムで使用できます。それは、再び必要になった場合に備えて、最近使用したプログラムまたはデータをキャッシュするだけです。異なるプログラムを起動したり、異なるデータが必要な場合、キャッシュされたメモリはクリアされ、必要に応じて新しいワークロードで使用できるようになります。

いずれにせよ、それが理論であり、私はそれが健全であると信じています。しかし、私は見つけました非アクティブなメモリが十分に迅速に解放されるとは思わなかったため、誰かが書いた「パージ」ユーティリティへのこの参照をました。

この件に関する公式文書については、これをお読みください(および「非アクティブ」を検索してください)。


記録のために、私のMBPは現在、無料の58 MB、有線の239 MB、アクティブな1.84 GB、非アクティブな900 MBであり、システムは非常に良好に動作しています。
マイケルH.

1
私はパージコマンドが神の送信ツールだと思います。Photoshop + Firefox + Illustrator + Netbean + SmartGitを使用すると、4Gb iMacを簡単にクロールできます。もちろん、Firefoxは主犯ですが、少しアップスピードのものにしたい場合は、再度、新規としてFirefoxと問題「パージ&」グッドを終了
アントニー

2
Purgeのマニュアルページには、パフォーマンス分析のためにディスクキャッシュのみ(匿名メモリ:スタック、ヒープ、コピーオンライトではない)をフラッシュするために書き込まれたことが実際に記載されています(ディスクキャッシュがシステムを高速化するため)。カーネルが必要に応じてメモリを動的に再利用するよりも実行が遅いため、リリースが速くなるようには書かれていません。アプリを閉じると、割り当てられたすべてのmemが完全に削除されます。その後パージすると、アプリケーションのロードが遅くなります。linuxatemyram.com/ play.htmlを参照してください。強制的にゴミを空にするのと同じように、パージについて心理的なものがあると思います。
ヤノ

1

OS X 10.5以降では、MAC OS Xに明らかなメモリ管理の問題があります。

やっと問題のあるシナリオを再現できたので、テストを実行して画面をビデオに記録しました。

MAC OS X Lionのパフォーマンスの問題-壊れたメモリ管理

Pictures /フォルダにある大量の画像ファイルに対して、基本的なUNIXのことであるtar + bzipコマンドを実行します。開始する直前に、「パージ」コマンドを実行して、非アクティブ/キャッシュされたプログラムデータを削除します。

ビデオで、空きメモリが非常に急速に減少し始め、非アクティブが常に増加していることがわかります。「bsdtar」コマンドを見ると、RAMの断片だけが必要なので、問題はこのプロセスにはありません。プログラムのメモリリークであると言うことはできません。なぜなら、問題は非アクティブなRAMではなく、アクティブ/有線にあるからです。

無料のメモリが100 MBを下回ると、Safari、iPhoto、MS Wordなどのいくつかのアプリを起動しました。動画を見ると、アプリを起動するのに数分かかることがあります。ロードに3〜5秒かかります。

Linux Centos 6ボックスで同じシナリオと同じコマンドを実行しますが、問題ありません!メモリ使用量は10〜20 MB程度で、キャッシュ/バッファに問題はありません。

Mac OS Xではメモリ管理が非常に壊れている必要があります!


1
あなたが説明するもののいくつかは、別の質問の基礎を形成するかもしれませんが、それはこの質問に対する答えではありません。
グラハムペリン

2
空きメモリが設定値まで急速に減少し、システムが非アクティブおよびワイヤードRAMの残りすべてを非アクティブとして蓄積するという説明は、システムが設計どおりに動作していることを示しています。メモリ管理がOSとOSで異なるからといって、どちらかで壊れているわけではありません。最適化の選択には常にマイナス面があります。
bmike

0

この議論は、「空きメモリが少なくなるとコンピュータが高速に実行される」という文が正しい場合にのみ意味があります。デスクトップMacが奇妙に配線されていない限り、空きメモリ(監視対象)が少なくなり始めると、その時点で実行しているプログラムはすべて、それ自体で戻るまで何もできない点まで動き始めます。私の空きメモリの介入によって。私はiMac 2118(2006以降)を3 GBのRAMで使用できるようにしているので、できればそれを管理しようとしますが、これは非常にイライラします。何かご意見は?

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