\r\n\r\n
Macには、使用可能な物理メモリアプリケーションが付属しています。実行中のプログラム、開いているファイル、その他Macがアクティブに作業しているデータは、この物理メモリに格納されます。しかし、Macが圧縮してディスクに一時的に保存できる「仮想メモリ」も利用できる簡易的なアプリケーションです。
最近のMacでは、仮想メモリを無効にする公式の方法はありませんが、macosx-現在macOSと名付けられたものがリリースされるまでは可能です。Macがディスクに仮想メモリを保存しないようにシステムをハックすることは可能ですが、そうするべきではありません。
Macの物理メモリは限られていますが、プログラム実行時に利用可能な仮想メモリははるかに大きな領域が公開されています。例えば、お使いのMacに8GBのRAMがあったとしても、Mac上のすべての32ビットプロセスには4GBの利用可能なアドレス空間があります。64ビットプロセス1つにつき、約18EB、つまり180億GBの容量がある。
この制限の範囲内であれば、アプリケーションは好きなだけメモリーを使用することができます。物理メモリがいっぱいになると、macOSは自動的に使用していないデータを「ページネーション」して、Macの内蔵ドライブに保存します。これは、単にデータを常にRAMに保持するよりも遅いのですが、システムが透過的に「働き続ける」ことを可能にします。Macが仮想メモリのデータをディスクに保存できない場合、続行するためにプログラムを閉じるように要求するメッセージが表示されます。
これは、Windowsのページファイルや、LinuxなどUNIX系OSのスワップ領域と本質的に同じものです。実は、macOS自体がUNIXライクなOSなんです。
最近のmacOSでは、データをディスクにページングしないようにするために、実際にはもっと手間をかけ、メモリに保存されているデータを可能な限り圧縮してからページングしています。
仮想メモリのデータは、Macの内部メモリ内の/private/var/vmディレクトリに格納されます(ディスクにページングされる場合)。データは、"swapfile "という名前で、末尾が数字になっている1つまたは複数のファイルに保存されます。
ほとんどのUNIX系OSでは、スワップファイル用に別のパーティションを使用し、ストレージの一部をスワップスペースに恒久的に割り当てています。AppleのmacOSは、これができないんです。その代わり、スワップファイルをシステムストレージドライブに保存します。アプリケーションが余分な仮想メモリを必要としない場合、これらのファイルはそれほど大きなスペースを取りません。アプリケーションがより多くの仮想メモリを必要とする場合、これらのファイルは必要に応じて大きくなり、不要になると縮小されます。
このディレクトリには、MacがハイバネートするときにRAMの内容をディスクに保存する「sleepimage」ファイルも含まれています。これにより、Macの電源がオフで電力を使用していないとき、開いているすべてのアプリケーションとファイルを含む状態を保存することができます。
このディレクトリの内容を表示し、これらのファイルが現在ディスク上でどのくらいの容量を使用しているかを確認するには、ターミナルウィンドウを開き、次のコマンドを実行します。(ターミナルウィンドウを開くには、Command+Spaceキーを押してSpotlight検索を開き、「ターミナル」と入力し、Enterキーを押します)。
ls -lh /private/var/vm以下のスクリーンショットでは、私のMacでこれらのファイルがすべて1GBのサイズであることがわかります。
macOSのオペレーティングシステムと実行中のアプリケーションは、この機能を有効にしておくことをお勧めします。実際、Appleの公式ドキュメントには、"OSXとiOSはどちらも完全に統合された仮想メモリシステムを搭載しており、これをオフにすることはできません。""常にオンになっています。"と書かれているのです。
しかし、macOSではバックアップストレージ、すなわちディスク上のスワップファイルを無効にすることは技術的に可能です。これは、システムの完全性保護を無効にしてから、MacにDynamic Pagerシステムデーモンを実行しないように指示し、スワップファイルを削除するものです。ここでは、関連するコマンドを推奨していないため、提供していません。
macOSオペレーティングシステムとその上で動作するアプリケーションは、仮想メモリシステムが正常に動作することを期待しています。物理メモリが一杯になり、Mac OSがデータをディスクにページングできない場合、次の2つのうちの1つが起こります。1つまたは複数のアプリケーションを終了して続行するように促すプロンプトが表示されるか、アプリケーションがクラッシュしてシステム全体が不安定になる可能性があります。
そう、16GB以上のRAMを搭載していても、特にビデオ、オーディオ、画像編集など、多くのデータをメモリに保存する必要のある専門的なアプリケーションを実行している場合、時々いっぱいになることがあるのです。ほっとけよ。
仮想メモリ機能を無効にして、スワップファイルファイルをディスクから削除したい理由は2つあります。
まず、ディスク容量の使い方が気になるところです。これらのファイルを削除して、空き容量を確保する必要があるかもしれません。まあ、その心配はないでしょう。これらのファイルは、ディスク上の多くのスペースを無駄にしません。Macコンピュータが多くの仮想メモリを必要としない場合、それらは小さなものになるでしょう。4GBのRAMしか搭載していないMacBookAirでは、1つのスワップファイルが1GBの容量を占めていることに気づきました。
もし、多くのスペースを取っているのであれば、それを必要とするプログラムを開いていることが原因です。要求の多いプログラムを閉じたり、再起動したりすると、スワップファイルが縮小され、スペースを使わなくなるはずです。Macのコンピュータは、必要なときにだけディスク領域を使用するため、何も失うことはありません。
仮想メモリファイルが常に非常に大きい場合は、お使いのMacにもっと多くのRAMが必要だということであり、仮想メモリ機能を無効にする必要があるということではありません。(お使いのMacの物理メモリの容量は、Appleメニュー>このMacについてをクリックし、「メモリ」の横を読むと確認できます)
もう一つの問題は、Macの内蔵ソリッド・ステート・ドライブの消耗です。SSDへの書き込みが多すぎると、SSDの寿命が短くなったり、不具合が発生したりするのではと心配される方も多いと思います。これは理論的には正しいのですが、実際にはこの懸念は通常誇張されており、ssdの寿命がはるかに短かった時代の名残りです。このような機能を有効にしても、最新のSSDは長持ちするはずです。デフォルトのシステム機能を有効にしているからといって、macOSがSSDをすぐに消耗することはなく、むしろSSDよりも先にMacの他のものが寿命を迎えるかもしれません。
つまり、心配しないで、仮想メモリを保持し、Macが設計通りに動作するようにするのです。