`isolcpus` 커널 매개변수는 Ubuntu 16.04 데스크탑에 영향을 미치지 않습니다.

`isolcpus` 커널 매개변수는 Ubuntu 16.04 데스크탑에 영향을 미치지 않습니다.

다음 줄을 추가했습니다./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는 이 옵션을 무시하지 않으며 예상대로 작동합니다. 예상대로 작동하는지 여부는 다른 질문입니다.

관련 정보