it-swarm-ja.com

Mac OS X:「アクティブな」メモリを何が使用していますか?

私は最近のMacBookProを8GBのRAMで使用していますが、仕事で数時間使用した後、「アクティブな」メモリの量が増え続けていることに気付きました。

Macを再起動するたびに、すべてが正常に見え、RAMをほとんど使用していません。しかし、数時間後は次のようになります。

Screenshot

ご覧のとおり、この場合は約4.3GBです。

開発者である私は、「アクティブメモリ」が実行中のプロセスによって現在使用されているメモリの量であることを知っています。したがって、私が最初にしたことは、すべてのアプリケーションを終了し、Mac OSXに属していないように見えるすべてのプロセスを強制終了することでした。

それを行った後、私のアクティブメモリは約400 MB減少しましたが、スクリーンショットに表示されているものでスタックしました。終了するプロセスやアプリケーションはもうありません。

今、私は疑問に思っていますは実際に記憶を保持していますか? topおよびActivityMonitorは、メモリ使用量の多いプロセスを報告しません。

何か案は?

ありがとう!


アップデート1:

ダグハリスの答えのおかげで、私はこのスクリーンショットを作りました。これは、システム全体で2.55 GBのアクティブなメモリ使用量を示していますが、psコマンドが計算するのは1.55GBのメモリ使用量のみです。

enter image description here

2.55 GBの残りの部分がどこにあるのか、どこに割り当てられているのかわかりません。 Instrumentsをインストールしていますが、これは数時間にわたって発生するため、Instrumentsを使用するのは困難です。これは、OSのどこかでメモリリークのように感じます。たぶんドライバーです(カーネル拡張機能はインストールされていませんが、kextstatで確認してください)。

個人的には、メモリ管理の状況を「もっと」見ることができれば面白いと思います。 Linuxでは、「/ proc」の下にいくつかの情報があります、afaik。

7
BastiBen

メモリ使用量の多い単一のプロセスはありませんが、実行中のプロセスはまだたくさんあります。

psおよびその他のコマンドラインツールを使用すると、これをさらに深く掘り下げることができます。

まず、オプションをpsに使用して、表示される内容を常駐メモリとコマンド名のみに制限します。 -m出力をメモリ使用量でソートします。-aすべてのユーザーのプロセスを表示します。-xは、端末に関連付けられていないプロセス(つまり、ほとんどのMacアプリ)を示しています。

$ ps -axm -o "rss,comm" 

これが私が見る最初の数行です:

   RSS COMM
210256 /Applications/Firefox.app/Contents/MacOS/firefox-bin
158276 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
155360 /Applications/iTunes.app/Contents/MacOS/iTunes

これらが一番​​上にあることは私にはショックではありません(そして、示されているChromeプロセスは束の1つにすぎません)。RSS列は1024バイトブロックとして表されます。したがって、iTunesは約151.7を使用しています。 MB。

その出力は十分にフォーマットされているので、そのように分析したい場合は、スプレッドシートに入れて分析することができます。コマンドラインにもう少し固執します

すべてのプロセスの合計を確認するには、さらに多くのプロセスをつなぎ合わせます。

$ ps -axm -o "rss,comm" | awk 'BEGIN { s=0;}; {s=s+$1;}; END { printf("%.2f GB\n", (s/1024.0/1024));}'

そのために私が見る出力は2.44 GB、アクティビティモニターのアクティブメモリで表示されるものとは異なりますが、psを使用してこの問題の根底に到達できるほど十分に近いです。

100MB以上を使用して、これらのプロセスだけを合計できます。

$ ps -axm -o "rss,comm" | awk 'BEGIN { c=0;s=0;}; ($1 > 100000) {c=c+1;s=s+$1;}; END { printf("%.2f GB from %d processes\n", (s/1024.0/1024),c);}'

0.98 GB from 8 processes

私はあなたに正確に言っていませんwhatはあなたのMacのメモリを使用していますが、これらのツールはあなたが発見するのに役立ちます。

4
Doug Harris

man -kDTrace。それらのツールはこれを解決するものです。幸運を

1
chiggsy

システムプロセスの1つがメモリリークを起こしているようです(または、何らかの理由で実行されているシステムプロセスの数が増えています)。これは、ツールバーのポップアップメニューを[マイプロセス]から[すべてのプロセス]に切り替えてから、[リアルメモリ]列で並べ替えることで、アクティビティモニターで直接確認できます。大量の実メモリや同じプロセス名のインスタンスを使用しているプロセスを探します。これは問題を解決しませんが、少なくともそれがどこから来ているのかをあなたに理解させるはずです。

0
Gordon Davisson

私には、アクティブメモリは再利用できるメモリが解放されただけのように見えますが、特に「空き」としてマークされていません

0
Yann Bizeul