Firefox заморожується із 100% використанням процесора протягом 30 секунд при запуску Chromium


22

Нещодавно я почав спостерігати за цією заплутаною та дратівливою, не кажучи про тривожну поведінку, коли Firefox був відкритий та запускався Chromium:

Близько 30 секунд дочірні процеси Firefox споживали б усі доступні ресурси процесора, змушуючи веб-сайти припиняти візуалізацію (вже відображена сторінка замикає, на нових сторінках відображається біла сторінка з сірим крутячим колом), поки загальне вікно все ще реагує (меню, прокрутка сторінки , перемикання вкладок, навіть внутрішніх сторінок, таких як about: config або about: налаштування працюють ...). Сам хром ніяких симптомів не проявляє. Негайно припинивши Chromium, поки Firefox крутиться, швидше не зупиняйте поведінку.

Те саме відбувається з моїм звичайним Firefox-профілем, абсолютно новим, незайманим профілем Firefox без будь-яких додатків тощо. Firefox запускався в безпечному режимі з відключеними додатками, а Firefox запускався в приватному режимі. Подібно до 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, встановленого на чистий свіжий профіль Firefox на моєму звичайному акаунті Ubuntu. Його можна знайти тут: https://perfht.ml/2zpTWsh - Невідповідний часовий діапазон із 100% використанням процесора повинен приблизно відповідати виділеній області на часовій шкалі Content Proc, приблизно від 18 до 56 років.

Я створив звіт про помилку Mozilla для цієї проблеми: https://bugzilla.mozilla.org/show_bug.cgi?id=1504461

Важливе оновлення. Мабуть, мій звіт про помилку був дублікатом https://bugzilla.mozilla.org/show_bug.cgi?id=1495900 , який вказує fontconfigяк винуватця. Здається, що запуск Chromium якось змінює конфігурацію шрифту, що викликає повне перезавантаження у Firefox. Це відповідає звіту про ефективність роботи, а також узгоджується з тим, як колишні оновлення пакетів шрифтів викликали такий самий вид заморозки.

Будь-які ідеї, як я можу змусити цих трьох (Firefox, Chromium, fontconfig) добре поводитись одна під одною?


Все, що я знаходжу в рядку 353 ipc_channel_posix.cc, - це справжнє твердження про повернення. Звичайно, відпочинок підключення ровесником, який є фатальним, ніколи не поступається добре. На жаль, я не можу відтворити цю проблему. Я б хотів, щоб я міг бути кориснішим.
Старійшина Гік

У мене також були спорадичні проблеми з високим процесором на ubuntu, але я не можу сказати, що це спричинило чи вирішило. Було чимало відкритих проблем, які я відслідковував, пов'язані з високим рівнем використання процесора - тож, я би оновив і сподіваюся. Наразі у мене не виникає жодних проблем (або якщо я це роблю, це конкретна вкладка; тому перезапуск браузера або закриття вкладки вирішує це). Чи можливо оновити з 16.04 до 18.10 (як, звичайно, 16.04 - з 4/2016, а 18.10 - з 8/2018) ...? І, фві, я також перейшов на кубунту, що, здається, доставляє мені менше головних болів. (Якщо можливо, завантажтеся з USB та експериментуйте з обома.)
michael

Іноді у мене працює Firefox, а потім відкриваю Chrome (я знаю, що це трохи інакше), і я не помітив високого використання процесора. Можливо, 5 секундний спайк від 18% до 30% процесора через 8 віртуальних процесорів.
WinEunuuchs2Unix

Відповіді:


17

TL; DR: Це проблема з fontconfigверсією 2.13. Це можна виправити, оновивши пакет до 2,13 або вище (хоча я не зміг знайти відповідного постачальника). Крім того, вивчіть всі пов’язані зі своїми шрифтами папки та конфігураційні файли у вашому домашньому каталозі та перевірте, чи усунення будь-якої з них вирішує вашу проблему. Для мене перейменування ~/.fontsзробило трюк.


Дізнавшись про звіти про помилки https://bugzilla.mozilla.org/show_bug.cgi?id=1495900 та https://bugzilla.mozilla.org/show_bug.cgi?id=1411338, стає досить зрозумілим, що проблема повинна бути викликані fontconfig.

Колись запускається Chromium, він запускає зміну в базі шрифтів (???), що змушує Firefox - якщо він працює зараз - якимось чином повторно сканувати файлову систему на шрифти, що призводить до використання процесора та тимчасової заморозки.

Очевидно, оновлення fontconfigпакета з версії 2.11 до 2.13 (версія, що постачається, наприклад, в Ubuntu 18.10) повинна вирішити проблему, але я не знайшов простий спосіб отримати цю версію 16.04, не порушуючи залежності багатьох інших пакунків, які я встановив.

Оскільки проблема обмежена моїм обліковим записом користувача, я вивчив локальну конфігурацію шрифту та папки мого користувача. Там досить безлад різних шрифтів пов'язаних каталогів , чесно кажучи, в тому числі ~/.fonts, ~/.local/share/fonts, ~/.local/share-font-manager, ~/.config/font-manager, ~/.cache/font-manager, ~/.cache/fontconfigі ще кілька конфігураційних файлів і додатки конкретних речей шрифту.

Я почав з видалення (перейменування) ~/.fontsпапки, оскільки вона, здавалося б, не містила нічого корисного, і простий touch ~/.fonts/Library/до цього спровокував поведінку Firefox. Після того, як ця папка пішла, не було проблеми при запуску Chromium. \ o /


Має сенс, оскільки у мене немає ~/.fontsкаталогу. Усі шрифти знаходяться в системному каталозі.
WinEunuuchs2Unix

Очевидно, подібний або навіть такий самий помилка може бути спровокований 18.04, запустивши також і кореневе вікно терміналу. strace вказує на деякий серйозний i / o файл щодо файлів шрифту Цікаво, що це не лише проблема лише з Firefox, але й з іншими програмами xorg, тому я припускаю, що проблема також у xorg. На жаль, видалення відповідних каталогів не допомогло.
stefanct

1
Однак оновлення fontconfigдо 2.13.0-5ubuntu3космічного / 18.10 вирішило проблему AFAICT. Це був самий дивний помилок за деякий час ... дякую за покажчики.
stefanct

@stefanct як ти змусив його встановити, не руйнуючи речі, я спробував примусити fontconfig та libfontconfig1 2.13 і підхотів захотіти видалити весь мій DE, працює 18.04
GM-Script-Writer-62850

@ GM-Script-Writer-62850 Я не маю жодної пам’яті про те, щоб мати справу libfontconfig1конкретно. Як правило, я додав до списку біонічні дзеркала aptі застосовую влучне закріплення, щоб уникнути встановлення будь-якого з його пакетів, не розповідаючи про це конкретно. Тоді я просто використав apt«s -tваріант , як так: apt install fontconfig -tcosmic. Я використовую mate як DE ... можливо, це не так легко працює з іншими DE.
stefanct

3

Фон

Запропоновано цей Firefox Bug 1492360: Високе використання процесора при відкритій Firefox перед хромом / хромом . Тобто це дублікат помилки 1495900: запуск Chrome змушує процеси вмісту Firefox зависати протягом приблизно двох хвилин, завдяки повторному пошуку шрифту FontConfig (FcInitReinitialize) .

Але я теж на Firefox:

Firefox version.png

І коли я відкриваю Chrome:

Chrome version.png

Я не бачу, щоб ефективність процесорів була досягнута.

Це може бути проти вашої моралі, але, можливо, ви можете спробувати встановити, google-chrome-stableяк у мене. Потім зробіть тест ще раз. Якщо немає скорочення використання процесора до 100%, то звіт про помилки може бути поданий між Chromium та Chrome.

Я на Ubuntu 16.04.5 LTS. Хоча ядро ​​в даний час є 4.14.78ланцюгом LTS, я не думаю, що це пов'язано з цим, оскільки я не помітив звернень CPU до попередніх ядер.

Єдиний раз, коли я бачу всі процесори на 100%, це під час update-initramfs.


fontconfig версон

У звіті про помилку виявлено:

$ 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є рекомендованим рішенням, але ОП, зазначене в коментарях, це неможливо. Як такий 2.11.94 може бути варіант.


Ну ні, я не збираюся встановлювати Chrome. Однак я дізнався, що винуватець fontconfigзараз. Можливо, у вашому обліковому записі користувача встановлені різні (або відсутні) локальні шрифти. Я знайшов рішення щодо видалення (перейменування) ~/.fontsпапки, яка виправляє проблему. Мабуть, оновлення до fontconfig> = версії 2.13 повинно це виправити, але я не можу цього зробити 16.04.
Байт-командир

Так, єдині шрифти, які я встановив, - це штрих-коди (код 3 з 9), які ttfвикористовуються в текстових процесорах / електронних таблицях. На жаль, вам довелося вирішити власне щедрий питання, але якщо це якесь втіху, у мене було те саме.
WinEunuuchs2Unix

Я додав пониження рівня fontconfigяк варіант, щоб відповідати моїй версії, але це "слабка надія", якщо ви, можливо, прийшли звідти. Якщо у вас є посилання на встановлення локальних шрифтів, я спробую підтвердити / заперечити дію старої fontconfigверсії.
WinEunuuchs2Unix

Моя версія теж fontconfigє 2.11.94-0ubuntu1.1такою, що не є помилкою. Це, мабуть, повинно бути поєднанням встановлених шрифтів, конфігурації шрифту та чорної магії. Перевір мою відповідь. :)
Байт командир

1

Судячи з журналу, схоже, Firefox чомусь використовує синхронний IPC (Міжпроцесовий зв'язок). У Firefox є прапори для явного включення синхронного IPC (наприклад: network.cookie.ipc.sync). Один із них може бути ввімкнено. Ви можете отримати доступ до них з приблизно: конфігурацій сторінки

Затримка буде наслідком очікування Firefox на відповідь. Оскільки завантаження Chromium не запущено або він не працює активно, немає навантаження, є негайна реакція.

Пов’язане: https://bugzilla.mozilla.org/show_bug.cgi?id=1331680


Я переключив значення цього network.cookie.ipc.syncконфігурації з false на true та назад, перезавантаживши Firefox після кожної зміни, але все одно та сама поведінка :( Я все ще не розумію, чому Firefox і Chromium навіть спілкуються в першу чергу, вони повинні пам’ятати про своє справа кожного.
Байт-командир

1
Я видалив це, оскільки ви виявили, що фактична причина не пов'язана, але я думаю, що я повинен залишити це як можливу причину?
Асвін Б

0

Не знаю, чи спрацює наступна пропозиція чи ні. Ви можете спробувати. Спробуйте видалити хром та firefox повністю (зберігайте файли .deb звичайно) за допомогою Synaptic Package Manager. Після цього перевірте, чи є зламані залежності. Зафіксуйте їх за допомогою синаптики (якщо такі є). Тепер перевірте використання процесора (я використовую Powertop). Зазвичай зробіть повторну установку браузерів.

Примітка. Ці речі, як правило, я роблю у випадку конкретних відхилень. Я пам’ятаю, що стикався з трохи подібним питанням рік тому. Він вирішився таким чином.


Ні, очищення та перевстановлення всіх пакетів Firefox * і хрому * нічого не змінило.
Байт-командир

показують, чи віджети статистики холостого ходу та частоти статистики powertop на 100% використовують при запуску хрому?
Хірак

Так, він показує близько 112% для "C0 active" на кожному ядрі в режимі очікування, а статистика частоти повідомляє про максимальну частоту (2,7 ГГц) і 0% в режимі очікування на кожному ядрі. На вкладці "Огляд" відображаються всі процеси Firefox вгорі списку, приблизно 600-900 мс / с обчислювальний час, але нульові події / с.
Байт-командир

0

У Ubuntu 16.04 видалення порожньої папки ~/.local/share/fontsвирішило її в моєму випадку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.