About Infra.
페이지 폴트는 애플리케이션이 현재 메모리 상주 페이지 세트에 없는 페이지에서 주소를 요청하는 현상을 의미합니다. 페이지 폴트가 발생하면 운영 체제가 디스크에서 특정 페이지를 찾아 실제 메모리에 복원하는 동안 페이지 폴트가 발생한 스레드가 대기 상태가 됩니다. 이는 메모리를 효율적으로 사용하기 위해 발생하는 일반적인 현상이지만 과도한 페이지 폴트는 OS의 성능에 영향을 주기 때문에 항시 감시해야 되는 지표이기도 합니다.
페이지 폴트는 하드 폴트와 소프트 폴트로 구성되어 있습니다. 하드 폴트와 소프트 폴트를 구분하는 것도 중요합니다. 하드 폴트는 페이지가 실제 메모리 또는 프로세스에 의해 작성된 메모리 매핑 된 파일에 없을 때 발생합니다. RAM이 부족하고 과도한 하드 폴트가 발생하면 응용 프로그램의 성능이 저하됩니다. 하드 폴트는 적시에 해결되어 결함을 해결하는 프로세스가 불필요하게 프로그램의 실행을 지연시키지 않도록해야합니다. 반면, 페이지가 메모리의 다른 곳에 있으면 소프트 폴트가 발생합니다. 예를 들어, 페이지가 다른 프로세스의 작업 세트에 있을 수 있습니다. 소프트 폴트는 해당 페이지를 사용중인 프로세스의 작업 세트에서 제거되어 페이지가 전환 상태 인 경우에도 발생할 수 있습니다.
윈도우의 리소스 모니터를 실행하면 "페이지 폴트/초"를 확인 할 수 있습니다. 이는 한글 번역 오류로 영문 윈도우에서는 "Hard Faults/sec" 로 나타내고 있습니다.
실제로 성능 모니터에서 페이지 폴트 카운터를 추가하면 리소스 모니터의 "페이지 폴트/초" 보다 훨씬 큰 값을 보여주는 확인 할 수 있습니다.
페이지 폴트는 메모리를 효율적으로 사용하는 과정에서 발생하는 자연스러운 현상입니다. 하지만 메모리가 부족한 경우 페이지 폴트가 비 정상적으로 늘어날 수 있습니다. 특히 하드 폴트는 시스템의 영향을 미칠 수 있습니다. 하드 폴트와 함께 Disk I/O 가 높아지고 있다면 메모리의 용량을 늘리는 것이 좋습니다.