« HDL2-G2.0にnetatalk 3.0.6をインストール | トップページ | (新春企画!?)ThinkPad E440をとりあえず設定する »

2013.11.10

Mavericksのメモリ管理をActivity Monitorで観測する

OS X Mountain Lionは、メモリを盛大に使い、すぐにスワップし始める作りでした。それ以前のMac OS Xもメモリを贅沢に使う傾向があったように思います。
(自分が使用したMac OS Xは、Leopard以降ですが…)

Mavericksのメモリ管理には大きな変更が加えられました。
OS X Marvericks
Core Technologies Overview October 2013
(OSX_Mavericks_Core_Technology_Overview.pdf)には、次の記載があります。

Compressed Memory
Compressed Memory keeps your Mac fast and responsive by freeing up memory when you need it most. When your system’s memory begins to fill up, Compressed Memory automatically compresses the least recently used items in memory, compacting them to about half their original size. When these items are needed again, they can be instantly uncompressed.
Compressed Memory improves total system bandwidth and responsiveness, allowing your Mac to handle large amounts of data more efficiently. Through use of the dictionary-
based WKdm algorithm, compression and decompression are faster than reading and writing to disk. If your Mac needs to swap files on disk, compressed objects are stored
in full-size segments, which improves read/write efficiency and reduces wear and tear on SSD and flash drives. The advantages of Compressed Memory include the following:
• Shrinks memory usage. Compressed Memory reduces the size of items in memory that haven’t been used recently by more than 50 percent, freeing memory for the applications you are currently using.
• Improves power efficiency. Compressed Memory reduces the need to read and write virtual memory swap files on disk, improving the power efficiency of your Mac.
• Minimizes CPU usage. Compressed Memory is incredibly fast, compressing or decompressing a page of memory in just a few millionths of a second.
• Is multicore aware. Unlike traditional virtual memory, Compressed Memory can run in parallel on multiple CPU cores, achieving lightning-fast performance for both reclaiming unused memory and accessing seldom-used objects in memory.

また、Web上のこれらの記事が参考になります。
Compressed Memory in OS X 10.9 Mavericks aims to free RAM, extend battery life: Apple Insider
What scale or measure does Mavericks' “memory pressure” adhere to?: Ask Defferent in StackExchange
Activity Monitor in OS X Mavericks brings significant changes: CNET
WWDC 2013で登場、「Mavericks」のココが見どころ(OS X編): ASCII.jp(2ページ目)
皆様、情報提供ありがとうございます。

それでは、メモリの使用状況をActivity Monitorで見てみます。
20131110_01
使用済みメモリがほぼ物理メモリと一致するまで使用されていることが分かります。ファイルキャッシュを減らし、圧縮ファイルを増やすことで、スワップの使用を抑制しようとしているものと推測されます。

20131110_02
ターミナルでvm_statコマンドを実行して、ページング状況を確認してみます。

memory_pressureコマンドを使うことで、メモリの負荷試験をすることができます。負荷をかけてメモリプレッシャーの変化を見てみましょう。

$ memory_pressure -l warn
を実行します。警告レベルに達するまでメモリを消費します。
20131110_03
色が緑から黄色に変化しました。
メモリファイルキャッシュの使用量が減少し、圧縮メモリが増加していきます。また、仮想メモリが増加していることも分かります。まだスワップしてません。粘っています。

次に、

$ memory_pressure -l critical
を実行します。危機レベルに達するまでメモリを消費します。
20131110_04
スワップし始めました。仮想メモリがさらに増加しています。スワップ増加するときには表示が赤色に変化します。

20131110_05
memory_pressureコマンドを停止します。スワップ領域及び圧縮メモリが減少し、色も緑色に戻りました。

メモリプレッシャーが、警告レベルやその上の危機レベルになるようであれば、メモリの使用状況に比してメモリの搭載量が不足しているものと判断できそうです。
このような、見えにくいけれど、マシンのパフォーマンスを上げてくれる地道な改善は嬉しく感じます。

(2013.11.12追記)
Web上では、Mavericksにアップデートした後、メモリ消費量が増加したという意見と、減少したという意見の両方の意見がみられます。Mavericksは相変わらずメモリを盛大に消費するOSと言えます。ただし、メモリを有効活用することでスワップをなるべく抑制していると言えます。これまでMemory Magicを使っていましたが、Mavericksでは、OSにメモリ管理を任せてみることにしました。

|

« HDL2-G2.0にnetatalk 3.0.6をインストール | トップページ | (新春企画!?)ThinkPad E440をとりあえず設定する »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1024423/53891454

この記事へのトラックバック一覧です: Mavericksのメモリ管理をActivity Monitorで観測する:

« HDL2-G2.0にnetatalk 3.0.6をインストール | トップページ | (新春企画!?)ThinkPad E440をとりあえず設定する »