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


16

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

다음은 iotop예제 출력입니다 (IO <1 %가 생략 된 다른 프로세스).

여기에 이미지 설명을 입력하십시오


이것과 함께 data=journal입니까?
DepressedDaniel

@DepressedDaniel 무슨 뜻인지 모르겠습니다. 방금 iotop -oP
Sparkler

답변:


16

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

많은 프로세스의 활동이 결합되어 있기 때문에 파일 시스템 또는 디스크 활동을 프로세스로 추적하기가 어려웠습니다. 예를 들어, 두 프로세스가 같은 파일에서 동시에 읽고있는 경우, 어떤 프로세스에 대해 읽기가 설명됩니까? 두 프로세스가 동일한 디렉토리에 쓰고 디렉토리가 디스크에서 한 번만 업데이트되면 (두 작업을 결합하여), 어떤 프로세스가 쓰기에 대해 설명됩니까?

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


2
저널 업데이트 외에 어떤 다른 디스크 IO 범주가 있습니까? (즉, 왜 idb의 출력에서 ​​jdb2가 유일한 항목이 아닌가?)
Sparkler

@Sparkler 실제 데이터도 작성되었습니다. (로그 구조의 파일 시스템을 사용하지 않는 한 대부분은 그렇지 않습니다.)
Gilles 'SO-Stop

무슨 일이 일어나는지 설명합니다. 그러나 원래 프로세스의 I / O 우선 순위가 '유휴'로 설정되고 jbd2자체 I / O 우선 순위로 많은 I / O 작업을 계속 하면 시간이 많이 걸립니다 .
jlh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.