Linux의 쿼드 코어 프로세서에서 CPU 코어 비활성화

Linux의 쿼드 코어 프로세서에서 CPU 코어 비활성화

CPU 코어 3개를 비활성화하고 프로세서를 단일 코어에서 실행하고 싶습니다. 나는 다음 명령을 사용했습니다: maxcpus=1. 하지만 그 후에 나는 이 명령을 실행했습니다 ls /sys/devices/system/cpu. 여전히 표시됩니다 cpu0,cpu1,cpu2,cpu3.

나는 또한 시도했지만 echo 0 > /sys/devices/system/cpu3/online다음과 같은 오류가 발생했습니다: no such file or directory.

답변1

~처럼Patrick이 댓글에서 지적했습니다., 경로가 /sys잘못되었습니다.

echo 0 > /sys/devices/system/cpu/cpu3/online

다음을 제외한 모든 CPU를 종료하려는 경우 cpu0:

for x in /sys/devices/system/cpu/cpu[1-9]*/online; do
  echo 0 >"$x"
done

쉘 프롬프트에 이것을 입력해도 maxcpus=1아무 효과가 없습니다. 보다 정확하게는 변수를 shell 의 maxcpus값 으로 설정하며 1이는 다른 효과가 없습니다. maxcpus매개변수를 전달하여 시작 시 CPU 수를 설정할 수 있습니다.커널 매개변수. 이렇게 하려면 부트로더 구성을 변경해야 합니다(예: U-Boot에서 커널 명령줄 변경).

답변2

당신은 그렇지 않을 수도 있습니다닫다또는장애를 입히다핵심.

당신은 사용할 것입니다중앙 처리 유닛그리고작업 세트

http://man7.org/linux/man-pages/man7/cpuset.7.html

cpuset은 CPU 및 메모리 노드 목록을 정의합니다.

cpuset 파일 시스템은 프로세스의 프로세서 배치와 메모리 배치를 제어하는 ​​데 사용되는 커널 cpuset 메커니즘에 대한 의사 파일 시스템 인터페이스입니다. 일반적으로 /dev/cpuset에 설치됩니다.

커널이 내장된 cpuset 지원으로 컴파일되는 시스템에서는 모든 프로세스가 cpuset에 연결되고 cpuset은 항상 존재합니다. 시스템이 cpuset을 지원하는 경우 /proc/filesystems 파일에 nodev cpuset 항목이 있습니다. cpuset 파일 시스템을 마운트함으로써(아래 예제 섹션 참조), 관리자는 시스템에 있는 프로세스의 프로세서 및 메모리 레이아웃을 제어하도록 시스템에 cpuset을 구성할 수 있습니다. 기본적으로 시스템의 cpuset 구성이 수정되지 않거나 cpuset 파일 시스템이 마운트되지 않은 경우, cpuset 메커니즘은 존재하지만 시스템 동작에 영향을 주지 않습니다.

시스템의 CPU에는 패키지 내의 여러 프로세서 코어와 프로세서 코어(있는 경우) 내의 하이퍼스레딩을 포함하여 프로세스를 실행할 수 있는 모든 논리 처리 장치가 포함됩니다. 메모리 노드에는 다양한 주 메모리 뱅크가 모두 포함됩니다. 소형 및 SMP 시스템에는 일반적으로 시스템의 모든 주 메모리를 포함하는 하나의 메모리 노드만 있는 반면, NUMA(비균일 메모리 액세스) 시스템에는 여러 메모리 노드가 있습니다.

즉, 1 6개 코어 CPU가 있는 경우 CPUSet을 구성하고중앙 처리 유닛하나의 코어(예: 코어 #3)에만 구성합니다. 병렬 프로세스인 경우 모두 하나의 코어로 제한됩니다. 따라서 하나의 코어만 정의된 특정 CPUset에서 4개의 프로세스를 시작하면 4개의 프로세스 각각은 코어# 3에 위치하여 25% CPU를 얻습니다. 이용.

이를 바탕으로 일반적으로 일어나는 일은 다음과 같습니다.중앙 처리 유닛다음과 같이 구성

  • 예를 들어, 200개 이상의 코어 시스템에서 cpusetA는 코어 0..60(위치에 관계없이)이고, cpusetB는 코어 61..70이고, cpusetC는 코어 71..80입니다. 그러나 관리자/아키텍처는 교사가 선택합니다. 구성.
  • cpusetA는 특정 사용자 및/또는 특정 소프트웨어 프로그램에 할당됩니다.
  • 사용자는 요청하는 작업(프로세스)을 시작합니다.질소핵심... 주어진 CPU 세트 내에서 이제 이러한 여러 (병렬) 프로세스는제한된주어진 CPU세트에. 그리고 그런 사람들에게는질소병렬성은 특정 CPU 세트로 제한되며, 각 프로세스는 다음을 활용해야 합니다.프로세서 선호도또는CPU 선호도따라서 이러한 병렬 프로세스는 cpuset 내의 다른 코어에서 충돌하지 않습니다.

반품:https://linux.die.net/man/1/tasksset

관련 정보