Windows에서 프로세스를 종료하거나 여유 RAM이 있어도 더 많은 메모리를 할당할 수 없는 이유

Windows에서 프로세스를 종료하거나 여유 RAM이 있어도 더 많은 메모리를 할당할 수 없는 이유

이 질문은 이전 질문에 이어집니다.Windows 7에서 메모리 사용량을 정확하게 분석하려면 어떻게 해야 합니까?

실제 프로세스가 물리적 메모리(개인 작업 세트)의 약 40%만 소비하고 나머지는 운영 체제에서 알 수 없는 방식으로 소비하는 시스템에서 커널이 여전히 약 800MB의 제로 메모리가 있어도 프로세스가 더 많은 메모리를 할당하는 것을 허용하지 않는 이유는 무엇입니까? 메모리?

메모리

운영 메모리를 100% 활용할 수 있도록 커널 설정을 변경할 수 있습니까? 현재 작업 관리자에서 메모리 사용량이 80%에 도달하면 커널은 마치 100%인 것처럼 작동합니다. 왜냐하면 응용 프로그램이 충돌하기 시작하고 메모리를 할당할 수 없는 시점이기 때문입니다. 내가 가지고 있는 모든 메모리를 최대 100%까지 활용할 수 있도록 이 20%를 어떻게 해제합니까? 왜 이 20%가 "예약"되어 있으며 그 목적은 무엇입니까? 시스템은 Windows 7 64비트이고 총 램은 4GB입니다. 성능상의 이유로 스왑이 비활성화되었습니다. (하드 드라이브 속도가 너무 느리고 스왑을 활성화하면 컴퓨터를 거의 사용할 수 없게 됩니다.)

답변1

개인 작업 세트는 프로세스 메모리 전체가 아닙니다.

전용 바이트, 작업 세트, 가상 크기

가상 크기는 프로그램을 실행하는 데 필요할 수 있는 총 메모리 양입니다. 많은 프로그램은 자신에게 할당된 가상 메모리를 모두 사용하지는 않지만 사용자가 요청하는 작업을 수행하기에 충분한지 확인하기 위해 이를 요청합니다. 또한 메모리 매핑된 파일 및 메모리로 수행하기 쉬운 기타 작업(공유 메모리 공간, IPC)에도 사용되지만 개인 메모리를 요청하는 프로세스와 엄격하게 관련되지는 않습니다.

이것이 작동하려면 OS는 다음 중 하나를 수행해야 합니다.

  • 사용 가능한 메모리에 대한 보증 제공
  • 메모리 요청을 거부합니다(대부분의 경우 애플리케이션 충돌/종료가 발생합니다).

일반적으로 시스템은 사용되지 않은 가상 메모리를 페이지 파일에 할당한 다음 실제로 사용되는 부분만 실제 RAM을 차지합니다. 그러나 페이지 파일을 비활성화하면 OS가 이러한 보장을 제공하기 위해 물리적 메모리를 사용하도록 강제하게 됩니다. 이는 다른 프로세스에 할당할 수 없는 제로 메모리 페이지가 많이 발생하게 된다는 것을 의미합니다.

페이지 파일이 있는 경우 프로세스에는 실제 메모리 크기 Working SetPrivate Bytes크기 사이의 어딘가만 필요합니다. 페이징 파일을 비활성화하면 Windows~ 해야 하다전체 Virtual Size메모리 양을 할당하거나 메모리 요청을 거부하세요. (Windows의 리소스 모니터에서는 CommitWindows가커밋 중해당 가상 메모리 양을 프로세스에 할당합니다.

답변2

리소스 모니터에는 실제로 사용 가능한 메모리가 있는지 표시되어야 합니다.

리소스 모니터

또한 참조하십시오8GB RAM 시스템에서 페이지 파일을 제거하면 어떤 이점이나 단점이 있습니까?

관련 정보