2.2. 메이저 및 마이너 페이지 폴트


RHEL for Real Time은 물리적 메모리를 페이지라는 청크로 분할한 다음 가상 메모리에 매핑하여 메모리를 할당합니다. 프로세스에서 매핑되지 않았거나 더 이상 메모리에서 사용할 수 없는 특정 페이지가 필요한 경우 실시간으로 오류가 발생합니다. 따라서 오류는 기본적으로 CPU에 필요한 경우 페이지를 사용할 수 없음을 의미합니다. 프로세스가 페이지 폴트가 발생하면 커널이 이 오류를 처리할 때까지 모든 스레드가 중지됩니다. 이 문제를 해결하는 방법에는 여러 가지가 있지만 가장 좋은 해결책은 페이지 오류를 피하기 위해 소스 코드를 조정하는 것입니다.

사소한 페이지 폴트

프로세스가 초기화되기 전에 메모리 부분에 액세스하려고 할 때 사소한 페이지 폴트가 발생합니다. 이러한 시나리오에서 시스템은 메모리 맵 또는 기타 관리 구조를 채우기 위해 작업을 수행합니다. 사소한 페이지 폴트의 심각도는 시스템 로드 및 기타 요인에 따라 달라질 수 있지만 일반적으로 짧고 잘못된 영향을 미칠 수 있습니다.

주요 페이지 폴트

실시간 주요 오류는 시스템이 메모리 버퍼를 디스크와 동기화하거나, 다른 프로세스에 속하는 스왑 메모리 페이지 또는 다른 입력 출력(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
Copy to Clipboard Toggle word wrap

예제 출력에서 PID 3366이 있는 프로세스는 bash이며 5389 마이너 페이지 폴트와 주요 페이지 폴트가 없습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat