저는 6개의 물리적 코어와 12개의 SMP 코어를 갖춘 AMD Ryzen 5 5625 U CPU를 가지고 있습니다. 저는 Zorin Core OS 16.2r-1을 실행하고 있습니다.
저는 노트북의 전력을 더 많이 절약하는 방법을 테스트해 왔습니다. 궁극적으로 유휴 상태이거나 로드 중인 코어를 사용자가 구성할 수 있는 비율(400MHz CPU 주파수에서 머신 유휴 상태, 0%에서 6개 코어, 1%와 0% 사이에서 전환되는 6개 코어)로 파킹할 수 있기를 원합니다.
나는 다음을 사용하고 있습니다 :
for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
...모든 코어에 부하를 가한 다음 powertop과 powerstat를 사용하여 소비되는 전력을 측정했습니다.
나는 다음을 통해 그것을 죽인다:
sudo killall yes
내가 알아차린 한 가지는 다음과 같습니다.
for x in /sys/devices/system/cpu/cpu{1..11}/online; do echo 0 >"$x"; done
...Core0을 제외한 모든 항목을 오프라인으로 만듭니다(Core0은 오프라인일 수 없음). yes를 사용하여 CPU를 로드하면 yes가 종료된 후에도 오프라인 코어는 언로드되지 않습니다. 코어는 100%로 유지됩니다(Conky ${cpubar에 표시된 대로). cpuX 10,115} 및 ${freq X} 및 ${cpu cpuX}(여기서 "X"는 CPU 번호)) 다음을 통해 해당 코어를 다시 온라인으로 가져올 때까지:
for x in /sys/devices/system/cpu/cpu{1..11}/online; do echo 1 >"$x"; done
이것이 Conky의 버그입니까? 코어가 오프라인이면 해당 코어의 상태를 업데이트할 수 없습니다. 아니면 오프라인일 때에도 코어가 실제로 로드된 상태를 유지합니까? Powertop과 PowerStat는 온라인 코어만 측정하기 때문에 알려줄 수 없습니다.