2.2.2. 주요 페이지 폴트
실시간 주요 오류는 시스템이 메모리 버퍼를 디스크와 동기화하거나, 다른 프로세스에 속하는 스왑 메모리 페이지 또는 다른 입력 출력(I/O) 활동을 수행하여 메모리를 해제해야 하는 경우 발생합니다. 이는 프로세서가 물리적 페이지가 할당되지 않은 가상 메모리 주소를 참조할 때 발생합니다. 빈 페이지에 대한 참조로 인해 프로세서가 오류를 트리거하고 커널 코드가 페이지를 할당하도록 지시하여 대기 시간이 크게 증가합니다.
실시간으로 애플리케이션에 성능 저하가 표시되면 /proc/ 디렉토리에서 페이지 폴트와 관련된 프로세스 정보를 확인하는 것이 좋습니다. cat 명령을 사용하여 특정 PID(프로세스 ID)의 경우 다음과 같은 관련 항목에 대해 /proc/PID/stat 파일을 볼 수 있습니다.
- 필드 2: 실행 가능한 파일 이름입니다.
- 10 필드: 사소한 페이지 폴트 수입니다.
- 12 필드: 주요 페이지 폴트 수.
다음 예제에서는 /proc/PID/stat 파일의 두 번째, 10번째 및 twelfth 행만 반환하는 cat 명령과 pipe 함수로 페이지 폴트를 보는 방법을 보여줍니다.
# cat /proc/3366/stat | cut -d\ -f2,10,12
(bash) 5389 0
예제 출력에서 PID 3366이 있는 프로세스는 bash이며 5389 마이너 페이지 폴트와 주요 페이지 폴트가 없습니다.
자세한 내용은 Linux System Programming by RotLO에서 참조하십시오.