IO를 사용하는 실제 프로세스가 아닌 대부분의 디스크 IO가 jbd2에 기인하는 이유는 무엇입니까?

IO를 사용하는 실제 프로세스가 아닌 대부분의 디스크 IO가 jbd2에 기인하는 이유는 무엇입니까?

디스크 IO를 모니터링할 때 대부분의 IO는 jbd2에 기인하는 반면 높은 IO를 유발하는 원래 프로세스는 훨씬 낮은 IO 비율에 기인합니다. 왜?

다음은 iotop샘플 출력입니다(IO<1%인 다른 프로세스 생략).

여기에 이미지 설명을 입력하세요.

답변1

jbd2파일 시스템 로그를 업데이트하는 커널 스레드입니다.

여러 프로세스의 활동이 결합되어 문제를 일으키는 프로세스의 파일 시스템이나 디스크 활동을 추적하는 것은 어렵습니다. 예를 들어, 두 프로세스가 동시에 동일한 파일에서 데이터를 읽는 경우 읽기 작업은 어느 프로세스를 대상으로 합니까? 두 프로세스가 동일한 디렉터리에 쓰고 디렉터리가 디스크에서 한 번만 업데이트되는 경우(두 작업 결합) 어느 프로세스에 쓰기가 전달됩니까?

귀하의 경우 대부분의 트래픽이 저널 업데이트로 구성된 것 같습니다. 이는 로그 업데이트 프로그램으로 다시 추적될 수 있지만 로그 업데이트와 이 로그 업데이트가 필요한 쓰기 작업을 발생시킨 프로세스 사이에는 추적이 없습니다.

관련 정보