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

작업 관리자는 총 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를 다시 설치하지 않으면 컴퓨터를 다시 부팅 할 때마다이 문제를 해결하지 않으려면 어떻게해야합니까?


답변

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

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

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

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

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

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

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

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

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

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

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

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

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

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


답변