メモリ大容量時代の今、Mac OS Xでスワップを止めるという選択

海上忍
2011-08-23 12:34:00
  • このエントリーをはてなブックマークに追加
最新特集【一覧】

 近年のPCは、拡張性に拘らないように見える。Mac Proを除いたMacintoshシリーズはその傾向が顕著なようで、製品内部へのアクセスすら拒むかのようだ。

 たとえばMacBook ProとMacBookAirのバッテリ交換は店頭対応のみ、iMacのHDDも一般ユーザーのレベルでは換装できないほど。MacBook Airに至っては、BTOで注文しないかぎりメモリの増設は不可能だ。

 だから購入時点でメモリをMAXまで盛るユーザーが増えることは理解できるものの、一方ではそこまで必要か、と感じることもある。確かに、64ビットモードのカーネルが動作するLionでは、現行機種で最低ラインの2GBというメモリ容量は心許ないが、4GBあれば多くのユーザーは足りるはず。仮想化ソフトを常時起動などというヘビーな環境でもないかぎり、そう頻繁には物理メモリ容量不足、その結果としてのページング(スワップ)は発生しないだろう。

 しかし、全モデルSSD化されたMacBook Airでは、ドライブへの書き込みは可能なかぎり避けたいところ。SSDには書き込み回数の上限があるため、上書き/消去を伴うスワップは発生させないほうがいいはずだからだ。アクセス速度に優れるSSDの場合、スワップ頻発による速度低下は気にならないとしても、SSDの寿命が縮まるとしたら見過ごせない。

 そこで検討したいのが、スワップファイル作成を禁止するという荒ワザ。ブラウザなどメモリを大量に消費する(かつ終了させないかぎり使用済のメモリ空間を開放してくれない)アプリケーションを長時間使用するなど、物理メモリが不足する場面では、システムフリーズなどの問題が発生する可能性があるものの、SSD搭載機で軽めの作業が中心、という場合にはひとつの選択肢になりそうだ。

スワップファイルの作成を禁止する(実行後システムを再起動)

$ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

 試してみたがやはり不安だという場合には、以下のとおりコマンドを実行すれば、初期設定の「必要に応じてスワップファイルを作成」するモードに戻る。

スワップファイルの作成を許可する(実行後システムを再起動)

$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
  • コメント(12件)
#1 通りすがり   2011-08-30 17:49:30
スワップ止めるとスリープから復帰した時に画面がバグりますね
#2 通りすがり   2011-09-11 15:18:02
core i5,i7でSSDの時代にスワップを止めるなんて、ナンセンス。
逆にスワップさせてなんぼと思う。
じゃないと、現行機種を買っても無意味。もったいない。
#3 通りすがり   2011-09-22 15:22:45
> スワップを止めるなんて、ナンセンス。
何がナンセンスなのだろう?
なぜスワップが生じるか分かっているのだろうか?
実メモリーが潤沢にあればスワップなんて無駄なことさせるのはナンセンス。
#4 初心者   2012-03-12 00:29:04
今月のマックファンにあった記事?
メモリが十分にあってスワップがほとんどしないという前提なのに、
スワップを禁止する理由が分かりません。
どうしても実行したい処理があって、それがスワップしようとしたら
異常終了しますか?
#5 GT   2012-03-12 00:43:07
Chromeが大食いすぎるというのはあるのですが、4GBメモリだと3.5GBくらい利用している状況は割とよく見ます。4GBを使い切ったところは見たことが無いですね。
#6 mac初心者   2012-03-12 23:10:34
スワップを禁止するとシステムがフリーズするのですか?
フリーズするのにスワップを禁止するんでしょうか?
#7 yk-119   2012-03-14 22:44:08
スワップさせるために必要な機能(プロセス?)を実行不要にする事により、処理効率を高めるのが、狙いですよね?Windows では消費メモリ量が減りましたから、OSX でも期待していいのではないかと思いますが...
#8 通りすがり   2012-08-30 10:11:55
SSDの寿命ネタは過去のモノかと思ってた。

偶発故障ならともかく、ここ最近のSSDが使いすぎによる摩耗故障をするとでも?少なくとも本体のライフ(寿命、ではなく旧式を我慢して使い続けられる期間)は余裕で持ちこたえる、というのが通説だと思いますが?
#9 akakage   2013-01-05 08:53:18
unixは乱暴な言い方をすれば、初期の頃からメモリ不足と戦いswapを前提に組み上げられたOSです
ですから、swapの仕組みはかなり最適化されていますし、パフォーマンスの低下も僅かなものです。
Macbookの特徴のSSDもスワップにはかなり有利に働くはずで、気にすることはないと思うのですが、まさしく「こだわる」という単語の意味通りの状態なのでしょうね。
#10   2013-02-19 10:36:09
実使用上問題無いのに、
細かいことにこだわり過ぎると禿げるぜ?
今更手遅れだったらごめん。
#11 通りすがり   2013-07-10 13:59:56
#3
もうちょい頭使おう
#12 うらっち   2013-08-25 06:20:15
処理速度優先なら、ダイナミックページャを止めるのもあり。
前提として「想定している処理での必要メモリ以上の、ある程度の潤沢さ」があるけどね。
その条件を守れる環境であればあえて遅延を引き起こすストレージアクセスを減らすのは当然、ありえる手段。
余っている限り、無駄なディスクアクセスをしない程度の頭のよさがOSやページャにあれば稼働させて、ストレージアクセスなしでできるのだが、頭が悪いので余っていてもアクセスしちゃう低能なのを止めるという考え方は妥当。
馬鹿でも、必要なら使う。使う必要がない、#11みたいなのを使わない選択肢を採用することには、なんら問題がない。
  • 新着記事
  • 特集
  • ブログ