Windows 작업 관리자가보고 한 총 메모리 사용량이 모든 프로세스의 메모리 사용량 합계보다 훨씬 높은 이유는 무엇입니까? [복제]


98

작업 관리자는 총 6GB의 90 %로 총 메모리 사용량을 표시하지만 단일 프로세스에서 250MB 이상의 RAM을 사용하지 않으며 실행중인 모든 프로세스의 RAM 사용량의 합계가 2GB 미만입니다. 난 노력 했어:

  • Windows 8 작업 관리자의 "프로세스"탭에서 "메모리"열의 숫자를 확인하십시오.
  • 작업 관리자의 "세부 사항"탭에서 "작업 세트", "개인 작업 세트", "공유 작업 세트"및 "커밋 크기"열을 살펴 봅니다.
  • 프로세스 탐색기에서 유사한 메모리 관련 열을 살펴 봅니다.
  • Sysinternals RAMMap을 실행하려고 시도했지만 메모리 부족 문제가 발생하면 시작시 충돌이 발생합니다. 문제를 해결하면 RAMMap이 정상적으로 실행되지만 그 시점이 너무 늦습니다.

모두 꽤 적은 양의 메모리가 사용되고 있음을 보여줍니다.

인터넷을 통해 다양한 버전의 창 으로이 질문의 변형을 요구하는 사람들이 많이 있습니다. 그들 중 일부는 종종 소프트웨어를 다시 설치하여 메모리 부족 문제를 해결합니다. 때때로 처음부터 창을 다시 설치하여. 나는이 모든 사람들이 공유하는 일반적인 질문에 대한 답변을 찾고 있는데 다른 곳에서는 대답하지 않는 것 같습니다.

  1. 사용 된 총 메모리가 목록에있는 모든 프로세스에서 사용한 메모리보다 훨씬 높은 이유는 무엇입니까?
  2. 어떤 프로그램이 메모리를 사용하는지 모르면서 메모리가 사용되었음을 Windows가 어떻게 "알 수"있습니까?
  3. 어떤 프로세스가 메모리를 사용하지만 목록에 표시되지 않을 수 있습니까?
  4. 사용 된 메모리에 대한 자세한 정보를 제공 할 수있는 소프트웨어가 있습니까?

내 문제와 관련된 세부 정보 : Windows 8.1로 업그레이드 한 후 로그인하자마자 문제가 발생합니다. 프로그램을 실행하자마자 메모리가 부족합니다. 프로세스 탐색기에서 iexplore.exe의 여러 인스턴스가 실행되고 있으며 자동으로 시작된 것으로 나타났습니다. 하나의 특정 인스턴스는 몇 MB의 RAM 만 사용했지만 수억 개의 페이지 결함을 보여주었습니다. 변덕스럽게도 특정 프로세스를 중단하고 메모리 사용량이 즉시 70 % 감소했습니다.

하나의 특정 질문으로 연결 :

  • 몇 MB 만 사용했을 것으로 추정되는 프로세스 하나를 죽이면 어떻게 몇 GB를 확보 할 수 있습니까?

그리고 (아마도 어려운) 보너스 질문 :

  • Windows를 다시 설치하지 않으면 컴퓨터를 다시 부팅 할 때마다이 문제를 해결하지 않으려면 어떻게해야합니까?

3
커널 메모리도 사용량에 포함됩니다. RAMMAp의 포스트 사진 : blogs.technet.com/b/askperf/archive/2010/08/13/...
magicandre1981

2
질문에 "메모리가 부족한 이유는 무엇입니까?"
surfasb

이 질문은 구체적으로 대답 할 수 없습니다. 설치된 프로그램을 나열하십시오. 또는 성능 모니터에서 실행중인 프로세스 덤프.
surfasb

1
실제로 컴퓨터를 완전히 종료 / 재시동합니까? 아니면 하이브리드 종료를 사용합니까 (Windows 8의 기본값)? Windows 8로 전환 한 후 비슷한 문제가 발생했습니다. 컴퓨터를 껐다 켠 후에도 한 드라이버가 점점 더 많은 실제 RAM을 가져 와서 돌려주지 않았다고 가정합니다. 몇 주 안에 몇 기가 바이트에 축적되었습니다. 이제 며칠마다 "다시 시작"을 클릭하거나 "종료"를 클릭하는 동안 Shift 키를 누르면 PC가 실제로 종료됩니다.
Robert

2
제 경우에는 "동적 메모리"를 활성화했기 때문에 Hyper-V가 예약 한 "드라이버 잠금"메모리였습니다. 모든 VM을 중지하고 설정을 비활성화 한 다음 다시 시작해야했습니다. RAMMap 제안에 감사드립니다.
Dagelf

답변:


7

그건 그렇고, "메모리"라는 용어를 사용하지 마십시오. 많은 혼란을 야기합니다. 실제 메모리를 의미하는 경우 "실제 메모리"또는 "RAM"이라고 말하십시오. 가상 메모리를 의미한다면 그렇게 말하십시오. 백업 상점을 의미한다면 그렇게 말하십시오.

사용 된 총 메모리가 목록에있는 모든 프로세스에서 사용한 메모리보다 훨씬 높은 이유는 무엇입니까?

운영 체제는 선택하지 않는 한 실제 메모리 (RAM)를 낭비하지 않기 때문입니다.

어떤 프로그램이 메모리를 사용하는지 모르면서 메모리가 사용되었음을 Windows가 어떻게 "알 수"있습니까?

사용중인 프로그램이 없기 때문입니다. 예를 들어, 방금 종료 한 프로그램의 코드를 포함하는 메모리를 고려하십시오. 사용중인 프로그램이 없습니다. 그러나 메모리는 사용 가능하지 않고 유용 할 수있는 데이터를 포함하므로 (프로그램이 다시 실행되는 경우) 사용됩니다.

어떤 프로세스가 메모리를 사용할 수 있지만 이제 목록에 표시됩니까?

프로세스에서 사용되지 않습니다.

사용 된 메모리에 대한 자세한 정보를 제공 할 수있는 소프트웨어가 있습니까?

RAMMap이이 를 수행 할 수 있습니다.

두 가지 가능성이 있습니다. RAM을 사용하거나 낭비 할 수 있습니다. 분명히 첫 번째가 더 좋습니다. 4GB 시스템은 현재 2GB를 사용하여 내일 6GB를 사용하지 않습니다. "지금 무료로 원하므로 나중에 사용할 수 있습니다"라고 생각하면 잊어 버리십시오. 이제 사용할 수 하고 나중에 사용할 수 있습니다.

몇 MB 만 사용했을 것으로 추정되는 프로세스 하나를 죽이면 어떻게 몇 GB를 확보 할 수 있습니까?

실제 메모리가 아닌 백업 저장소가 부족합니다. 사용 가능한 실제 메모리는 충분하지만 OS가 백업이 필요할 수있는 가상 메모리를 계속 할당하기에는 백업 저장소가 충분하지 않습니다.

프로세스는 몇 MB의 실제 메모리 만 사용했지만 OS는이를 위해 몇 GB의 백업 된 가상 메모리를 예약해야했습니다. 예를 들어, 프로세스가 2GB 파일의 쓰기 가능한 개인 메모리 매핑을 생성한다고 가정합니다. OS는 해당 매핑의 모든 단일 바이트에 쓸 수 있으므로 프로세스에 2GB의 백업 된 가상 메모리를 예약해야합니다. 또한 절대로 그들에게 쓰지 않을 수도 있습니다. 적절한 크기의 페이징 파일이 필요한 이유입니다.

최신 운영 체제는 절대 현금화되지 않는 많은 수표 (유망 백업 저장소)를 작성합니다 (RAM 필요). 은행에 많은 돈이 있더라도 (수표가 많은 유망한 상점) 수표를 계속 쓸 수는 없습니다 (무료 RAM) 현금을 얻거나 얻지 못할 수있는 많은 수표를 이미 작성한 경우 (백킹 상점으로 약속 됨) 당신이 가진). 페이징 파일은 백업 저장소를 추가하여 OS가 쓰기 검사를 계속 유지할 수 있도록합니다.


14
추신 : 나는 RAM과 VM의 차이점을 알지 못하기 때문에 "메모리"라는 단어를 사용하고 있지만 컴퓨터는 실제로 어떤 정보도 제공하지 않고 "메모리"가 부족하다는 것을 알려주기 때문에 방법. (나는 이전 의견에서 지정한 이유로 RAM을 의미한다고 가정하지만 확실하지는 않습니다.) 오히려 정교한 금융 은유보다 실제 어휘 (필요한 경우 조회 할 수 있음)를 사용하고 싶습니다.)
Josh

91
-1 답변과 모든 주석을 읽은 후에도 총 사용 메모리가 나열된 모든 프로세스에서 사용하는 메모리보다 훨씬 높은 이유는 여전히 명확하지 않기 때문입니다.
Bennett McElwee

6
어떤 프로그램도 메모리를 사용하지 않더라도 메모리가 "사용되는"이라는 용어는 "사용 된"및 "무료"와 같은 단어의 일반적인 의미와는 다릅니다. 아마도 Microsoft의 용어 일 것입니다. 어쨌든, 예를 들어 RAM의 50 %가 현재 실행중인 프로그램에서 사용되고 25 %는 실행중인 프로그램에서 사용되지 않지만 향후에는 유용하지만 폐기 될 수있는 데이터를 포함한다고 가정하십시오. 이들을 함께 추가하고 "메모리 : 75 %"를 표시하면 유용한 정보가 사용자에게 전달되지 않습니다. 나는 그것이 광범위한 혼란의 근원이라고 생각합니다.
Bennett McElwee

2
@BennettMcElwee 메모리 사용량을 하나의 간단한 숫자로 줄이는 좋은 방법은 없지만 사용자는이를 고집합니다. 이로 인해 개발자는 불편한 위치에있게됩니다. 항상 도움이되지 않거나 숫자를 제공하지 않는 숫자를 제공 할 수 있습니다. 대부분의 OS 및 GUI 개발자는 첫 번째 옵션을 선택합니다. 많은 혼란을 야기하는 숫자를 제공합니다. 귀하의 질문이 "더 많은 RAM으로 인해 시스템이 더 잘 작동 할 것입니다"라면 대답은 전문가에게조차도 말하기가 매우 어렵습니다.
David Schwartz

2
@DavidSchwartz 귀하의 답변은 그러한 설명을하지 않으며 단순히 설명 만합니다. 특정 청구를 뒷받침 할 수있는 링크를 제공 할 수 있습니까? "실제 메모리 XX %"를 해석하여 물리적으로 설치된 RAM의 XX %가 현재 사용되고 있으며 다른 프로세스에서 사용할 수 없음을 의미합니다. 나는 90 % 이상으로 시스템이 잠기기 쉽다는 사실에 의해 검증되고 응용 프로그램이 100 % 이상으로 메모리를 할당하려고 시도하면 완전히 충돌합니다. 내 경험상 이것은 대부분의 시스템이 작동하는 표준 체제가 아닙니다.
John Neuhaus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.