고쳐 쓰다

고쳐 쓰다

이 콘텐츠를 봐주셔서 감사합니다.

jonathan@melange:~$ top

top - 05:21:08 up 44 min,  2 users,  load average: 1.21, 1.68, 1.98
Tasks: 351 total,   2 running, 349 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.3 us, 14.0 sy,  2.1 ni, 70.4 id,  8.9 wa,  0.0 hi,  0.3 si,  0.0 st
GiB Mem :   15.579 total,    0.173 free,    4.141 used,   11.264 buff/cache
GiB Swap:   15.910 total,   15.868 free,    0.042 used.   11.014 avail Mem 

  PID  PPID   UID USER     RUSER    TTY          TIME+  %CPU %MEM S COMMAND                                                                                                                                   
   67     2     0 root     root     ?         22:22.40 100.0  0.0 R kworker/0:1 

설정 - 우분투 16.10. 4.8.0-41-일반. Nvidia 드라이버와 완벽하지 않은 Wi-Fi를 갖춘 최신 Intel 기반 노트북입니다. 저에게 알려주시면 필요한 정보를 제공해 드릴 수 있습니다. 이 내용은 제게는 괜찮게 작동하며 이것이 이 문제와 관련이 있다고 믿을 이유가 없습니다.

사실 저는 지난주 askubuntu에서 이 질문을 했고 Freenode`#ubuntu에서도 여러 번 물었지만 아무도 내 질문에 대답하지 않았습니다.

몇 가지 성과 보고서를 가져왔습니다.

sudo perf record -a -g sleep 10
sudo perf report

결과가 나왔습니다

Samples: 92K of event 'cycles:ppp', Event count (approx.): 58330337004406                                                                                                                                     
  Children      Self  Command          Shared Object                        Symbol                                                                                                                           ◆
+   94.27%     0.00%  swapper          [kernel.kallsyms]                    [k] cpu_startup_entry                                                                                                            ▒
+   94.27%     0.00%  swapper          [kernel.kallsyms]                    [k] start_secondary                                                                                                              ▒
+   77.29%     0.00%  swapper          [kernel.kallsyms]                    [k] schedule_preempt_disabled                                                                                                    ▒
-   77.29%    77.29%  swapper          [kernel.kallsyms]                    [k] __schedule                                                                                                                   ▒
     77.29% start_secondary                                                                                                                                                                                  ▒
        cpu_startup_entry                                                                                                                                                                                    ▒
      - schedule_preempt_disabled                                                                                                                                                                            ▒
         - 77.29% schedule                                                                                                                                                                                   ▒
              __schedule                                                                                                                                                                                     ▒
+   77.29%     0.00%  swapper          [kernel.kallsyms]                    [k] schedule                                                                                                                     ▒
+   16.99%     0.00%  swapper          [kernel.kallsyms]                    [k] call_cpuidle                                                                                                                 ▒
+   16.99%     0.00%  swapper          [kernel.kallsyms]                    [k] cpuidle_enter                                                                                                                ▒
+   16.99%     0.00%  swapper          [kernel.kallsyms]                    [k] cpuidle_enter_state                                                                                                          ▒
-   16.99%    16.99%  swapper          [kernel.kallsyms]                    [k] intel_idle                                                                                                                   ▒
     16.98% start_secondary                                                                                                                                                                                  ▒
        cpu_startup_entry                                                                                                                                                                                    ▒
        call_cpuidle                                                                                                                                                                                         ▒
      - cpuidle_enter                                                                                                                                                                                        ▒
         - 16.98% cpuidle_enter_state                                                                                                                                                                        ▒
              intel_idle                                                                                                                                                                                     ▒
+    5.65%     0.00%  pool             [unknown]                            [.] 0000000000000000                                                                                                             ▒
+    5.65%     5.65%  pool             libc-2.24.so                         [.] re_compile_internal                                                                                                          ▒
+    5.65%     0.00%  pool             [unknown]                            [.] 0x00007f049804d628                                                                                                           ▒
+    5.65%     0.00%  pool             [unknown]                            [.] 0x00007f049804d6a8                                                                                                           ▒
+    5.65%     0.00%  pool             [unknown]                            [.] 0x00007f049804d3d8                                                                                                           ▒
+    5.65%     0.00%  pool             [unknown]                            [.] 0x00007f049804d768                                                                                                           ▒
Cannot load tips.txt file, please install perf!

dmesg, 과열 메시지(그래서 내가 여기에 있는 것임) 및 MSFT0101:00에 대한 기타 메시지를 확인했는데, 이는 내 BIOS에서 활성화된 TPM 모듈을 커널이 인식하지 못하는 것과 관련이 있다고 생각됩니다. 나생각하다그것은 문제에서 사소한 것이어야 합니다.

또 있다질문kworker 스레드에 대한 권장사항은 다음과 같습니다.철사

$ echo workqueue:workqueue_queue_work > /sys/kernel/debug/tracing/set_event
$ cat /sys/kernel/debug/tracing/trace_pipe > out.txt
(wait a few secs)
^C

하지만 작동하지 않습니다!

jonathan@melange:~$ sudo mount -t debugfs nodev /sys/kernel/debug
mount: nodev is already mounted or /sys/kernel/debug busy
jonathan@melange:~$ sudo echo workqueue:workqueue_queue_work > /sys/kernel/debug/tracing/set_event
bash: /sys/kernel/debug/tracing/set_event: Permission denied
jonathan@melange:~$ sudo cat /proc/67/stack
[<ffffffffffffffff>] 0xffffffffffffffff

어떤 아이디어가 있나요? !

고쳐 쓰다

이 질문을 제출하기 전에 나는Kworker, 그게 뭐야? 왜 그렇게 많은 CPU를 차지합니까?참조. 그래서 dropbox, insync(google 드라이브), crashplan, keybase, Variety background, multiload Indicator, psensor, guake와 같은 장기 실행 프로세스를 비활성화/제거해 보았습니다. (대부분의 경우 설정이 매우 원활하다고 생각합니다...) 하지만 아무것도 도움이 되지 않는 것 같습니다.

Wi-Fi, NVIDIA 드라이버 또는 USB 드라이버의 오작동을 암시하는 다른 문제가 숨어 있습니다. 하지만 내 로그에도 그런 사실을 나타내는 내용은 없습니다. 고맙게도 해결책은 거의 항상 업데이트된 nvidia 드라이버를 찾거나, 커널을 업데이트하거나, "처리"하는 것입니다. 내 노트북은 이미 최신 상태이고 16.04를 계속 사용해야 할 기업적 이유가 없으며 Intel 드라이버와 마찬가지로 이미 nvidia ppa를 활성화했으므로 별 도움이 되지 않습니다.

어쩌면 kworker는 실제로 노트북 과열 -> CPU 조절 + CPU 팬 관리의 결과일 수도 있습니다. 이유가 아닙니다. 제안대로CPU 과열 방지그래서 그냥 압축공기를 좀 사용해서 팬 청소를 하고(9개월된 노트북에서는 문제가 될 줄 몰랐는데 실제로 먼지가 좀 있었음) heat-conf.xml을 조사해봤습니다. , 이는 팬이 55°C에서 시작함을 나타냅니다. (아직 여기서 무엇을 할 수 있는지 연구 중입니다.)

이것이 실제로 해결책이 될 수 있다고 생각했습니다. 곧 다시 보고하겠습니다.

업데이트 2

따라서 Acer BIOS 업데이트를 수행하면 보안 부팅 설정과 관련된 모든 것이 완전히 손상되고 efi 파일이 손상되었으므로 ubuntu efi 키와 Windows efi 키를 재생성하는 방법을 알아내는 데 며칠이 걸렸습니다.

먼지를 청소해보았는데 BIOS 문제 해결을 시작할 때까지 며칠 동안 정말 도움이 되었습니다.

하지만 kworker가 돌아왔습니다(예, 제가 아는 한 동일합니다). 이제 더 많은 정보도 얻었습니다. CPU가 느려지지 않고 최대치로 유지되는 것을 볼 수 있습니다. 팬은 돌아가고 있지만 장치의 온도는 60도 정도이므로 심각한 과열이라고 할 수는 없습니다.

다른 스레드의 명령은 sudo만 사용하는 것이 아니라 루트로 승격되어야 합니다. 따라서 sudo su를 사용하여 스택 추적을 얻으면 다음이 제공됩니다.

[<ffffffff98a9dcea>] worker_thread+0xca/0x500
[<ffffffff98aa40d8>] kthread+0xd8/0xf0
[<ffffffff992a071f>] ret_from_fork+0x1f/0x40
[<ffffffffffffffff>] 0xffffffffffffffff

나에게는 특별히 도움이 되지 않는 것 같습니다.

오랜 시간 후....

이 답변이 여전히 많은 조회수를 기록하고 있는 것을 보고 제가 기억하는 다른 일을 추가해야겠다고 생각했습니다. 저는 Nvidia GPU가 장착된 Aspire V 15 Nitro 592G 노트북을 실행하고 있습니다. Wi-Fi가 불안정하고, 마이크가 작동하지 않으며, Nvidia 드라이버로 인해 그놈 셸과 모니터가 반복적으로 충돌하는 등의 문제가 발생합니다. 작동에 있어서는 매우 강력하지만 이것은 최고의 우분투 머신은 아닙니다. 솔직히 말해서 저는 지금 Ubuntu 17.10을 실행하고 있으며 이 시스템을 작동시키는 데 여전히 큰 문제가 있습니다.

팬 청소가 도움이 된 것 같다고 댓글에 적었습니다. 그것은 일을 더 조용하게 만듭니다. 그러나 나는 그것이 실제로 다음의 조합이라고 생각합니다.

  • 추적기(전체 텍스트 검색 데몬) -> 미친 리소스 사용량
  • 그 당시에는 Wi-Fi 드라이버가 정말 형편없었어요.
  • 다양성(벽지 전환기) + 듀얼 모니터 + nvidia + gnome 쉘 -> 신뢰할 수 없는 모니터 설정 및 gnome 쉘의 대규모 메모리 누수,
  • 멀티로드 셸 확장도 메모리 누수입니다.

나는 이것이 다른 문제를 해결하는 새로운 사용자에게 도움이 되지 않을 것이라는 것을 알고 있습니다. 언젠가는 진단하기가 더 쉬워질 것입니다. 그때까지는 행운을 빕니다!

답변1

이 질문은 더 이상 업데이트되지 않아서 포기한 것 같지만 어쨌든 시도해 보겠습니다. 과도한 중단이 발생하여 시스템 속도가 느려지는 상황을 많이 보았습니다. 이는 확인에 사용될 수 있습니다 grep . -r /sys/firmware/acpi/interrupts/.

관련된: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/887793 https://bugzilla.kernel.org/show_bug.cgi?id=53071 https://forum.ubuntuusers.de/topic/kworker-cpu-load/(독일 사람)

답변2

/sys/kernel/debug/tracing/set_event"권한 거부" 오류는 루트로 작업하면 쉽게 해결할 수 있다고 생각합니다 .

또 다른 아이디어는 문제가 처음부터 있었는지, 아니면 문제를 촉발한 원인이 무엇인지 파악하는 것입니다. 첫 번째 경우, 가장 쉬운 방법은 대부분의 드라이버를 비활성화한 상태에서 부팅한 다음 드라이버를 하나씩 다시 활성화하여 원인을 찾는 것입니다.

무언가가 이 문제를 유발한다면, 우리는 그것이 무엇인지 알아야 합니다. 디스크 IO 급증으로 인해 CPU 사용량이 높아지는 경우를 본 적이 있는데, /proc/sys/vm/캐시 관련 매개변수를 조정하는 것이 많은 도움이 되었습니다.

관련 정보