"Pages Input / sec는 볼 카운터이지만, 윈도우가 * nixes처럼 페이지 파일을 사용하지 않기 때문에"스왑 "에 대해 걱정하지 않아도됩니다.
먼저 Windows 페이지가 나오지 않는 것을 이해해야합니다. 나는 자신을 더 잘 말할 수 없기 때문에 Eric Lipperts 블로그 게시물 (약간 편집 됨) 의 관련 부분을 인용 할 것입니다.
"RAM은 단순히 성능 최적화로 볼 수 있습니다. RAM의 데이터에 액세스하는 경우 정보가 광속에 가까운 전기장에 저장되는 경우 디스크의 데이터에 액세스하는 것보다 정보가 엄청나고 무겁게 저장되는 것보다 훨씬 빠릅니다. 철 금속 분자
운영 체제는 프로세스가 가장 자주 액세스되는 스토리지 페이지를 추적하고 RAM에이를 복사하여 속도를 높입니다. 프로세스가 현재 RAM에 캐시되지 않은 페이지에 해당하는 포인터에 액세스 할 때 운영 체제는 "페이지 오류"를 수행하고 디스크로 이동하며 디스크에서 RAM으로 페이지를 복사하여 합리적인 가정을 만듭니다. 곧 다시 액세스 할 예정입니다.
운영 체제는 또한 읽기 전용 리소스 공유에 매우 현명합니다. 두 프로세스가 모두 같은 DLL에서 동일한 코드 페이지를로드하는 경우 운영 체제는 두 프로세스간에 RAM 캐시를 공유 할 수 있습니다. 코드는 어느 쪽 프로세스로도 변경되지 않으므로 아마도 RAM의 중복 페이지를 공유하여 저장하는 것이 합리적입니다.
그러나 영리한 공유에도 불구하고 결국이 캐싱 시스템에는 RAM이 부족합니다. 이러한 상황이 발생하면 운영 체제는 곧 다시 액세스 할 가능성이 가장 적은 페이지를 추측하고 변경된 경우 디스크에 기록하며 다시 액세스 할 가능성이 높은 무언가를 읽을 수 있도록 RAM을 비 웁니다. 곧.
운영 체제가 잘못 추측하거나, 또는 자주 실행되는 모든 페이지를 모든 실행중인 프로세스에 저장하기에 충분한 RAM이없는 경우 시스템은 "스 래싱"을 시작합니다. 운영 체제는 고가의 디스크 스토리지를 쓰고 읽는 데 모든 시간을 소비하며 디스크는 지속적으로 실행되며 아무런 작업도 수행하지 않습니다.
또한 "RAM 부족"은 "메모리 부족"오류가 거의 발생하지 않음을 의미합니다. 스토리지가 실제로 디스크에 있다는 사실의 전체 비용이 오류와 관련이 있기 때문에 오류 대신 성능이 저하됩니다.
이것을 보는 또 다른 방법은 프로그램이 소비하는 총 가상 메모리 양이 실제로 성능과 크게 관련이 없다는 것입니다. 관련이있는 것은 총 가상 메모리 사용량이 아니라 오히려 (1) 다른 프로세스와 공유하지 않는 메모리 양, (2) 일반적으로 사용되는 페이지의 "작업 집합"의 크기 및 ( 3) 모든 활성 프로세스의 작업 세트가 사용 가능한 RAM보다 큰지 여부.
이제 "메모리 부족"오류가 일반적으로 실제 메모리 용량이나 사용 가능한 스토리지 용량과 관련이없는 이유는 분명해야합니다. 거의 항상 주소 공간에 관한 것입니다. 32 비트 Windows에서는 비교적 작고 쉽게 조각화됩니다. "
몇 가지 추가 사항 :
- dll 및 프로그램 파일은 항상 디스크에 있으므로 절대로 페이징되지 않습니다 (물리적 램이 부족할 때 일반적으로 사용 가능한 첫 페이지).
- 사용 가능한 페이지 테이블 항목이 부족하거나 다른 메모리 문제보다 메모리를 심하게 조각화하는 것이 훨씬 더 어렵습니다 (이미 언급 한 전반적인 성능 저하 이외)
- 페이지 파일없이 실행하더라도 여전히 페이지 오류가 발생할 수 있습니다
- 일반적으로 커밋 된 메모리를 보면 프로세스가 메모리를 사용하는 방법에 대해 더 많이 알 수 있습니다.
Windows에서 메모리 관리가 작동하는 방법에 대한 전체 그림을 보려면
Windows NT의 가상 메모리 관리자
메모리 문제가 있다고 생각되면 먼저 Windows 메모리 문제 해결에 대한 프레젠테이션을 보는 것이 좋습니다.
다음은 메모리 조각화 덕분에 때때로 "메모리 부족"이 발생하는 이유에 대한 훌륭한 설명입니다.
참조 물리적 메모리 : 윈도우의 한계를 밀어
가상 메모리, 메모리 조각화 및 누출, WOW64에 대한 추가 정보
RAM, 가상 메모리, 페이지 파일 및 그 모든 것 (Microsoft 지원)
최신 정보:
Windows 10은 메모리와 약간 다른 작업을 수행하며 시간이 지남에 따라 "시스템 및 압축 메모리"라는 프로세스가 표시됩니다. Windows 10은 "압축 저장소"를 페이징 아웃 목록에 추가합니다. 이 램은 시스템이 소유 한 USER 메모리입니다 (일반적으로 시스템에는 커널 메모리 만 있음).이 메모리는 평균적으로 약 30 % 감소되도록 압축됩니다. 이렇게하면 더 많은 페이지를 메모리에 저장할 수 있습니다 (70 % 더 많은 공간을 가진 수학을하는 사람들을 위해) 메모리에 여전히 압력이있는 경우 압축 저장소의 페이지 (사용자 모드 시스템 프로세스 공간)를 수정 된 페이지에 배치 할 수 있습니다. 그런 다음 실제 페이지 파일에 쓸 수있는 목록 (압축). 시스템은 그들이 시스템 사용자 모드 공간에서 왔으며 압축되어 상점에 다시 넣으려고하지 않음을 알 수 있습니다. 따라서 Windows 10 시스템에서는 시스템이 램을 흡입하는 것처럼 보일 수 있지만 실제로는 램을보다 효율적으로 사용하려고합니다. Mac 사용자는 2013 년 이후 유사한 기능을 사용하고 있으며 최신 버전의 Linux 커널은 메모리 압축 버전을 사용합니다. 메모리를 절약하는이 방법은 더 좋을뿐만 아니라 이미 다른 운영 체제에서 일반적입니다.