最も基本的な答えは?いいえ。OSはユーザーのメモリ管理を処理します。プロセスは要求に応じて必要なだけのメモリを提供し、システムの実行方法を変更できるという点では全体を提供しません。LinuxサーバーがMacサーバーよりも優れている理由について、メモリ使用率が方程式の一部であるかどうかを把握しようとしても、あまり役に立ちません。
そのため、仮想メモリシステムにおける「hackability」の不足のあなたの最良のオプションは、それは本当にあなたがパフォーマンスの問題を抱えている理由であるかどうかを確認するために、仮想メモリの性能を評価するためにある-最も基本的なを使用することですvm_stat
または使用、それに従ってくださいを使用vm_stat [number of seconds]
して、ページアウトが何回発生しているかを確認します。RAMからハードドライブに未使用のページを移動すると、ハードドライブからRAMにページを取得するよりもはるかに低コストです。OS X用語のページは4kbのデータを指します。
また、32ビットプロセス(Illustratorなど)は4GBを超えるアクセスができないため、6GBがインストールされている場合、理論的には2GBの空き領域を確保し、プロセスがメモリ不足になる可能性があります。
デスクトップとサーバーの両方で、vm_stat 2
特にIllustratorに切り替えるときに数秒の遅延が発生する場合は、最後の列を実行して確認します。
スワップの実際の大きさを確認するには、アクティビティモニターでスワップサイズを確認するか、実行しdu -shc /var/vm/swap* | tail -n 1
ます。
を使用して du -sh /var/vm
は注意点が1つあります。休止状態モード(過去4年以上)を搭載したラップトップでは、sleepimage
インストールしたメモリのサイズとほぼ同じサイズになる場合があります。
Mac OS Xメモリ用語:
有線:これはカーネルコードなどを指します。RAMから移動してはならないメモリ。常駐メモリとも呼ばれます。
共有:2つ以上のプロセス間で共有されるメモリ。両方のプロセスでこのメモリ量が表示されるため、実際に使用されているメモリ量について少し誤解を招く可能性があります。
リアル:これは、task_info()によって報告されるアプリケーションの「実際の」メモリ使用量です。現在のプロセスが持っている物理ページの数の大まかなカウントです。(RSIZE)
民間:これは、常駐メモリで使用される、プロセスが単独で使用しているメモリです。(RPRVT)
バーチャル:何かにマップされるプロセス内のアドレス空間の総量-それが変数または何かのための任意の大きな空間であろうと-それは実際のVMの使用に相当しません。(VSIZE)
アクティブ:現在としてラベル付けされ、RAMが使用されているメモリ。
非活性:「非アクティブなメモリは使用されなくなり、ディスクにキャッシュされました。別のアプリケーションがスペースを必要とするまでRAMに残ります。それに後で」-Mac OS Xヘルプ
Free:データなしで実際に使用可能なRAMの量。
私が知っている(そしてフォローアップ調査で見つけた)最高のドキュメントは、開発者のWebサイトにあるApple自身のメモリ管理の記事です。
その他の価値のある情報源:Darwin-devメーリングリスト:[ 1 ]、[ 2 ]、およびMacOSXHintsに関する古い記事。さらに、Mike Ashは彼のブログに素人の紹介を掲載しています。
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
dynamic_pager(実際に仮想メモリの割り当てを行うプログラム)が起動しないように実行してから再起動することで、仮想メモリシステムを無効にすることは可能です(試していません)。ただし、OSは仮想メモリを持っていると想定しているため、非常に迅速に問題が発生する可能性があります。バックアップ実行をロードするにはsudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(必要に応じてシングルユーザーモードから)