これはなに
やたら重くなった MacBook Air mid 2011 (memory 4GB, strage 250GB) をサクサクにするまでの苦闘の記録です
古いMacBookに発生した、つらみあふれる現象
- ログイン画面を開いてからパスワードを入力するまで1分ほど待たされる
- 起動してからブラウザを開くまでやたら時間がかかる
- 何もしていなくてもメモリを3GBくらい専有されている
上記を解決し、ネットサーフィンくらいなら何も支障がない状態になりました!
そのために、いろいろチューニングした結果をまとめます
MacBook Air mid 2011をサクサクにするためにやったこと
以下の3つです
- ストレージの空き容量確保
- CPUを無駄に食うプロセスの整理
- memoryを無駄に食うプロセスの整理(主にChrome)
ストレージの空き容量確保
なぜ空き容量確保が必要か?
もし、ストレージの空きが1GBを切っている場合、メモリ不足時に使用する仮想メモリ(swap)が確保できず、処理が遅くなったり、アプリが強制終了してしまう場合があります
そのため、空き容量を程度確保して、仮想メモリに余裕をもたせておいたほうが良いです
そうでなくても250GBってあんまり余裕ありませんしね...
空き容量を確保するためにやったこと
以下の3つです
- 写真をgoogleフォトに移動
- 音楽をgoogle play musicに移動
- (エンジニア向け)
brew cleanup -s
を実行
google様にデータを握られるのは好き嫌いはあると思いますが、私はストレージの空き容量の確保と、スマホと複数マシンで写真/音楽が共有されるメリットを取りました
写真をgoogleフォトに移動
googleフォトヘルプに従って操作すれば何も難しいことはありません
しかし、写真アプリで写真を削除した後も、ユーザーディレクトリのピクチャに 写真 Library.photoslibrary というファイルが残る場合があります
これが数GBの容量を食っていることがあるので、こちらも削除しておきましょう
音楽をgoogle play musicに移動
こちらも写真と同様にヘルプに従えば移行できます
brew cleanup -s
を実行
homebrew のキャッシュファイルをクリアするコマンドです
私の環境では約50MBしか削減されませんでしたが、環境によっては数十GBほどキャッシュされている場合があるようです
CPUを無駄に食うプロセスの整理
効果の高い順に以下の4つを実施しました
- SMCをリセットする
- Spotlight関係のプロセスのCPU負荷を下げる
- windowServerのCPU負荷を下げる
- spindumpの無効化
SMCをリセットする
SMCとは「システム管理コントローラ」というPCのローレベルの機能のコントローラーです
SMCには、CPUの温度が上がると自動的にCPUの性能を下げて熱暴走を抑える機能があります
しかし、誤動作でCPUの温度が高くないにもかかわらず、CPUの性能を下げてしまう場合があるようです
公式サポートでは、その場合SMCをリセットすることが推奨されています
電源をOFFにした状態で shift + control + option と電源キーを10秒間押しましょう
電源キーを押しますが、電源が入ることはありません。何も起こらないな? と不安にならなくて大丈夫です
Spotlight関係のプロセスのCPU負荷を下げる
アクティビティモニタの「CPU」タブを見ていたところ、mds_stores
というプロセスがCPUを占拠していました(常に25%くらい)
調べたところ、Spotlightで使用するプロセスのようです
私の環境ではAlfredを使用しており、Spotlightは未使用のため、おとなしくしてもらいました
Spotlightでは、検索対象のディレクトリを常にチェックするプロセスが走っています
それを黙らせるには、検索対象をゼロにする必要があります
システム環境設定 -> Spotlight から、それぞれ設定します
windowServerのCPU負荷を下げる
windowServerは、画面に表示されるウインドウを管理するプロセスです
MacなのにwindowServer?ってなりますよね...
システム環境設定から、windowServerにてCPUを食う処理を無効化することで、CPU負荷を下げることができます
無効化の方法は以下をご参考ください(Yosemite時代の記録ですが、現行のOSでも設定は大差ありませんでした)
spindumpの無効化
spindumpもCPUを占拠していることがあったので、こちらに従い停止しました
spindumpは実行中のアプリケーションの低レイヤ情報を書き出すためのソフトウェアだが、 得られる情報は一般的な利用目的(ソフトウェア開発以外)では役に立たないことが多いと思う。
とのことです
memoryを無駄に食うプロセスの整理
不要なプロセスは起動しないようにしたのと、一番メモリを食うgoogle Chromeの整理を行いました
未使用のアプリをログイン時に起動しないようにする
システム環境設定->ユーザーとグループ->ログイン項目 から、ログイン時に起動するアプリを設定できます
google Chromeの使用メモリ削減
タスクマネージャーを使用して、メモリを食う機能拡張を特定しました
また、広告ブロッカーを導入することで、広告に使われるメモリを無くすことに成功しました
タスクマネージャーの起動方法
画面右上のメニューから その他のツール -> タスクマネージャー でタスクマネージャーを起動させることができます
これにより、メモリやCPUを食う機能拡張やサブフレームを探すことができます
メモリを食う割に使っていない機能拡張は削除しましょう
Adblock plusの導入
機能拡張 Adblock plusを導入することで、広告やトラッキングのに使われるiframeの起動が抑制され、結果使用メモリが削減されます
広告ブロックは賛否ありますが、自分環境ではブロックしないと文化的なネットサーフィンが難しいそうでしたので導入しました...
広告やトラッキングに使用されるiframeは意外にメモリを食っており、例えばニコニコ大百科の場合、 Adblock plusを導入するとで使用メモリが200MBほど削減されます
(ここで表示されている「サブフレーム」というのがiframeのことですね)
まとめ
適切なチューニングをしたところ MacBook Air mid 2011 でも普通に動作するようになりました...!
MacBook Airを購入してから、日が経つごとにどんどん重くなっていって、OSアップデートごとに無駄に重くして買い替えを促進するAppleの陰謀か...などと思っていたのですが...
みなさんも定期的なチューニングで快適なMacBookAirライフをお過ごしください!