64비트 Windows의 기본 설정이 여전히 큰 페이지 파일을 암시하는 이유는 무엇입니까?

64비트 Windows의 기본 설정이 여전히 큰 페이지 파일을 암시하는 이유는 무엇입니까?

내 질문은 64비트 Windows가 도입된 이후로 내 주변의 더 많은 사람들이 페이지 파일 관련 시스템 잠김에 빠지는 것 같다는 관찰에 근거합니다. 예를 들어, zeros(2e5)MATLAB에서 와 같이 간단한 것할당하다1600kB의 0이 아니라 160GB입니다. 64비트 주소 공간 덕분에 이 양을 처리할 수 있지만 RAM에서는 그렇지 않은 경우가 많습니다. (이와 같이 모두 메모리 할당을 줄이는 많은 예를 들 수 있습니다.) 결과적으로 Windows는 페이지 파일을 사용하고 디스크에 160GB의 0을 저장합니다. 그 후에만(또는 강제 종료 후) 시스템이 다시 응답하게 됩니다.

32비트 Windows에서는 최대 4GB의 주소 공간으로 이 문제가 대부분 방지되었습니다.

그렇다면 Microsoft가 여전히 기본적으로 대형 페이지 파일을 구성하는 이유는 무엇입니까? 내 관찰에 따르면 기본 크기는 RAM이 클수록 더 커지는데, 이는 엄청나게 비싼 SSD와 같이 정말 크고 빠른 드라이브가 없다면 실제로 의미가 없습니다. 그런 이유로 저는 64비트 Windows 설치 시 페이지 파일을 끄는 경향이 있습니다. 아니면 말아야합니까? 이 일을 하는 이유와 반대하는 이유는 무엇입니까?

답변1

Windows는 Linux처럼 메모리를 지연 할당하지 않으며 할당 가능한 메모리 양은 페이지 파일에 따라 다릅니다.

Linux에서는 메모리의 "희소한" 할당이 완전히 활용되지 않을 것이라는 가정이 있으므로 프로그램은 메모리가 물리적으로 고갈될 때까지 계속해서 메모리를 초과 할당할 수 있습니다. 프로그램이 실제로 할당된 메모리를 충족하지만 수요를 충족하기에는 RAM이나 스왑이 부족한 경우 프로세스 종료가 시작됩니다.

Windows는 이와 반대로 할당된 모든 메모리가 결국 사용된다고 가정하므로 실제 메모리 + 페이지 파일 크기가 충족될 때까지 모든 예약이 유지됩니다. 프로그램이 메모리를 할당할 수 있으면 이를 사용할 수 있습니다. 메모리를 할당할 수 없으면 RAM 및 페이지 파일 크기 제한에 도달한 것입니다.

페이지 파일을 비활성화하면 사용하지 않는 메모리를 할당하는 프로그램(즉, 페이지 파일로 가정)이 아직 "여유"가 있을 때 실행이 중단될 수 있습니다.

Windows 시스템에서 모든 RAM을 활용하려면 페이지 파일을 제공하여 시스템이 의도한 대로 작동하도록 해야 합니다.

답변2

페이지 파일은 OS에 두 가지 주요 이점을 제공하며 둘 다 64비트 OS의 영향을 크게 받지 않습니다.

  1. 페이지 파일은 커밋 제한을 늘립니다.

응용 프로그램이 메모리를 할당할 때 Windows OS는 최악의 시나리오에서도 사용할 수 있는 충분한 저장소를 확보할 것을 ​​약속하거나 약속합니다. 이 저장소는 RAM이나 페이지 파일에 있을 수 있습니다. 커밋 제한은 RAM 크기에 페이지 파일 크기를 더하고 작은 오버헤드를 뺀 값으로 정의됩니다. 페이지 파일이 없으면 커밋 제한은 RAM 크기보다 다소 작아집니다. 메모리 관리자는 할당된 총 메모리를 추적하여 커밋 제한을 초과하지 않도록 합니다.

페이지 파일이 없으면 커밋 제한은 OS가 실행되는 동안 늘릴 수 없는 하드 제한입니다. 기본 페이지 파일 구성을 사용하면 커밋 제한이 훨씬 더 커질 뿐만 아니라 필요할 때 페이지 파일을 확장하여 늘릴 수 있는 소프트 제한입니다.

Windows에서 커밋 제한에 도달하는 것은 나쁜 일입니다. 대부분의 응용 프로그램은 이러한 상황을 잘 처리하지 못하며 OS 자체도 이를 용인할 수 없는 경우가 많습니다.

  1. 페이지 파일은 RAM 사용량을 최적화합니다.

주어진 시간에 컴퓨터에는 오랫동안 액세스되지 않았으며 실제로 세션 중에 결코 액세스되지 않을 수도 있는 많은 양의 데이터가 포함될 가능성이 있습니다. 물론 메모리 관리자는 이 데이터가 얼마나 중요한지 알 수 없으므로 어딘가에 보관해야 합니다.

거의 사용되지 않는 데이터를 모두 고속 RAM에 저장하는 것은 이 소중한 리소스를 심각하게 오용하는 것입니다. RAM에 이러한 부담이 없다면 애플리케이션 사용과 캐싱 목적으로 더 많은 공간을 사용할 수 있을 것입니다. 캐싱은 최신 OS에서 정말 큰 문제이며 우수한 성능에 크게 기여합니다.

페이지 파일은 메모리 관리자가 거의 사용되지 않는 데이터를 오프로드하고 RAM을 이 임무에서 덜어줄 수 있는 장소를 제공합니다. 이를 수행하는 데 비용이 드는 것은 사실이지만 거의 사용되지 않는 데이터이므로 심각하지 않아야 한다는 점을 기억하십시오. 그리고 메모리 관리자는 이 비용을 최소화하기 위해 다양한 최적화 기능을 갖추고 있습니다.

하지만 이를 비용으로 생각하기보다는 성능에 대한 투자로 생각하세요. 돈으로 현명한 투자를 하는 것이 좋은 것처럼 메모리 관리자는 나중에 큰 배당금을 가져올 것이라는 기대로 페이지 파일을 사용하는 데 약간의 시간을 투자합니다. 일반적으로 작동합니다.

이것은 새로운 아이디어가 아닙니다. 이는 수년 동안 Windows 및 Linux에서 사용되었으며 그 이전에는 대형 컴퓨터 시스템에서도 사용되었습니다. 이는 수십 년에 걸쳐 최적화되어 검증된 진정한 원칙입니다.

결론적으로, Windows가 원하는 대로 페이지 파일을 관리하도록 하십시오. 디자이너들은 자신들이 무엇을 하는지 알고 있습니다. 불행하게도 Microsoft는 이를 사용자에게 제대로 전달하지 않았으며 많은 오해가 있습니다. 적어도 페이지 파일에 관해 인터넷에서 읽은 내용 중 상당 부분에는 심각한 오류가 포함되어 있습니다.

관련 정보