Chromium을 시작할 때 30 초 동안 100 % CPU 사용으로 Firefox 정지 프로파일, 애드온 등이없는

최근에 나는 Firefox를 열고 Chromium을 시작할 때 걱정스러운 행동을 말하는 것이 아니라 매우 혼란스럽고 성가신 것을 관찰하기 시작했습니다.

약 30 초 동안 Firefox의 자식 프로세스는 사용 가능한 모든 CPU 리소스를 소비하여 웹 사이트가 렌더링을 중지하게하고 (이미 표시되는 페이지 정지, 새 페이지에는 회색 회전 원이있는 흰색 페이지가 표시됨) 전체 창이 여전히 응답하는 동안 (메뉴, 페이지 스크롤) , 전환 탭, about : config 또는 about : preferences와 같은 내부 페이지조차도 작동합니다.) 크롬 자체에는 아무런 증상이 없습니다. Firefox가 회전하는 동안 Chromium을 즉시 다시 종료해도 더 이상 동작이 중지되지 않습니다.

내 일반 파이어 폭스 프로파일, 애드온 등이없는 새롭고 수정되지 않은 파이어 폭스 프로파일, 애드온이 비활성화 된 상태에서 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

이상하게도 게스트 계정이나 새로 만든 일반 (관리자) 계정에서 해당 동작을 재현 할 수 없습니다.

일부 시스템 사양 (업데이트 됨) :

  • 우분투 16.04 (64 비트)
  • Firefox 62.0+ 빌드 2-0 우분투 0.16.04.5 63.0+ 빌드 2-0 우분투 0.16.04.2
  • 크롬 69.0.3497.81-0 우분투 0.16.04.1 70.0.3538.77-0 우분투 0.16.04.1
  • fontconfig 2.11.94-0 우분투 1.1
  • 그래픽 하드웨어 : Intel SkyLake 통합 그래픽 (i5-6200U) + Nvidia GeForce 940M
    현재 nvidia-410드라이버가 설치되어 있지만 인텔 프라임 프로필로 전환되었습니다. 이 문제를 추가로 해결하고 수정하려면 어떻게해야합니까?

일반 우분투 계정의 깨끗하고 새로운 Firefox 프로필에 설치된 Gecko Profiler Extension으로 성능 프로필을 만들었습니다. 그것은 여기에서 찾을 수 있습니다 : https://perfht.ml/2zpTWsh – 56S – 대략 18 세에서 대략 내용 PROC 일정에서 강조 표시된 영역에 해당한다 CPU 사용률이 100 %에 응답하지 않는 기간.

이 문제에 대한 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)가 서로 잘 동작하도록 만드는 방법에 대한 아이디어가 있습니까?



답변

TL; DR :fontconfig 버전 2.13 이전 의 문제입니다 . 패키지를 2.13 이상으로 업그레이드하면 문제를 해결할 수 있습니다 (적절한 공급자를 찾을 수는 없지만). 또는 홈 디렉토리의 모든 글꼴 관련 폴더 및 구성 파일을 검사하고 제거하면 문제가 해결되는지 테스트하십시오. 나를 위해 이름을 바꾸는 ~/.fonts것이 속임수였습니다.


버그 보고서에 대해 학습 한 후 https://bugzilla.mozilla.org/show_bug.cgi?id=1495900https://bugzilla.mozilla.org/show_bug.cgi?id=1411338 문제가 분명해야합니다. 에 의해 발생합니다 fontconfig.

어떻게 든 Chromium이 시작되면 글꼴 데이터베이스 (???)의 변경을 트리거하여 Firefox (현재 실행중인 경우)가 파일 시스템에서 글꼴을 다시 검색하여 CPU 사용 및 일시적인 정지를 초래합니다.

분명히 fontconfig버전 2.11에서 2.13으로 패키지를 업데이트하면 (예를 들어 우분투 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을 시작할 때의 문제도 마찬가지입니다. \영형/


답변

배경

이 Firefox 버그 1492360 : chrome / chromium 이전에 firefox를 열 때 높은 CPU 사용량 이 제안되었습니다 . 이는 버그 1495900의 복제본입니다. Chrome을 시작하면 FontConfig 글꼴 재검색 (FcInitReinitialize)으로 인해 Firefox 콘텐츠 프로세스가 약 2 분 동안 중단됩니다 .

그러나 나는 Firefox에도 있습니다.

Firefox 버전 .png

그리고 Chrome을 열면 :

크롬 버전 .png

CPU 성능이 저하되지 않습니다.

그것은 당신의 도덕에 위배 될 수 있지만 어쩌면 google-chrome-stable내가 가진 것처럼 설치할 수 있습니다. 그런 다음 테스트를 다시 수행하십시오. CPU 사용량이 100 %로 급증하지 않으면 Chromium과 Chrome간에 버그 보고서가 제출 될 수 있습니다.

우분투 16.04.5 LTS에 있습니다. 커널은 현재 4.14.78LTS 체인 이지만 이전 커널에서도 CPU 적중을 보지 못했기 때문에 그와 관련이 있다고 생각하지 않습니다.

내가 모든 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는 권장되는 솔루션이지만 의견에 언급 된 OP는 불가능합니다. 따라서 옵션 2.11.94 일 수 있습니다.


답변

로그에서 판단하면 Firefox가 어떤 이유로 동기 IPC (Inter-process communication)를 사용하는 것처럼 보입니다. Firefox에는 동기 IPC를 명시 적으로 켜는 플래그가 있습니다 (예 : network.cookie.ipc.sync). 그중 하나가 활성화되었을 수 있습니다. about : config 페이지 에서 액세스 할 수 있습니다

그러면 지연이 응답을 기다리는 파이어 폭스의 결과입니다. Chromium의 시작이 완료되었거나 활성 상태가 아닌 경우로드가 없으므로 즉각적인 응답이 있습니다.

관련 : https://bugzilla.mozilla.org/show_bug.cgi?id=1331680


답변

다음 제안이 효과가 있는지 모르겠습니다. 시도해 볼 수 있습니다. Synaptic Package Manager를 사용하여 크롬과 파이어 폭스를 완전히 제거하십시오 (물론 .deb 파일을 유지하십시오). 그 후 종속성이 손상되었는지 확인하십시오. 시냅스 (있는 경우)를 사용하여 수정하십시오. 이제 CPU 사용량을 확인하십시오 (Powertop 사용). 마지막으로 브라우저를 다시 설치하십시오.

참고 :이 문제는 일반적으로 특정 이상이있는 경우 수행하는 작업입니다. 1 년 전 약간 비슷한 문제에 직면 한 것을 기억합니다. 이 방법으로 해결되었습니다.


답변

우분투 16.04에서 빈 폴더를 삭제하면 ~/.local/share/fonts필자가 해결했습니다.


답변