kworker
프로세스는 CPU의 75%를 소비합니다. 문제의 스레드는 kworker
ACPI와 관련되어 있습니다.
sudo cat /proc/THE_PID_OF_KWORKER_PROCESS/stack
[<ffffffff85c0c705>] acpi_ns_evaluate+0x1bc/0x23a
[<ffffffff85bffe09>] acpi_ev_asynch_execute_gpe_method+0x98/0xff
[<ffffffff85be4e30>] acpi_os_execute_deferred+0x10/0x20
[<ffffffff8588dc21>] process_one_work+0x181/0x370
[<ffffffff8588de5d>] worker_thread+0x4d/0x3a0
[<ffffffff85893f1c>] kthread+0xfc/0x130
[<ffffffff8588de10>] process_one_work+0x370/0x370
[<ffffffff85893e20>] kthread_create_on_node+0x70/0x70
[<ffffffff858791ba>] do_group_exit+0x3a/0xa0
[<ffffffff85e6a2b5>] ret_from_fork+0x25/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
그래서 디버깅을 시작했어요일부 acpi 관련 커널 매개변수를 사용하여 재부팅, 예를 들어:
acpi=off : Completely solves the high cpu usage, but computer no longer suspends.
acpi=ht : no effect, still high cpu usage
pci=noacpi : not booting at all
pnpacpi=off : no effect, still high cpu usage
noapic : worse, 100% cpu usage
nolapic : worse, 100% cpu usage
uname -a
:Linux 4.13.0-1-amd64 #1 SMP Debian 4.13.4-1 (2017-10-01) x86_64 GNU/Linux
내 루트 폴더 디스크 레이아웃은 BTRFS
다음 LVM
과 같습니다 LUKS
.
문제의 원인을 어떻게 찾을 수 있나요?
고쳐 쓰다
저는 외장 하드 드라이브를 사용하지 않고 DVD 인클로저를 사용하여 노트북에 연결했습니다.
오늘 드라이브를 다시 연결했는데 kworker가 다시 한 번 너무 많은 CPU를 소비했습니다. 외장 드라이브에서 파티션을 마운트하지 않고 연결하기만 하면 CPU 사용량이 발생한다는 점에 유의하세요.
답변1
ACPI 인터럽트를 확인했을 때 gpe6F
트리거 수가 매우 높은 것을 발견했습니다.
root@HOST:~# grep . -r /sys/firmware/acpi/interrupts/
/sys/firmware/acpi/interrupts/ff_gbl_lock: 0 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe15: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe4F: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe43: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe7D: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe71: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe05: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe3F: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe33: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe6D: 0 disabled unmasked
/sys/firmware/acpi/interrupts/gpe61: 0 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe2F: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe23: 0 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe5D: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe51: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe1F: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe13: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe4D: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe41: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe7B: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe0F: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe03: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe3D: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe31: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe6B: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe2D: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe21: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe5B: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe1D: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe78: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe11: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe4B: 0 invalid unmasked
/sys/firmware/acpi/interrupts/ff_pwr_btn: 0 EN enabled unmasked
/sys/firmware/acpi/interrupts/ff_slp_btn: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe0D: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe68: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe01: 0 invalid unmasked
/sys/firmware/acpi/interrupts/ff_pmtimer: 0 STS invalid unmasked
/sys/firmware/acpi/interrupts/gpe3B: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe58: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe2B: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe48: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe1B: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe76: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe38: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe0B: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe66: 4 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe28: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe56: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe18: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe46: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe74: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe08: 0 invalid unmasked
/sys/firmware/acpi/interrupts/sci: 819678
/sys/firmware/acpi/interrupts/gpe36: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe64: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe26: 0 invalid unmasked
/sys/firmware/acpi/interrupts/error: 0
/sys/firmware/acpi/interrupts/gpe54: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe16: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe44: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe7E: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe72: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe06: 0 invalid unmasked
/sys/firmware/acpi/interrupts/ff_rt_clk: disabled unmasked
/sys/firmware/acpi/interrupts/gpe34: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe6E: 262969 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe62: 0 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe24: 0 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe5E: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe52: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe14: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe4E: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe42: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe7C: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe70: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe04: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe3E: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe32: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe6C: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe60: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe2E: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe22: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe5C: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe50: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe1E: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe79: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe12: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe4C: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe40: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe7A: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe0E: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe69: 0 disabled unmasked
/sys/firmware/acpi/interrupts/gpe02: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe3C: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe30: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe6A: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe59: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe2C: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe20: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe5A: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe49: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe1C: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe77: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe10: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe4A: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe39: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe0C: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe67: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe00: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe3A: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe29: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe57: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe2A: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe19: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe47: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe1A: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe75: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe09: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe37: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe0A: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe65: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe27: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe55: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe17: 0 STS invalid unmasked
/sys/firmware/acpi/interrupts/gpe45: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe7F: 0 invalid unmasked
/sys/firmware/acpi/interrupts/sci_not: 101
/sys/firmware/acpi/interrupts/gpe73: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe07: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe35: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe6F: 560719 STS enabled unmasked
/sys/firmware/acpi/interrupts/gpe63: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe25: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe5F: 0 invalid unmasked
/sys/firmware/acpi/interrupts/gpe_all: 823692
/sys/firmware/acpi/interrupts/gpe53: 0 invalid unmasked
나는 그것을 비활성화했습니다 :
root@HOST:~# echo "disable" > /sys/firmware/acpi/interrupts/gpe6F
모든 것이 정상으로 돌아왔습니다.
Linux 4.9.0-6-amd64 (HOST) 05/01/2018 _x86_64_ (4 CPU)
12:30:27 PM CPU %user %nice %system %iowait %steal %idle
12:30:30 PM all 6.88 0.00 1.26 0.17 0.00 91.69
12:30:33 PM all 6.45 0.00 1.17 0.17 0.00 92.20
12:30:36 PM all 7.15 0.00 1.01 0.34 0.00 91.51
Average: all 6.83 0.00 1.15 0.22 0.00 91.80
답변2
kworker
암호화(LUKS)에 사용되므로 디스크 IO에서 CPU를 소비하는 것을 볼 수 있습니다(백그라운드 FS 유지 관리일 수 있음). 다음을 실행해야 합니다:
cryptsetup benchmark
하드웨어 가속이 누락되었는지 확인하세요.
답변3
이전 Macbook 2006에서 Lubuntu 20.10, 5.8 커널을 실행하는 데 비슷한 문제가 있었습니다. 제 경우에는 부팅 매개변수를 사용하여 gpe17을 마스크하는 것이 해결책이었습니다.
acpi_mask_gpe=0x17
GRUB에 부팅 매개변수를 추가 하고 재부팅했습니다.
GRUB_CMDLINE_LINUX_DEFAULT 줄 acpi_mask_gpe=0x17
에 추가한 다음 실행 하고 재부팅하세요./etc/default/grub
update-grub
이는 높은 CPU 사용량 문제를 해결합니다.
이 명령에서 잘못된 점을 발견했습니다.grep . -r /sys/firmware/acpi/interrupts/
질문:/sys/firmware/acpi/interrupts/gpe17: 3491042 EN enabled unmasked
Peter Nowee는 다음과 같은 답변으로 솔루션을 제공합니다.부팅 시 GPE ACPI 인터럽트를 비활성화하시겠습니까?