많은 사람들이 제가 질문할 문제의 영향을 느끼기 때문에 페이지 파일을 비활성화하는 방법을 묻습니다. 대신 페이지 파일을 비활성화하지 않고 문제를 해결하고 싶습니다.
Windows에는 페이지 아웃이 필요할 수 있다고 생각되는 페이지 파일 RAM에 저장할 수 있는 기능이 있습니다. 이론적으로는 이는 긴급 상황에서 휴지통을 버리는 것을 방지하는 데 도움이 되지만 저렴한 노트북과 같이 느린 HDD를 사용하는 시스템을 사용하는 사람들에게는 매우 짜증나는 일입니다.
예를 들어 내 현재 컴퓨터는 현재 4.8GB의 RAM을 사용하고 있지만 현재 "커밋 충전"은 약 8GB입니다.
sysinternal 도구를 사용하여 페이지 파일 내용의 대부분이 RAM에 있는 항목의 선점형 복사본이라는 사실을 알아냈습니다. DO는 부족해 보이지만(RAM이 8GB이므로 61% 사용 중입니다) RamMap을 사용합니다. RAM 사용량의 대부분은 "대기" 메모리이고, "대기" 메모리의 대부분은 Windows 캐시(파일을 더 빠르게 로드하는 캐시)라는 것을 알았습니다. 거대한 덩어리는 게임의 사운드 파일인 바이너리 파일입니다.
현재 무슨 일이 벌어지고 있는지: 게임을 합니다... Windows에서 게임을 RAM에 로드하고 다른 항목을 페이지 파일에 복사한 다음(게임 성능이 저하됨) 게임을 중지합니다. Windows에서는 게임 파일을 RAM에 캐시된 상태로 둡니다. RAM 사용량이 높고 페이지 파일에 계속 더 많은 내용을 추가하여 RAM이 부족할 것으로 예상하고 이로 인해 매우 나쁜 품질의 HDD에서 지속적으로 I/O를 수행하므로 속도가 느려집니다.
하지만 앱별 실제 RAM 사용량, 현재 실행 중인 앱, 프로세스, 커널 및 사용된 공유 항목의 커밋 요금만 보면 실제 RAM 사용량은 RAM 및 페이지 파일을 포함하여 2.5GB여야 합니다.
그래서 Windows에 캐시하지 말라고 지시하거나(캐싱이 좀 멋지네요) 페이지 파일을 비활성화하는 대신 실제로 필요한 경우가 아니면 페이지 파일을 사용하지 말라고 지시하고 싶었습니다(예: 물리적 RAM 사용 - 대기) 물리적 RAM 사용량 > 물리적 RAM의 80%).
내가 어떻게 하는지 아시는 분 있나요?
답변1
많은 조사 끝에 제가 요청한 것은 문자 그대로 불가능하다는 것을 알게 되었습니다. Windows를 더 나은 동작으로 조정할 수는 없으며, 할 수 있는 최선의 방법은 문자 그대로 페이지 파일을 완전히 비활성화하는 것입니다.
페이지 파일을 비활성화하면 대부분의 성능 문제가 해결되고(그리고 몇 가지 다른 문제가 발생함) 효과가 있었지만 그만한 가치가 있었습니다.
답변2
이렇게 하면 성능이 더 나빠질 것 같습니다. 양보할수록 디스크가 느려집니다. 즉, 디스크 캐시로 사용할 수 있는 메모리를 최대한 많이 확보하는 것이 필수적입니다. 이는 RAM에서 액세스되지 않는 항목을 제거해야만 가능하며 해당 항목을 페이지 파일에 기록해야 합니다.
Windows가 캐싱을 위해 더 많은 RAM을 만들기 위해 페이지 파일을 사용하지 않은 경우 캐싱 감소로 인해 더 많은 디스크 I/O가 필요할 것입니다. 그러면 성능이 더 나빠질 수 있습니다.
Windows는 나쁜 상황을 최대한 활용하고 있습니다. Windows 메모리 관리 시스템(Vista 이상)을 설계한 사람들은 자신이 수행하는 작업을 정확히 알고 있었으며 최신 하드웨어의 페이징 시스템 설계 분야의 선도적인 전문가입니다. 당신도 나도 그들보다 더 잘 알지 못합니다. 그들은 스위치를 켜서 고칠 수 있는 중대한 잘못을 저지르지 않았습니다. 죄송합니다. 마법의 "더 빠르게 이동" 버튼은 없습니다.
그건 그렇고, 최신 SSD는 상당한 쓰기 내구성을 가지고 있습니다. 따라서 RAM을 추가할 수 없다면 페이지 파일에 작고 저렴한 SSD를 추가하는 것은 무리가 아닙니다. 분명히 기본 파일을 SSD에 보관하면 더 많은 차이가 생길 것입니다.
답변3
안타깝게도 이 작업을 수행할 수 없습니다. 기본적으로 페이지 파일이 있을 수도 있고 없을 수도 있습니다. 페이지 파일이 저장되는 위치와 크기를 선택할 수 있지만 무엇을 교체할지에 대한 알고리즘을 제어할 수는 없습니다.
나는 당신이 바보이고 Microsoft 개발자가 항상 옳다는 등 실망스러운 답변을 받았을 것이라고 확신합니다.
기본적으로 Windows는 페이지 파일에 항목을 저장하는 것보다 대기 메모리(읽기 캐시)를 선호하도록 프로그래밍되어 있습니다. 대기 캐시에 있는 데이터를 읽고 싶을 가능성이 있고 그런 일이 발생하면 성능이 향상된다는 생각이었습니다.
나는 이것에 별로 동의하지 않습니다. 내 의견은 라이브 데이터를 페이지 파일로 바꾸는 경우 시스템이 어느 시점에서 해당 데이터를 읽고 싶어하는 것은 "필연적"이며, 그렇게 하면 지연이 발생할 것입니다. 페이지 파일에서 읽었습니다. 또한 페이지 파일에서 읽는 것은 파일 시스템에서 직접 읽는 것보다 오버헤드가 더 높습니다.
예를 들어 내 시스템에서는 Windows가 항상 Nvidia 다중 디스플레이 절전 도구를 페이지 아웃합니다. 이유는 모르겠습니다. 알고리즘의 어떤 항목이 해당 앱을 선택하게 하면 RAM 사용률이 5%만큼 낮더라도 페이지가 아웃됩니다.
내 의견은 페이지 파일은 기본적으로 swappiness=1 linux sysctl과 유사한 재해 방지 목적으로만 사용해야 한다는 것입니다. 기본적으로 귀하의 질문에서 요청한 것과 동일합니다. 본질적으로 창에서 중요한 램 사용량의 유일한 부분은 "사용 중" 및 "수정"이고, 수정된 것은 분명히 데이터를 덤프해야 하는 쓰기 캐시입니다. 디스크를 지우기 전에 대기 캐시를 지워도 부정적인 결과는 없습니다.
나는 32GB Windows 시스템에서 상당한 양의 테스트를 수행했으며 페이지 파일을 활성화함으로써 성능이 향상된다는 증거를 전혀 보지 못했습니다. 그러나 페이지 아웃하기로 선택한 앱을 사용하려고 할 때 성능 손실이 발생하는 것을 보았습니다. 지연.
어떤 방향으로 가야할지에 대한 명확한 대답은 시스템 안정성이 주요 목표라면 페이지 파일을 활성화하고 크기를 최소 8GB로 설정하는 것입니다. 성능이 목표라면, 특히 RAM이 32GB 이상인 경우 반드시 페이지 파일을 비활성화하십시오.