web-dev-qa-db-ja.com

Chromiumの起動時に30秒間CPU使用率100%でFirefoxがフリーズする

最近、Firefoxを開いてからChromiumを起動するときの動作を心配するのではなく、この非常に複雑で迷惑なことに気付き始めました。

約30秒間、Firefoxの子プロセスは使用可能なすべてのCPUリソースを消費し、Webサイトはレンダリングを停止します(既に表示されているページがフリーズし、新しいページに灰色の回転する円で白いページが表示されます)。 、タブの切り替え、about:configやabout:preferencesなどの内部ページも機能します...)。 Chromium自体には症状はありません。 Firefoxの回転中にChromiumをすぐに再度終了しても、動作が停止することはありません。

同じことが、通常のFirefoxプロファイル、アドオンのないまったく新しい未処理のFirefoxプロファイルなどでも発生します。Firefoxはアドオンを無効にしてセーフモードで起動し、Firefoxはプライベートモードで起動しました。 Chromiumの場合と同様に、通常のプロファイル、シークレットモード、または一時プロファイルを使用して起動し、常に同じ結果を生成します。

Chromiumが実行されていて、Firefoxを開いたときに奇妙なことは何もありません。

ターミナルからFirefoxを起動すると、回転中に終了すると次のようなメッセージが表示されることがあります(いくつかのクロムipcについて言及しているパイプエラー行に注意してください)。

ExceptionHandler::GenerateDump cloned child 32165
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
[Parent 26520, Gecko_IOThread] WARNING: pipe error (52): Connection reset by peer: file /build/firefox-8oo9jx/firefox-62.0+build2/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 353
ExceptionHandler::GenerateDump cloned child 32274
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
ExceptionHandler::SendContinueSignalToChild sent continue signal to child

奇妙なことに、ゲストアカウントまたは新しく作成された通常の(管理者)アカウントでその動作を再現できませんでした。

いくつかのシステム仕様(更新):

  • Ubuntu 16.04(64ビット)
  • Firefox 62.0 + build2-0ubuntu0.16.04.5 63.0 + build2-0ubuntu0.16.04.2
  • クロム 69.0.3497.81-0ubuntu0.16.04.1 70.0.3538.77-0ubuntu0.16.04.1
  • fontconfig 2.11.94-0ubuntu1.1
  • グラフィックハードウェア:Intel SkyLake統合グラフィック(i5-6200U)+ Nvidia GeForce 940M
    現在、nvidia-410ドライバーをインストールしていますが、Intelプライムプロファイルに切り替えました。この問題をさらにトラブルシューティングして修正するにはどうすればよいですか?

Gecko Profiler Extensionでパフォーマンスプロファイルを作成しました。これは、通常のUbuntuアカウントのクリーンなFirefoxプロファイルにインストールされています。ここで見つけることができます: https://perfht.ml/2zpTWsh -CPU使用率が100%の無反応の時間枠は、Content Procタイムラインで強調表示された領域にほぼ対応するはずです。およそ18代から56代まで。

この問題のMozillaバグレポートを作成しました: https://bugzilla.mozilla.org/show_bug.cgi?id=1504461

重要な更新:どうやら私のバグレポートは https://bugzilla.mozilla.org/show_bug.cgi? id = 1495900fontconfigを原因として指摘します。 Chromiumを起動すると、何らかの方法でフォント構成が変更され、Firefoxで完全な再読み込みがトリガーされるようです。これはパフォーマンスプロファイリングレポートに適合し、フォントパッケージの以前の更新が同じ種類のフリーズをトリガーした方法とも一致します。

3つ(Firefox、Chromium、fontconfig)を互いにうまく動作させる方法はありますか?

16
Byte Commander

TL; DR:バージョン2.13より前のfontconfigの問題です。パッケージを2.13以降にアップグレードすることで修正できます(ただし、適切なプロバイダーが見つかりませんでした)。または、ホームディレクトリ内のすべてのフォント関連フォルダーと構成ファイルを調べ、それらのいずれかを削除することで問題が解決するかどうかをテストします。私にとっては、~/.fontsの名前を変更することでうまくいきました。


バグレポートについて学習した後 https://bugzilla.mozilla.org/show_bug.cgi?id=14959 および https://bugzilla.mozilla.org/show_bug.cgi?id = 1411338 問題はfontconfigが原因であることがかなり明確になります。

何らかの理由でChromiumが起動すると、フォントデータベースの変更(???)がトリガーされ、Firefox(現在実行中の場合)が何らかの理由でフォントのファイルシステムを再スキャンし、CPU使用率と一時的なフリーズが発生します。

どうやらfontconfigパッケージをバージョン2.11から2.13(Ubuntu 18.10で出荷されたバージョンなど)に更新すると問題が修正されるはずですが、他の多くのパッケージの依存関係を壊さずにそのバージョンを16.04に取得する簡単な方法は見つかりませんでしたIインストールしました。

そのため、問題はユーザーアカウントに限定されているため、ユーザーのローカルフォント構成とフォルダーを調べました。 ~/.fonts~/.local/share/fonts~/.local/share-font-manager~/.config/font-manager~/.cache/font-manager~/.cache/fontconfigなど、正直なところ、さまざまなフォント関連のディレクトリがかなり混乱しています。さらにいくつかの設定ファイルとアプリケーション固有のフォントなど。

~/.fontsフォルダーを削除(名前変更)することから始めました。とにかく有用なものが含まれていないようでした。また、その前に単純なtouch ~/.fonts/Library/がFirefoxの誤動作を引き起こしました。そのフォルダーがなくなった後、Chromiumを起動したときの問題もなくなりました。\o /

11
Byte Commander

バックグラウンド

このFirefoxバグ1492360が提案されています: Firefoxをchrome/chromium の前に開くと、CPU使用率が高くなります。これはBug 1495900の複製です: Starting Chromeは、Firefoxのフォントの再スキャン(FcInitReinitialize) が原因で、Firefoxのコンテンツプロセスが約2分間ハングします。

しかし、私もFirefoxを使用しています。

Firefox version.png

そして、Chromeを開くと:

Chrome version.png

CPUのパフォーマンスが低下することはありません。

それはあなたの道徳に反するかもしれませんが、おそらく私と同じようにgoogle-chrome-stableをインストールしてみてください。その後、再度テストを行います。 CPU使用率が100%に急上昇しない場合、ChromiumとChromeの間でバグレポートを提出できます。

Ubuntu 16.04.5 LTSを使用しています。カーネルは現在4.14.78 LTSチェーンですが、以前のカーネルでもCPUヒットに気付かなかったので、それは何の関係もないと思います。

すべてのCPUが100%になっているのは、update-initramfsの間だけです。


fontconfig verson

バグレポートで明らかになります:

$ dpkg -l 'fontconfig*' | grep "^ii"
ii  fontconfig        2.12.6-0ubuntu2 AMD64        generic font configuration library - support binaries
ii  fontconfig-config 2.12.6-0ubuntu2 all          generic font configuration library - configuration

私のバグのないバージョンでは(ローカルフォントがないためかもしれません):

$ dpkg -l 'fontconfig*' | grep "^ii"
ii  fontconfig        2.11.94-0ubuntu1.1 AMD64        generic font configuration library - support binaries
ii  fontconfig-config 2.11.94-0ubuntu1.1 all          generic font configuration library - configuration

バグレポート2.11.94バージョンよりも前の2.12バージョンです。バグレポートでは、2.13へのアップグレードが推奨される解決策ですが、コメントでOPに言及されていることはできません。そのため、2.11.94mightはオプションです。

1

バンブルビーのパフォーマンスは比較的バグが多いことが知られています。 nvidia-primeはラップトップのバッテリーを消耗させることが知られています。これら2つを確認します。どちらかが動作するか、システムに適しています。Nvidiawith Bumblebeeまたはnvidia-primeです。 Nvidiaの個別グラフィックスを有効または無効にして、どちらが適切に機能するかを確認します。

0
karel

ログから判断すると、Firefoxは何らかの理由で同期IPC(プロセス間通信)を使用しているようです。 Firefoxには、同期IPCを明示的にオンにするフラグがあります(例:network.cookie.ipc.sync)。それらのいずれかが有効になっている可能性があります。これらにアクセスするには、about:configページから

遅延は、firefoxが応答を待機した結果です。 Chromiumの起動が完了したとき、またはアクティブに実行されていないときは負荷がないため、すぐに応答があります。

関連: https://bugzilla.mozilla.org/show_bug.cgi?id=133168

0
Aswin B

次の提案が機能するかどうかわからない。試してみることができます。 Synaptic Package Managerを使用して、クロムとFirefoxを完全に削除してみてください(もちろん、.debファイルを保存してください)。その後、破損した依存関係があるかどうかを確認します。シナプスを使用して修正します(存在する場合)。 CPU使用率を確認します(私はPowertopを使用しています)。最後に、ブラウザーを再インストールします。

注:これらのことは一般的に、特定の異常の場合に私がすることです。 1年前に少し似たような問題に直面したことを覚えています。このようにして解決しました。

0
Hirak