Linux에서 "INFO : 작업 XXX가 120 초 이상 차단됨"은 정확히 무엇을 의미합니까?


14

커널 로그에 다음 메시지가 표시되었습니다 INFO: task XXX blocked for more than 120 seconds. 기술적 으로 어떤 의미인지 알고 싶습니다. 어떤 조건에서 커널이 작업에 대한이 메시지를 표시합니까?

기록을 위해 차단 된 작업은 multipathd이지만이 오류의 일반적인 의미에 관심이 있습니다.

답변:


13

작업이 차단되면 리소스를 다시 사용할 수있을 때까지 기다립니다.

귀하의 경우 디스크 영역에 IO 문제 또는 경합이있을 수 있습니다. 또는 시스템로드가 너무 높아서 작업을 제 시간에 완료 할 수있는 충분한 CPU 전력이 없습니다.

매우 바쁜 시간에 작업을 시작하려고하면 cron 에서이 오류를 보았습니다.


더 자세하게 얘기해 주 시겠어요? "차단됨"은 "무중단 상태에서 지속적으로"를 의미합니까?
Totor

@Totor이 컨텍스트에서 리소스를 기다리고 있습니다. 따라서 다른 io는 중단 할 수 없습니다.
Nils

7

기본적으로이 로깅은 CPU 스케줄러가 지정된 시간 동안 프로세스로 전환하지 않고 프로세스가 예외를 충족하지 않는 경우 트리거됩니다.

예외는 프로세스가 전환되지 않았지만 로그되지 않아야하는 특수한 경우입니다. 예외 조건을 명확하게 이해하지 못합니다. 코드의 사례에 대한 의견은 다음과 같습니다.

Also, skip vfork and any other user process that freezer should skip.

Also, when a freshly created task is scheduled once, changes
its state to TASK_UNINTERRUPTIBLE without having ever been
switched out once, it musn't be checked.

http://lxr.free-electrons.com/source/kernel/hung_task.c#L75

작업이 오랫동안 예약되지 않은 이유에 대해서는 TASK_UNINTERRUPTABLE ( 'D'상태)에 지속적으로있을 가능성이 있지만 다른 작업이 무엇인지 모르겠습니다.


아마도 관련 버그 : 리눅스 3.14-3.17 하 스웰 프로세서에이 - - 프로세스 futex_wait에 걸 수 groups.google.com/d/msg/mechanical-sympathy/QbmpZxp6C64/...
rakslice
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.