Computer >> 컴퓨터 >  >> 네트워킹 >> 인터넷

Firefox 65 종료가 느려지고 CPU 사용량이 급증하는 문제, 원인 분석과 해결 방법

새롭고 흥미로우면서도 결국 짜증나는 문제를 만났습니다. Windows 머신 중 하나에서 Firefox를 버전 65로 업그레이드했는데, 브라우저를 닫는 과정이 비정상적으로 오래 걸리는 것을 발견했습니다. 이전에는 최대 1~2초면 충분했지만, 이제는 무려 1분 가까이 걸리면서 CPU 코어 하나를 꽉 채워 사용했습니다. 그래서 이 문제가 제 환경 때문인지, 아니면 Firefox 자체의 새로운 버그인지 파악하기 위해 더 깊이 들여다보기로 했습니다.

예상대로 인터넷 검색은 큰 도움이 되지 않았습니다. 드라이버를 업데이트하라, 이것저것 초기화하라는 식의 뻔한 조언들뿐이었죠. 문제 자체나 발생 원인을 완전히 무시하는 최악의 유형의 제안들이었습니다. 어차피 문제를 제대로 이해하지 못한 상태에서 설정을 바꾸는 것은 근본적인 해결이 아니라 증상을 덮는 것에 불과합니다. 그래서 올바른 방법으로 접근하기로 했습니다. 함께 따라와 보시죠.

Firefox 65 종료가 느려지고 CPU 사용량이 급증하는 문제, 원인 분석과 해결 방법

참고: 이미지 출처 Freeimages.com/Malte Hansen

문제 상세 분석

상황을 정리하면 다음과 같습니다. Firefox 65로 업그레이드한 후 브라우저를 닫으면, 높은 CPU 사용량과 함께 완전히 종료되기까지 1분 가까이 걸립니다. 이후에는 브라우저가 닫히긴 합니다. 문제를 정확히 이해하고 격리하려면 한 번에 하나씩 구성 요소를 단계별로 조사해야 합니다. 제가 시도한 내용은 다음과 같습니다.

  • UI 창의 닫기 버튼, 파일 메뉴, Alt + F4 단축키 등 서로 다른 방법으로 종료를 비교했습니다. 결과는 모두 동일했습니다.
  • 모든 부가 기능(애드온)을 비활성화한 안전 모드로 Firefox를 재시작했습니다. 마찬가지로 변화가 없었습니다.
  • 브라우저 보안 강화를 위해 EMET 프레임워크를 사용 중인데, 예전에 Firefox와 EAF/EAF+ 완화 기능 간의 문제를 본 적이 있어(Windows 8 환경이었지만) 이 구성 요소도 확인했습니다. Firefox에 대한 EMET를 완전히 비활성화했지만 역시 효과가 없었습니다. 종료 시 느려짐과 CPU 사용량 급증은 그대로였습니다.
  • 브라우저를 재설치해 차이가 있는지 확인했습니다. 변화 없음.
  • 64비트 버전과 32비트 버전을 각각 테스트했습니다. 변화 없음.

해결 방법

그렇다면 뭔가 효과가 있었을까요? 네, 있었습니다.

  • Firefox 64를 시도했습니다. 종료 시 느려짐이 전혀 없었습니다.
  • Firefox 60 ESR을 시도했습니다. 문제 없음. 브라우저가 최대 1~2초 안에 닫힙니다.

이 결과는 아주 간단하고 명확한 사실을 말해줍니다. Firefox 65에서 무언가 잘못되었다는 것입니다.

소프트웨어를 디버깅할 생각은 없었습니다. 저에게 필요한 건 단순하고 매끄럽고 스트레스 없는 경험일 뿐이니까요. 그래서 Firefox 65를 더 이상 붙잡고 있지 않기로 하고 Firefox 60 ESR을 유지하기로 했습니다. 성능 차이는 미미하며, 브라우저에서 접근성(Accessibility) 서비스를 비활성화하면(사용하지 않는다면) 오히려 체감 가능한 약간의 속도 향상까지 얻을 수 있습니다. 다양한 웹사이트로 테스트해 봤고, '손상된 콘텐츠' 같은 이상한 경고가 나오지 않도록 캐시를 지우고 웹사이트 데이터를 삭제해야 했습니다. 그 외에는 다시 모든 것이 정상적으로 돌아온 것 같습니다.

Firefox 65 종료가 느려지고 CPU 사용량이 급증하는 문제, 원인 분석과 해결 방법

Firefox 65 종료가 느려지고 CPU 사용량이 급증하는 문제, 원인 분석과 해결 방법

참고 사항

알고 보니 Firefox 65은 특히 문제가 많은 릴리스인 것 같습니다. 바로 어제도 일부 서드파티 보안 소프트웨어와의 호환성 문제로 자동 업데이트가 중단되거나 일시 중지되었다는 소식을 접했습니다. 저는 늘 백신류 프로그램이 좋은 것보다 소음을 더 만든다고 주장해왔지만, 여기서 철학적 논쟁을 벌일 의도는 없습니다. 성능 문제와 인증서 관련 문제가 겹친 상황은, 지난 몇 년간 소프트웨어 업계를 집어삼킨 "빨리 출시하고 망치자(move fast and break things)"식 풍조의 우스꽝스러운 그래프에 또 하나의 데이터 포인트를 추가하는 것에 불과하다는 생각이 듭니다. 참으로 안타까운 일입니다.

결론

여기까지입니다. 이 종료 문제가 Firefox 65.X 또는 이후 버전에서 매끄럽게 해결되기를 바랄 뿐입니다. Firefox 내부 구조를 깊이 파헤치지 않은 상태에서의 저의 추측으로는, 새로운 작업 관리자나 개편된 메모리 관리 방식과 관련이 있는 것 같습니다. 가비지 컬렉션이나 캐싱이 비정상적으로 동작하는 느낌이 듭니다. 물론 이것은 어디까지나 추측일 뿐입니다.

지난 몇 년간 Firefox는 많은 변화를 거쳤지만, 그중 상당수는 완전히 잘못된 방향이었습니다. 하지만 Australis와 WebExtensions 관련 논란에도 불구하고 우리에게는 Firefox가 여전히 필요합니다. 현재 시장에서 실질적으로 진행되고 있는 브라우저 독점은 정말 나쁜 일이고, 끔찍한 일이니까요. 수많은 결함에도 불구하고 Firefox는 여전히 선택지 중 가장 낫고 덜 짜증나는 브라우저입니다. 웹 생태계 전체를 놓고 보면 그다지 칭찬할 만한 상황은 아니지만, 그것이 현재의 현실입니다. 이 글이 여러분의 문제 해결에 도움이 되었기를 바랍니다. Firefox 65의 종료가 느리다면 ESR 버전을 임시방편으로 고려해 보세요. 여기까지입니다.

감사합니다.