脳みそスワップアウト

揮発性なもので。おもにPHPのこととか。

firefoxアドオンの暴走

うちのファイルサーバは、音楽ファイルやyoutube等を再生するBGM再生機も兼ねている。
そしてブラウザにはfirefoxを使っている。

定期的にfirefoxのプロセスがCPUリソースを大量に消費する現象に見舞われる。

Firefox 63 ESR Windows7 64bit の話。

プロセス構成 (firefox.exe)

-profile PATH/TO/PROFILE -no-remote
  |- -contentproc --channel="2404.0.2060680259\1814633908" -parentBuildID 20181114214635 -greomni "PATH/TO/FIREFOX\omni.ja" -appomni "PATH/TO/FIREFOX\browser\omni.ja" -appdir "PATH/TO/FIREFOX\browser" - "C:\Users\pen\AppData\LocalLow\Mozilla\Temp-{546fe85a-cbaf-4221-85b2-febf6ced8985}" 2404 "\\.\pipe\gecko-crash-server-pipe.2404" 1428 gpu
  |- -contentproc --channel="2404.3.2078292345\860956994" -childID 1 -isForBrowser -prefsHandle 2256 -prefMapHandle 2252 -prefsLen 1 -prefMapSize 183404 -schedulerPrefs 0001,2 -parentBuildID 20181114214635 -greomni "PATH/TO/FIREFOX\omni.ja" -appomni "PATH/TO/FIREFOX\browser\omni.ja" -appdir "PATH/TO/FIREFOX\browser" - 2404 "\\.\pipe\gecko-crash-server-pipe.2404" 2276 tab
  |- -contentproc --channel="2404.20.2119747816\691094533" -childID 3 -isForBrowser -prefsHandle 3280 -prefMapHandle 2840 -prefsLen 121 -prefMapSize 183404 -schedulerPrefs 0001,2 -parentBuildID 20181114214635 -greomni "PATH/TO/FIREFOX\omni.ja" -appomni "PATH/TO/FIREFOX\browser\omni.ja" -appdir "PATH/TO/FIREFOX\browser" - 2404 "\\.\pipe\gecko-crash-server-pipe.2404" 2944 tab
  |- -contentproc --channel="2404.27.1417065337\842201684" -childID 4 -isForBrowser -prefsHandle 3672 -prefMapHandle 3696 -prefsLen 4210 -prefMapSize 183404 -schedulerPrefs 0001,2 -parentBuildID 20181114214635 -greomni "PATH/TO/FIREFOX\omni.ja" -appomni "PATH/TO/FIREFOX\browser\omni.ja" -appdir "PATH/TO/FIREFOX\browser" - 2404 "\\.\pipe\gecko-crash-server-pipe.2404" 2992 tab
  • 1番上が親プロセス
  • 2番目はGPUプロセス
    • killしても勝手に新しいものが生まれる
    • これが大量にリソースを消費することはうちの環境では起きていない
  • 下3つはタブ。うちひとつはアドオン。

CPU利用率がやたら高い場合はだいたいアドオンの暴走。
その時のプロセスのメモリ使用量は数GBにもなる。
about:memory で計測すればメモリを食っているアドオンは特定できる。見やすくはないが。
ツール>アドオン から 無効→有効 で個別に再起動できる。

アドオンのプロセス自体をkillしてから上記操作でアドオンを個別に再起動もできるがアドオンの数だけ繰り返さないとならないので面倒。
複数のアドオンが問題を起こしている場合は、ダウンロード進行中でもなければfirefox自体を再起動した方がいい。

タブプロセスが原因で利用率が高い場合も稀にある。
行儀の悪いjsが動き続けている場合など。
この場合はそのプロセスをkillすればいい。
プロセスに対応したタブは停止状態になるが、各タブから復元ボタンを押せば簡単に戻せる。