OS/Linux

[OS/Linux] watchdog & kworker 프로세스에 의해 CPU stuck 현상

bbugge 2020. 12. 24. 14:28

watchdog이란?

Watchdog이란 주어진 시간에 특정 일이 발생하는지 감시하는 기능입니다. 

기본적인 기능은 일정한 시간을 설정해 놓고 그 시간을 감소시키면서 설정된 시간이 0이 되기 전까지 시간을 재설정을 하지 않으면 System Reset이 되는 것입니다. 그렇기 때문에 Watchdog 타이머 값을 계속 재설정 하는 것을 포함하여 정해진 시간내에 실행되는지 감사하는 기능입니다. 따라서 정상적인 동작을 하는 상황에서는 Watchdog은 발생하지 않으며 비정상적인 상황에서 Watchdog이 발생되는 것입니다. 

 

watchdog 비활성화

sysctl kernel.nmi_watchdog=0

# 아래 명령어를 통해 비활성화 상태 확인

cat /proc/sys/kernel/nmi_watchdog

 

 

kworker 란 무엇입니까? 

kworker"작업"(시스템 호출 처리)을 수행하는 Linux 커널 프로세스를 의미합니다. 프로세스 목록에 몇 가지를 가질 수 있습니다. kworker/0:1첫 번째 CPU 코어에 kworker/1:1있는 것과 두 번째 CPU 코어에 있는 것입니다.

kworker의 과도한 CPU 사용원인을 찾으려면 툴(linux-tools-common linux-tools-3.11.0-15-generic)을 사용해서 확인해야합니다. 

# 자세한 내용

 

다른 OS에서도 kworker 프로세스가 쓸데없이 CPU를 차지하는 경우가 존재하는데, 이런 경우 kernel 업데이트를 할 것을 권장하고 있습니다.

 

# 커널 파라미터 변경하여 stuck 현상 막음 

sysctl -w kernel.softlockup_panic=1

일반적으로 sysctl의 "kernel.softlockup_panic = 1"이 구성되면 패닉이 발생하거나 다른 커널 코드의 실행이 재개됩니다.

'OS > Linux' 카테고리의 다른 글

[OS/Linux] RHEL 6 yum 사용 시 에러  (0) 2022.06.07