다음 줄을 추가했습니다./etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=1,3"
그런 다음 실행 sudo grub-update
(그리고 다시 시작) 되지만 top
여전히 프로세스에 따라 CPU 1과 3에 예약되어 있습니다. 나는 무엇을 해야 합니까?
제가 추가해 달라는 요청을 받은 내용은 다음과 같습니다.
nabeel@nabeel-Inspiron-3542:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.4.0-22-generic.efi.signed root=UUID=1e46ca65-843f-439a-8e2a-f5e666a03ffe ro quiet splash isolcpus=1,3 vt.handoff=7
출력 top
:
PID USER PR S P
182 root 20 S 0
183 root 0 S 0
220 root 20 S 0
223 root 20 S 0
253 root 20 S 2
261 root 0 S 0
312 root -51 S 0
343 root 0 S 3 <-------- Processes being scheduled on CPU 1 and 3
347 root 0 S 1 <--------
373 root 0 S 2
398 root 0 S 0
474 root 0 S 2
478 root 20 S 0
548 systemd+ 20 S 0
632 avahi 20 S 2
633 root 20 S 2
642 root 20 S 0
답변1
나는 이 두 프로세스가 kworker
또 다른 커널 작업이라고 생각합니다.
현재는 사용자 공간 스레드만 영향을 받는 것으로 나타나 isolcpus=
므로 커널 스레드는 격리된 CPU에 나타납니다.
~에서RHEL 문서(강조),
3.3.6.2.CPU 분리
isolcpus 부팅 매개변수를 사용하여 스케줄러에서 하나 이상의 CPU를 격리할 수 있습니다. 이렇게 하면 스케줄러가 일정을 예약하는 것을 방지할 수 있습니다.사용자 공간 스레드이 CPU에. CPU를 격리한 후에는 CPU 선호도 시스템 호출이나 numactl 명령을 사용하여 격리된 CPU에 프로세스를 수동으로 할당해야 합니다.
누군가 시도했습니다이 동작을 수정하세요, 그러나 내가 아는 한 그것은 확인되지 않았습니다.
전체적으로 Ubuntu는 이 옵션을 무시하지 않으며 예상대로 작동합니다. 예상대로 작동하는지 여부는 다른 질문입니다.