기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
cgroups를 사용하여 AL2023에서 프로세스 리소스 사용 제한
systemd를 사용한 리소스 제어 섹션을 사용하는 것이 좋지만, 이 섹션에서는 프로세스의 CPU 및 메모리 사용량을 제한하기 위한 기본 libcgroup-tools 유틸리티의 기본 사용량을 다룹니다. 두 방법 모두 이전에 EPEL에서 제공되었던, cpulimit 유틸리티를 사용하는 대체 방법입니다.
아래 예제에서는 libcgroup-tools 패키지의 유틸리티와 sysfs의 튜닝 가능 항목을 사용하여 CPU 및 메모리 사용량을 제한하면서 stress-ng 스트레스 테스트(stress-ng 패키지)를 실행하는 방법을 다룹니다.
명령줄에서 libcgroup-tools를 사용하여 리소스 사용 제한
-
libcgroup-tools패키지를 설치합니다.[ec2-user ~]$sudo dnf installlibcgroup-tools -
memory및cpu컨트롤러를 사용하여cgroup을 생성하고 이름(our-example-limits)을 지정합니다.-a및-t옵션을 사용하여ec2-user사용자가cgroup의 튜닝 가능 항목을 제어할 수 있도록 허용[ec2-user ~]$sudo cgcreate -aec2-user-tec2-user-g memory,cpu:our-example-limits이제 각 튜닝 가능 항목을 제어하는 데 사용할 수 있는 파일이 포함된
/sys/fs/cgroup/our-example-limits/디렉터리가 있습니다.참고
Amazon Linux 2는 AL2023에서 사용되는
cgroup-v2대신cgroup-v1을 사용합니다. AL2에서는sysfs경로가 다르며,cgroup의 제한을 제어하는 데 사용할 수 있는 파일이 포함된ec2-user소유의/sys/fs/cgroup/memory/our-example-limits및/sys/fs/cgroup/cpu/our-example-limits디렉터리가 있습니다. -
cgroup의 모든 프로세스의 메모리 사용량을 1억 바이트로 제한합니다.[ec2-user ~]$echo100000000> /sys/fs/cgroup/our-example-limits/memory.max참고
Amazon Linux 2는 Amazon Linux 2023에서 사용하는
cgroup-v2대신cgroup-v1을 사용합니다. 즉, 일부 튜닝 가능 항목이 다릅니다. AL2의 메모리 사용량을 제한하기 위해 아래 튜닝 가능 항목이 대신 사용됩니다.[ec2-user ~]$echo10000000> /sys/fs/cgroup/memory/our-example-limits/memory.limit_in_bytes -
cgroup의 모든 프로세스의 CPU 사용량을 10%로 제한합니다.cpu.max파일의 형식은$MAX $PERIOD이며, 그룹을 모든$PERIOD에 대해$MAX소비로 제한합니다.[ec2-user ~]$echo10000 100000> /sys/fs/cgroup/our-example-limits/cpu.maxAmazon Linux 2는 Amazon Linux 2023에서 사용하는
cgroup-v2대신cgroup-v1을 사용합니다. 즉, CPU 사용량을 제한하는 방법을 포함하여 일부 튜닝 가능 항목이 다릅니다. -
아래 예제는
our-example-limitscgroup에서stress-ng(dnf install -y stress-ng를 실행하여 설치할 수 있음)를 실행합니다.stress-ng명령이 실행되는 동안top을 사용하여 CPU 시간의 10%로 제한되는 것을 관찰할 수 있습니다.[ec2-user ~]$sudo cgexec -g memory,cpu:our-example-limitsstress-ng --cpu 1 -
cgroup을 제거하여 정리
[ec2-user ~]$sudo cgdelete -g memory,cpu:our-example-limits
cgroup-v2용 Linux 커널 설명서