CentOS 7.2 (3.10.0-327.18.2.el7.x86_64)
저는 32GB RAM을 갖춘 Lenovo W540 iCore 7에서 CPU 2개와 6GB RAM을 갖춘 VMware 게스트로 실행하고 있습니다.
가상 머신에서 rcuos와 rcuob에는 각각 128개의 프로세스가 있는 것을 볼 수 있습니다. 프로세스가 시스템의 코어 수와 동일해야 하기 때문에 이것은 옳지 않은 것 같습니다.
내 가상 머신이 가끔 정지되는 것을 발견했습니다.
rcuos 및 rcuob 프로세스 수를 CPU 수와 동일하게 제한하는 방법이 있습니까?
VM Guest의 CPU 수를 1로 줄였지만 rcuos 및 rcuob 수는 여전히 각각 128개입니다.
maxcpus=0
그런 다음 s 및 s 수를 1로 줄이는 커널 부팅 매개 변수를 추가했지만 가상 머신에 더 많은 코어를 할당해야 했습니다. 코어를 하나만 사용하면 애플리케이션 성능이 40% 감소합니다.rcuos
rcuob
답변1
Linux 커널과 이를 조정하는 방법에 대한 나의 지식은 매우 제한적입니다. 다른 커널 부팅 매개변수 nr_cpus를 게시하고 우연히 발견한 후 계속해서 인터넷 검색을 했습니다.여기가상 머신에서 이를 2(CPU 수)로 설정하면 이제 2개의 rcuos 및 rcuoc 프로세스만 표시됩니다.
이것은 나에게 효과적입니다.
편집하다
/etc/default/grub그리고 추가하세요
프로세서 수=2GRUB_CMDLINE_LINUX 라인에 있습니다. 그러다가 도망갔어
grub2-mkconfig -o /boot/grub2/grub.cfg재부팅 후 이제 rcuos 및 rcuoc에 대해 프로세스당 128개의 프로세스 대신 프로세스당 2개만 표시됩니다.
$ ps 보조 grep rcu | 루트 8 0.0 0.0 0 0 ? S 23:04 0:00 [rcu_bh] 루트 9 0.0 0.0 0 0 ? S 23:04 0:00 [rcuob/0] 루트 10 0.0 0.0 0 0 ? S 23:04 0:00 [rcuob/1] 루트 11 0.0 0.0 0 0 ? 23:04 오후 0:00 [rcu_sched] 루트 12 0.0 0.0 0 0 ? S 23:04 0:00 [rcuos/0] 루트 13 0.0 0.0 0 0 ? S 23:04 0:00 [rcuos/1]
답변2
이 유형의 커널 스레드가 너무 많으면 버그가 발생합니다.https://access.redhat.com/solutions/1404313정오표를 통해https://rhn.redhat.com/errata/RHSA-2016-2574.html또는 그 이후에 수정하세요 kernel-3.10.0-514
. RedHat은 이를 2016년 11월에 출시했으므로 현재 CentOS에서 사용할 수 있을 것으로 확신합니다.
커널을 업데이트하고 재부팅하세요. 정상적인 스레드 수가 표시되어야 합니다 rcous
. 제 경우에는 정상 값이 실제로 0으로, 6코어 VM의 약 95보다 낮습니다.
답변3
vmware에서 이 문제를 해결하는 또 다른 방법은 다음과 같습니다.
가상 머신을 종료합니다.
설정 편집 > 옵션 > 고급 > 메모리/CPU 핫 플러그
CPU 핫 플러그에서 이 가상 머신에 대한 CPU 핫 플러그를 비활성화합니다.
열려 있는.
문제가 해결되었습니다.