스레드 및 프로세스 공유를 위해 cgconfig 사용(CPU 제한)

스레드 및 프로세스 공유를 위해 cgconfig 사용(CPU 제한)

cgconfig 규칙에서 사용자에 대해 다음 제한 사항을 설정했습니다.

# cat /etc/cgconfig.conf
group group_mahmood {
  cpu {
    cpu.shares = 300;
  }
  memory {
    memory.limit_in_bytes = 1073741824;
  }
}
# cat /etc/cgrules.conf
mahmood     cpu,memory grou_mahmood/
# service cgred restart
Redirecting to /bin/systemctl restart cgred.service
# service cgconfig restart
Redirecting to /bin/systemctl restart cgconfig.service

이제 스트레스 명령을 실행하면 stress --cpu 8 --timeout 20top의 출력은 다음과 같습니다.

28685 mahmood   20   0    7312    100      0 R 100.0  0.0   0:11.41 stress
28686 mahmood   20   0    7312    100      0 R  99.7  0.0   0:11.42 stress
28687 mahmood   20   0    7312    100      0 R  99.7  0.0   0:11.42 stress
28688 mahmood   20   0    7312    100      0 R  99.7  0.0   0:11.42 stress
28689 mahmood   20   0    7312    100      0 R  99.7  0.0   0:11.42 stress
28690 mahmood   20   0    7312    100      0 R  99.7  0.0   0:11.43 stress
28691 mahmood   20   0    7312    100      0 R  99.7  0.0   0:11.43 stress
28692 mahmood   20   0    7312    100      0 R  99.7  0.0   0:11.43 stress

스레드에 대한 공유 제한(800%)인 것 같습니다. CPU 제한 프로세스 수를 설정하는 방법은 무엇입니까? 사실 둘 다 필요합니다. 논리적으로 함께 "OR"되어야 합니다.

답변1

너는 조정해야 해.CPU.cfs_quota_usCPU.shares가 아니라 조정 가능합니다. RHEL6 문서에 연결했는데 cgredRHEL7에서 사용하는 경우에도 마찬가지입니다.

systemd 관련 단위에서는 다음을 설정할 수 있습니다.CPU 할당량환경. user-1001.slice에 대해 설정할 수 있지만(사용자의 UID가 1001이라고 가정) RHEL7의 systemd 버전에서는 이를 수행하는 보편적인 방법이 없습니다. (템플릿 단위는 나중에 표시됩니다)

관련 정보