Memory Issue Of Firefox

파이어폭스가 3.0으로 올라오면서 메모리 관리력이 증가했다고 들었으나 근래의 내 경험은 그렇지가 않다. 이 글은 파이어폭스 메모리 문제에 대한 기록이다.

파이어폭스의 메모리 사용량

20 Apr 2009, 09:41 +0900

파이어폭스가 3.0으로 버전을 올리면서 이전 버전(1.5)에 비하여 메모리 관리 능력이 많이 좋아졌다고 한다. 예를 들면, 동시에 여러 탭을 열었을 때 메모리 사용량의 증가율이라든지, 다시 탭을 닫았을 때 메모리를 반환하는 기능이라든지… 여러 탭을 열었다 닫았다 하거나 심지어는 열 개 이상의 탭을 항상 열어놓고 사용하는 사용패턴을 가지고 있는 내게는 이런 이슈가 상당히 중요하지 않을 수 없다.

리눅스 배포본의 수준이 좋아져서인지 아니면 단지 내가 게을러져어인지는 잘 모르겠는데, 파이어폭스를 비롯하여 핵심, 중요, 개발속도가 빠른, 관심있는 프로젝트/프로그램에 대하여 릴리즈를 지속적으로 감시하고, 최신 릴리즈를 직접 컴파일하여 사용하는 사용패턴은 이제 사라졌다. (예전에는 커널을 비롯하여 WindowMaker, Netscape/Mozilla/Firefox, 등의 중심 프로그램들과 일부 유틸리티 들은 항상 최신의 것을 직접 컴파일하여 사용하곤 했다.)

말이 길었는데, 핵심은 이렇다. 근래의 습성에 따라 우분투 배포본에 포함된 버전의 파이어폭스 3.0을 사용하는데 있어서 아직도 메모리 사용량의 문제가 있다는 것이다.

  • 일단, 브라우져를 사용하다보면 메모리 사용량이 수 백 메가바이트 수준으로 올라가면서 창의 반응이 멈추기를 반복하며, 심지어는 극단으로 치달아 시스템의 메모리를 모두 점유해 버린다. (참고로 내 노트북의 메모리는 3GB이고 그 중 다른 응용프로그램이 사용하는 양을 제하면 2GB정도가 자유롭다.)
  • 초기에는 플래시를 의심해보기도 하고…
  • 다중탭의 패턴을 의심해보기도 하고…
  • 원초적으로 메모리 관리 기능을 의심하여 캐시를 죽이고 써보기도 했다.

그런데, 캐시죽이기는 잠깐 효과있어 보이기도 했으나 이내 실패로 돌아감.

일단 문제의 발단이랄까? 최초의 상황은 이와 같다.

GreaseMonkey 관련 시험

근래의 시험:

이런 저런 웹 포스팅을 살펴보면 파이어폭스 자체의 메모리 관리 능력을 의심하는 경우는 거의 없으며 대체로 파폭 관련 메모리 문제는 실제로 물리적 램의 용량과의 싸움이거나 이런 저런 확장기능의 문제로부터 기인한다는 의견이 지배적이다.

그래서 의심스러운 확장기능 들을 제거하거나 불능화하고 시험해봤으나 눈에 보이는 변화는 없었다. 그런데 이게 왠 일? 의심하지 않았던 GreaseMonkey를 불능화하고 나니! 현재까지 안정적으로 동작중. 현재 상태는,

  • 4월 17일 하루 중일 돌면서 오류나 멈춤현상 없음. 아래 명령으로 잡아봤을 때 가장 크게 증가하는 토막의 크기가 200MB 수준에서 머물렀음 (기존 시험에서는 900MB 이상으로 올라가기도 함)
  • 4월 20일 오전에 확인하는 시점까지 같은 상태를 유지하며 문제가 없었음.

현재로써의 가능성:

  • GM 자체의 문제일 가능성 : 다른 환경(다른 PC)에서는 문제가 잘 나타나지 않는 것을 떠올려보면 GM의 문제가 아닐 가능성이 큼
  • 내가 만든 GM 스크립트의 문제 : GM의 동작방식에 대한 이해가 부족한 내가 만든 부분이 일으키는 문제?
watch -d 'pmap -x ‘pidof firefox` 2>/dev/null|grep " rw"|grep -v "\.so"|sort -k2 -r’
따로 명시하지 않는 한에서 이 사이트의 모든 콘텐츠는 다음의 라이선스를 따릅니다: Creative Commons Attribution-NonCommercial 3.0 License