Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

초당 하드 폴트(Hard Faults/sec)란? 원인과 해결 방법 완벽 가이드

하드 폴트(Hard Fault)는 현대 컴퓨터가 메모리 정보를 처리하는 과정에서 자연스럽게 발생하는 현상입니다. 하드 폴트는 메모리 블록을 물리 메모리(RAM)가 아닌 페이지 파일(가상 메모리)에서 다시 불러와야 할 때 발생합니다. 따라서 하드 폴트를 오류 상황으로 여길 필요는 없습니다. 다만, 하드 폴트가 비정상적으로 많이 발생한다면 해당 시스템에 물리 메모리(RAM)가 부족하다는 신호일 가능성이 높습니다.

초당 하드 폴트(Hard Faults/sec)란? 원인과 해결 방법 완벽 가이드

많은 사용자가 Windows 리소스 모니터(Resource Monitor)메모리 탭을 확인하다가 하드 폴트 수치를 보고 놀라곤 합니다. PC 사양과 실행 중인 작업에 따라 이 그래프에는 초당 수십 번, 심하면 수백 번의 하드 폴트가 표시될 수 있습니다. 이 글에서는 하드 폴트의 기술적인 배경과 함께 메모리 관리에 도움이 되는 실질적인 방법들을 자세히 살펴보겠습니다.

하드 폴트(페이지 폴트)란 무엇인가?

하드 폴트에 대해 검색해 보면 다소 혼란스러울 수 있습니다. 예전 Windows 버전에서는 하드 폴트를 페이지 폴트(Page Fault)라고 불렀고, 지금도 많은 웹 자료에서 페이지 폴트라는 용어를 사용하고 있기 때문입니다. 두 용어가 결국 같은 것을 가리킨다는 점만 기억하시면 됩니다.

단, 하드 폴트(구 페이지 폴트)를 소프트 페이지 폴트(Soft Page Fault)와 혼동해서는 안 됩니다. 소프트 페이지 폴트는 참조된 메모리 페이지가 메모리 내의 한 위치에서 다른 위치로 이동했을 때 발생하는 현상입니다.

반면 하드 폴트는 특정 프로그램의 메모리 주소가 주 메모리 공간에 더 이상 존재하지 않고, 페이징 파일로 내보내졌을 때 발생합니다. 이 경우 시스템은 RAM에서 데이터를 가져오는 대신 하드 디스크에서 누락된 메모리를 찾아야 합니다. 그럴 때마다 시스템은 속도 저하와 디스크 사용량 증가를 겪게 됩니다. 하드 폴트의 영향을 어느 정도 체감하는지는 PC의 나머지 구성 요소 성능에 크게 좌우됩니다.

하드 폴트 수치가 지속적으로 높으면 디스크 스래싱(disk thrashing)으로 이어지기 쉽습니다. 프로그램이 응답하지 않는 상태에서 하드 디스크가 오랫동안 최대 속도로 계속 돌아간다면 디스크 스래싱이 진행 중이라고 볼 수 있습니다. 다행히 요즘 대부분의 PC는 충분한 RAM을 갖추고 있어 몇 년 전만 해도 흔하던 디스크 스래싱은 많이 줄었습니다. 그러나 리소스가 제한적인 Windows 10 환경에서는 여전히 초당 하드 폴트가 많이 발생하는 경우가 드물지 않습니다. 특히 너무 많은 프로그램을 동시에 실행할 때 그렇습니다.

높은 하드 폴트 수치 해결 방법

시스템에서 초당 수백 건의 하드 폴트가 발생한다면 대체로 두 가지 원인 중 하나입니다. 어떤 프로세스가 리소스를 과도하게 점유하고 있거나, RAM 업그레이드가 시급한 경우입니다.

초당 하드 폴트(Hard Faults/sec)란? 원인과 해결 방법 완벽 가이드

일반적으로 RAM 용량이 클수록 초당 하드 폴트 발생 횟수는 줄어듭니다. 일부 사용자는 pagefile.sys 파일을 비활성화했다가 다시 활성화하여 하드 폴트 횟수를 줄였다고 보고하기도 했습니다. Windows는 기본적으로 페이징 파일을 사용하도록 설계되어 있습니다. 물론 페이징 파일 크기를 조정하거나 다양한 구성을 실험하고, 아예 비활성화해서 하드 폴트를 줄여볼 수도 있습니다. 하지만 페이징 파일을 관리하는 데 있어 이를 사용하는 시스템 자체보다 나은 관리자는 없습니다. 따라서 시스템이 필요한 만큼 디스크 공간을 동적으로 할당하도록 맡기는 것이 가장 좋습니다.

참고: 일부 프로그램은 페이징 파일을 사용하도록 설계되어 있어, 페이징 파일이 비활성화되면 정상적으로 작동하지 않을 수 있습니다.

RAM 추가하기

하드 폴트가 과도하게 발생한다면, 먼저 현재 설치된 Windows 버전을 원활하게 지원할 만큼 시스템에 RAM이 충분한지 확인하세요. 64비트 버전은 32비트 버전보다 거의 두 배의 메모리를 필요로 한다는 점을 유의해야 합니다. 최소 요구 사항에 미달한다면 RAM 스틱을 추가로 구매하거나, 기존 RAM을 더 큰 용량의 듀얼 채널 키트로 교체하는 것이 유일한 해결책입니다.

참고: RAM을 추가한 후에도 하드 폴트 수치가 비슷하더라도 놀라지 마세요. 이는 완전히 정상적인 현상이며 수치는 점차 낮아집니다. 초기에 하드 폴트가 증가하는 이유는 많은 프로그램과 프로세스가 처음으로 실행되기 때문입니다. 시스템이 아직 RAM에 정보가 저장될 기회가 없었던 프로세스를 사용하고 있는 상태이기 때문입니다.

리소스를 잡아먹는 범인 프로세스 찾기

현재 Windows 버전을 감당할 만큼 RAM이 충분하다는 것이 확인되었다면, 하드 폴트 증가는 특정 프로세스가 지나치게 많은 메모리를 점유하고 있기 때문일 가능성이 높습니다.

리소스 모니터를 사용하면 하드 폴트를 유발하는 프로세스를 쉽게 찾아낼 수 있습니다. 진입 경로는 여러 가지가 있지만, 가장 간단한 방법은 실행 창(Windows 키 + R)을 열고 "resmon"을 입력한 후 Enter 키를 누르는 것입니다. 그러면 바로 리소스 모니터의 개요(Overview) 탭으로 이동합니다.
초당 하드 폴트(Hard Faults/sec)란? 원인과 해결 방법 완벽 가이드

리소스 모니터에 접속한 후 메모리 탭으로 이동하여 하드 폴트 열을 클릭하세요. 그러면 하드 폴트 발생 횟수가 많은 순서대로 정렬되며, 목록 맨 위에 표시되는 프로세스가 PC를 가장 느리게 만드는 주범입니다.

초당 하드 폴트(Hard Faults/sec)란? 원인과 해결 방법 완벽 가이드

참고: 위 스크린샷에서 볼 수 있듯이, 메모리 압축(Memory Compression) 프로세스가 목록에 있다면 무시하지 마세요. 이는 최신 Windows 버전에서 사용하는 정상적인 메모리 관리 기법입니다.

특정 프로세스가 초당 100회 이상의 하드 폴트를 지속적으로 기록한다면 몇 가지 방법으로 대처할 수 있습니다. 해당 프로세스를 마우스 오른쪽 버튼으로 클릭한 후 프로세스 트리 끝내기(End process tree)를 선택해 관련 프로세스까지 강제 종료하거나, 해당 애플리케이션을 제거하고 메모리 관리가 더 효율적인 유사 소프트웨어를 찾아 대체하는 방법이 있습니다.