
내 데스크톱에 CGROUP이라는 CGROUP을 만들었습니다.배경. 이 그룹의 목적은 10% CPU 제한 내에서 모든 sysadmin 스크립트를 실행하는 것입니다. 그룹은 다음 cronjob을 사용하여 다시 시작할 때마다 생성됩니다.
@reboot /usr/bin/cgcreate -t jerzy:jerzy -a jerzy:jerzy -g cpu:background && /usr/bin/cgset -r cpu.cfs_period_us=1000000 background && /usr/bin/cgset -r cpu.cfs_quota_us=100000 background
이러한 제한에도 불구하고 이미 제한된 시스템 관리 스크립트를 원합니다.프로그램 실행, 나머지 프로세스의 우선 순위를 결코 지정하지 않습니다. 그래서 나는 사용하기로 결정했다.좋아요다음 예와 같이 명령을 실행합니다.
cgexec -g cpu:background nice -19 prependPollen.py
예프로그램 실행위 명령에서 리소스를 다음으로 제한합니다.prependPollen.py아니면 단지좋아요?
더 일반적으로: 사용프로그램 실행바로 다음에 나오는 하나의 명령으로만 리소스를 제한하십시오.프로그램 실행주문하다? 동일하게 적용됩니다좋아요?
nice -19 cgexec -g cpu:background prependPollen.py
위 명령과 같이 순서를 바꾸면 CPU 사용량/제한에 영향이 있습니까? 둘 다 괜찮아좋아요그리고프로그램 실행동일한 명령/cronjob에서 사용할 수 있습니까?
PS 내 환경: Bash, Debian 10 LTS.
답변1
두 명령 모두 변경된 속성을 유지하면서 다음 명령을 실행하는 준비 명령입니다. 따라서 변경되는 속성이 다른 속성에 부작용이 없는 한(두 속성 모두에 적합) 여기서 순서는 중요하지 않습니다.
cgexec -> nice -> final executable
nice
아래에서 실행할 프로세스를 해당 프로세스로 이동합니다.그룹nice
최종 실행 파일의 성능을 변경 합니다 (cgroup을 유지하면서).
nice -> cgexec -> final executable
후속 프로세스의 장점을 변경 cgexec
하고 cgexec
최종 실행 파일을 관련 cgroup에 배치합니다(품질을 유지하면서).
두 명령 모두 동일한 결과를 생성합니다. 두 가지 속성(그룹그리고친절한)은 다음 프로세스의 모든 하위 프로세스에 자동으로 전파됩니다. 그러니 무슨 일이 일어나든 prependPollen.py
그 안에 있을 거야중앙처리장치: 배경변화의 아름다움도 있습니다.
다른 유사한 명령은 이 파이프라인의 어느 곳에나 삽입할 수 있습니다. 예를 들어, ionice -c 3
Python 프로그램이 다른 프로세스에 대한 I/O 영향을 제한하기 위해 첫 번째, 두 번째 또는 세 번째 위치에 추가할 수 있습니다.cgroup이를 더 잘 수행하려면 일반적으로 다음이 필요합니다.cgroupv2가 제대로 작동하려면).