Ubuntu 기반 Linux에서 실행하면nproc명령을 실행하면 2가 인쇄됩니다. 하지만 실행하면 nproc --all
8이 인쇄됩니다.
이는 8개의 온라인 프로세서 중 2개만 사용할 수 있다는 의미입니까? 8개의 온라인 프로세서를 모두 사용 가능하게 만드는 방법은 무엇입니까? 구성으로 제어됩니까?
답변1
실행 중인 동일한 쉘에서 다음 명령을 실행할 수 있습니까 nproc
?
cat /proc/$$/limits
결과:
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 15795 15795 processes
Max open files 65536 65536 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 15795 15795 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
이 명령을 사용하여 오프라인 상태인 CPU가 있는지 확인할 수 있습니까?
grep "" /sys/devices/system/cpu/cpu*/online
결과:
# grep "" /sys/devices/system/cpu/cpu*/online
/sys/devices/system/cpu/cpu1/online:1
/sys/devices/system/cpu/cpu2/online:1
/sys/devices/system/cpu/cpu3/online:1
/sys/devices/system/cpu/cpu4/online:1
/sys/devices/system/cpu/cpu5/online:1
/sys/devices/system/cpu/cpu6/online:1
/sys/devices/system/cpu/cpu7/online:1
CPU가 오프라인인 경우(예: CPU3)를 통해 해당 CPU를 켜고 nproc
다시 실행할 수 있습니다.
echo 1 > /sys/devices/system/cpu/cpu3/online
모두 열려면 다음을 시도해 보세요.
for x in /sys/devices/system/cpu/cpu*/online; do
echo 1 >"$x"
done
다음 8개 명령을 하나씩 독립적으로 시도해 볼 수 있습니까( permission denied
try 를 사용하는 경우 sudo
):
echo 1 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu2/online
echo 1 > /sys/devices/system/cpu/cpu3/online
echo 1 > /sys/devices/system/cpu/cpu4/online
echo 1 > /sys/devices/system/cpu/cpu5/online
echo 1 > /sys/devices/system/cpu/cpu6/online
echo 1 > /sys/devices/system/cpu/cpu7/online