Chrome에서 RAM 사용을 제한 하시겠습니까?


22

몇 시간 / 일 동안 Chrome에서 여러 탭을 열어두면 일부 페이지가 많은 양의 RAM을 사용하여 페이징으로 인해 전체 OS (XP)가 응답하지 않는 지점까지 끝나는 것을 알 수 있습니다. 운이 좋으면 마지막으로 열린 URL 목록을 북마크에 추가하고 Chrome을 닫은 후 다시 시작할 수 있습니다. 내가 아닌 경우 Chrome을 종료해야하며 열린 URL 목록을 복구 할 수 있기를 바랍니다.

  • 왜 그런가요? 플러그인에서 메모리가 누출됩니까?
  • 단일 탭 / 페이지에서 설정된 양보다 많은 RAM을 사용하지 않도록 Chrome을 구성하는 방법이 있습니까?

고맙습니다.


당신은 얼마나 많은 RAM을 가지고 있습니까?
Baarn

@OverTheRainbow는 - - 왜 페이지 스누즈 고려하지 chrome.google.com/webstore/detail/...
PeanutsMonkey

4GB가 있습니다. 일부 웹 페이지가 500MB를 잡는 경우를 제외하면 충분합니다. Page Snooze 및 Session Buddy의 링크에 감사드립니다.
OverTheRainbow

답변:


-2

OS가 처리 할 수있는만큼의 RAM을 구입하도록 선택해야한다고 생각합니다. 웹에서 서핑 경험을 망칠 수 있기 때문에 Chrome의 RAM 사용을 제한해서는 안됩니다. 대부분의 시간 동안 인터넷을 서핑하기 위해 컴퓨터를 사용한다고 가정하면 Chrome에서 동시에 해당 탭을 "즐길 수있는"성능을 제공하기 위해 필요한 모든 리소스를 Chrome에 제공해야합니다.

모든 개별 탭의 RAM 사용량을 제한하는 방법이 없다고 생각하지만 Chrome의 사용량을 모두 제한 할 수 있습니다. 이봐:

/programming/192876/set-windows-process-or-user-memory-limit

내가 당신이라면 매끄러운 웹 서핑을 원한다면 오히려 그렇게하지 않을 것입니다.


16
사용중인 컴퓨터 (예 : 업무용 컴퓨터)의 내용을 제어 할 수없는 경우에는 실제로 해결책이 아닙니다.
Gnoupi

이 경우 RAM이 제한되어 있고 컴퓨터를 소유하지 않은 컴퓨터는 사용자가 소유하고 있기 때문에 '우선 순위'를 선택된 탭으로 설정하는 방법이 있다면 좋을 것입니다 (활성 탭은 대부분의 메모리를 가져옵니다). 비생산적인 탭 (열기 탭 수를 줄임)을 수정해야합니다.
WikiWitz

4
크롬은 RAM을 많이 소비하므로 RAM을 더 추가하는 것은 더 많은 나무를 불에 태우는 것과 같습니다.
JDuarteDJ

5
@WikiWitz, 귀하는 Chrome이 얼마나 많은 RAM을 사용하는지 과소 평가하고 있습니다. 16GB 실제 RAM이 있는데 여전히 충분하지 않습니다.
Pacerier

2
"대부분의 시간 동안 인터넷을 서핑하기 위해 컴퓨터를 사용한다고 가정하면"-이것은 중요한 주장 입니다. 모든 것이 크롬 북은 아닙니다.
Piskvor

12
  1. 크롬 렌더러가 정해진 양 이상의 메모리를 사용할 때 킬하는 Python 2.5 프로그램을 작성했습니다. 이 프로그램을 아래에서 실행합니다 watch. ( 파이썬에는 포함되어 있지 않은 psutil 모듈을 사용합니다 .)

    import sys, os, psutil
    
    if len(sys.argv) == 2:
        try:
            limit = int(sys.argv[1])
        except:
            limit = 200 # default 200MB
    else:
        limit = 200
    
    uid = os.getuid()
    for p in psutil.get_process_list():
        try:
            if (p.name == 'chrome' and any('type=renderer' in part for part in p.cmdline)
               and p.uid == uid):
                m = p.get_memory_info()
                #print p.pid,m, m.rss / 1024 / 1024, m.vms / 1024 / 1024
                if (m.rss / 1024 / 1024) > limit: # kill if rss is greater than limit
                    print 'Killed', p.pid
                    p.kill()
        except psutil.error.NoSuchProcess:
            pass
        except psutil.error.AccessDenied:
            pass
    
  2. 나는 세션 버디에 의존 크롬 복원에 실패 할 때 열려있는 탭을 복구 할 수 있습니다.


Chrome은 렌더러가 죽임을 어떻게 처리합니까? 렌더러가 종료 된 후 탭이 표시하는 동작은 무엇입니까? 아, 방금 세션 버디 의견을 보았습니다. 따라서 Chrome에서 때때로 복원하지 못합니다. 이런 일이 자주 발생합니까? 정말 고마워요!
Matthew

1
@Human 종료 된 렌더러 프로세스를 사용한 탭이 다운 된 탭이됩니다. 그러나 위의 스크립트는 이후 버전의 Chrome 12에서 잘 작동하지만 Chrome 12와 달리 확장 프로그램이 아닌 렌더러 프로세스에서 실행되는 확장 프로그램도 종료합니다.
Dan D.

@Human 복원 을 클릭하지 않으면 마지막 탭이 손실 될 수 있습니다 . 또한 Last Tabs파일 이 있어도 해당 파일에서 탭을 복원 할 수 없습니다. 오래 전에 형식을 결정하고 URL에서 URL을 추출하려고했습니다. 성공하지 못했습니다. 그리고 Chrome이 현재 세션의 탭을 저장하는 데 사용하는 이진 형식보다 SQLite에 대한 신뢰가 많으므로 SB가 더 좋습니다.
Dan D.

@ DanD.,이 스크립트는 안전합니까? Chrome 전체가 충돌합니까?
Pacerier

@Pacerier 예. Chrome이 다시 시작한 후에도 탭로드 단계가 지연되는 경우를 제외하고는 그렇지 않습니다.
Dan D.

4

내가 지금까지 본 유일한 것은 컨테이너 내부에서 크롬을 실행 하고 컨테이너 램을 제한 .

그러나 여기에는 몇 가지 중요한 경고가 있습니다.

  • dockerize 설정 및 실행 순서로 인해 크롬 실행이 복잡합니다.

  • 우선 Chrome은 이미 커널 컨테이너를 사용하여 스레드를 샌드 박스합니다. 따라서 컨테이너가 작동 할 수있는 일종의 루트 권한으로 컨테이너를 실행해야합니다. 이를 피할 수 있으며 연결된 컨테이너 모델이이를 수행합니다. (실제로 필요한 모든 것을 수행합니다)

  • 거의 확실하게 GPU 가속을 느슨하게합니다.

  • 오디오를 작동시키는 것은 복잡하지만 연결된 컨테이너 모델에서 처리됩니다.

  • 보증을 무효화 할 때 다른 문제가 발생하더라도 Chrome은 더 많은 램을 사용하지 않는다는 말을 심히 싫어하며 그에 따라 조치를 취합니다.

그러나 궁극적으로 효과가 있습니다.

나는이 램 제한을 미리 빌드 한 도커 이미지가없는 Electron Shell 응용 프로그램에 적용하여 관심을 가져야합니다.


주제를 벗어 났지만 Firefox는 제한된 하드웨어에서 잘 작동하지만 실제로는 그 대답을 고려하지 않습니다.


컨테이너가 cgroup 인터페이스 인 방법에 대해 더 자세히 알려면이 답변을 업데이트해야합니다. cgroup을 직접 사용 하여 동일한 작업을 수행 할 수 있습니다
ThorSummoner

1

반드시 플러그인 일 필요는 없습니다. 웹 페이지는 더 이상 정적이지 않습니다. 일부 웹 페이지에는 사소한 양의 비동기 활동이 있습니다. 플러그인에서 활동을 추가하면 알 수없는 내용이 있습니다.

내가 찾은 최선의 해결책은 웹 페이지를 죽이고 다시로드하는 것입니다. AFAIK에서는 웹 페이지가 사용하는 RAM의 양을 제한 할 방법이 없습니다.


1

TabsOutliner 확장 기능을 사용하면 컨텍스트와 현재 세션 목록에서 탭을 실제로 제거하지 않고도 탭을 쉽게 "종료"할 수 있습니다. 매우 유용한.

탭 아웃 라이너 확장


0

많은 양의 메모리를 사용하는 탭 프로세스를 종료하십시오 (플래시가있는 모든 것이 500MB 이상을 사용하는 경향이 있음을 알았습니다). 죽은 탭은 나중에 작업을 다시 시작하려고 할 때 다시로드 할 수 있습니다.


0

TabMemFree 는 자동으로 비활성 탭을 일시 중단합니다. 최소 15 분 동안 비활성 탭을 일시 중단하는 시간을 결정할 수 있습니다. 고정 된 탭을 무시하도록 지시 할 수도 있습니다.

탭 랭글러 (Tab Wrangler) 는 좀 더 많은 제어 기능을 원할 경우 비활성 탭을 자동으로 일시 중단시키는 또 다른 확장 기능입니다. TabMemFree와 마찬가지로 탭이 비활성 상태로 간주되기 전의 시간을 결정하고 고정 된 탭을 무시하도록 설정할 수 있지만 추가 탭을 잠그고 다른 컴퓨터간에 탭 설정을 동기화하는 추가 옵션이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.