追記: 2018/9/3
Chromiumのタブがハングする問題が解決されました。くわしくはこちらの記事をご参照ください。
FreeBSDユーザのみなさん、Webブラウザには何をお使いですか? Chromium (Chrome)? Firefox? あるいはOperaをお使いですか? わたしはというと、メインブラウザにChromium、サブにFirefoxを使っているのですが、ここのところChromiumの動作が安定しない問題に悩まされています。
いつごろからだったのか、もうはっきりとした記憶がないのですが、あるときからChromiumの動作が安定しなくなりました。「安定しない」といっても、ブラウジングの最中にChromiumが突然落ちるわけではありません。おもな症状は以下の二つです。
- ページを開くときにローディングの状態のまま進まない
- マウスやキーボードでの操作に反応しない(例: スクロールさせている途中で反応がなくなる)
ひどい時には、ブラウザ全体がフリーズして操作にまったく反応せず、タブのクローズや切り替えもできなくなります。こうなってしまうと、もう「ムキーっ」となりながらコマンドラインでkillall chrome
するしかありません。
当然のことながら、Chromiumがハングアップしたりフリーズしたりという件に関しては、いくつかバグレポートが出ています。(代表的と思われるものを以下に二つ挙げます。)
- Bug 211036 - www/chromium hangs and becomes unresponsive just opening a new tab (FreeBSD)
- Bug 212812 - www/chromium: tabs “hang” 10% of the time (FreeBSD)
バグレポートを見てみると、これ、かなり息の長い問題なんですね。最初の日付は2016年の夏頃、Chromiumのバージョンでいうと52くらいから問題が報告されています。
もちろん、バグを前にして手をこまねいているわけではなく、上記レポートの中でいくつも解決方法が提案されています。ただ、いずれの提案も、効果がある、効果がない、という反応が混在していて、現時点で決定的といえるものはないようです。
そういうわけで、「できるだけ安定して使う」というなんとも中途半端なタイトルになってしまったわけですが、試してみて効果がある(と感じる)症状緩和策を四つ紹介したいと思います。(単なるプラセボ効果かもしれませんが…)
キャッシュディレクトリをメモリファイルシステムとしてマウント
chromium
パッケージをインストールしたときに、インストール後のメッセージとして表示される方法です。(公式パッケージのインストール時に表示される方法なので、おそらくFreeBSDコミュニティとして最も効果があると判断されているのだと思います。)
インストール時のメッセージを再度表示させるには、以下のコマンドを実行すればOKです。
pkg info -D chromium
対応策は、Chromiumを使用するユーザで以下のコマンドを実行します。(以下はユーザexampleuser
、グループexamplegroup
を想定したコマンドになっていますので、お使いの環境に合わせて読み替えをお願いします。)
rm -rf ~/.cache/chromium
mkdir ~/.cache/chromium
sudo echo "md $(echo ~exampleuser)/.cache/chromium mfs rw,late,-wexampleuser:examplegroup,-s300m 2 0" >> /etc/fstab
sudo mount ~example/.cache/chromium
GPUハードウェアアクセラレーションの無効化
--disable-gpu
オプションをつけてChromiumを起動します。
chrome --disable-gpu
デスクトップ環境を使用していて、ランチャ経由でChromiumを起動する場合は、ランチャに上記オプションを追加しておくと便利です。(下図)
Chromiumのコマンドラインオプションの詳細については、以下の二つのURLを参考にしてください。
- Run Chromium with flags (The Chromium Project)
- List of Chromium Command Line Switches (Peter Beverloo)
V8 JavaScriptエンジンのキャッシュを無効化
Bug 212812で“Tomo Method”と呼ばれている方法です。Chromiumを起動して、以下のURLにアクセスします。
chrome://flags/#v8-cache-options
“Default”となっている設定値を”Disabled”に変更して、Chromiumを再起動してください。
HTTPシンプルキャッシュを使用
Bug 212812のコメント53で提案されている方法です。Chromiumを起動して、以下のURLにアクセスします。
chrome://flags/#enable-simple-cache-backend
“Default”となっている設定値を”Enabled”に変更して、Chromiumを再起動します。
以上、Chromiumのハングアップに関する症状緩和策を四つ紹介しました。Chromiumユーザのお役に立てばさいわいです。
参考文献
- Bug 211036 - www/chromium hangs and becomes unresponsive just opening a new tab, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211036
- Bug 212812 - www/chromium: tabs “hang” 10% of the time, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=212812
- Run Chromium with flags, https://www.chromium.org/developers/how-tos/run-chromium-with-flags
- List of Chromium Command Line Switches, https://peter.sh/experiments/chromium-command-line-switches/