본문 바로가기

Study/linux

리눅스에서 cgroup 사용 예제

목표: openmpi를 cgroup을 이용해서 cpuset을 해 준 뒤에 mpirun -np / --cpu-set / bind-to core 옵션 줘서 실행해보기

 

1. cgroup 관리 툴을 설치 (안깔아도 되는데 까는게 편리)

sudo apt-get install cgroup-tools 혹은 cgroup-bin

 

 

2. cgroup생성

 sudo cgcreate -g cpuset:mpi_test

sudo cgset -r cpuset.cpus="0,3" mpi_test

sudo cgset -r cpuset.mem="0" mpi_test //안해주면 에러남 그리고 /sys/fs/cgroup/cpuset/mpi_test폴더 안에서 해야 적용되드라

 cat /sys/fs/cgroup/cpuset/mpi_test/cpuset.cpus

 

3. cgroup할당해서 실행

 

sudo cgexec -g cpuset:mpi_test ./mpirun --allow-run-as-root  -np 4 ./a.out

 

 

위 방법은 일회용이다

컴퓨터를 껐다 키니까 사라짐

 

영구적으로 하고 싶으면 configure파일을 만들 것!

 

 

결과

cpuset해준거보다 np가 많으면 slot에러난다

다만 mpirun --cpu-set 1을 했는데 멀쩡히 돌아감

 

 

cpuset으로 cpu수정

 

 

 

참고

 

https://blueyikim.tistory.com/109

 

cgroup(Control Group) 이해

1. cgroup 개요 자원 사용(CPU, Memory, I/O 등)을 프로세스 그룹단위로 제어할 수있는 리눅스 커널 기능 성능면에서 자원 경합을 줄이고, 예측성을 높여 SLA를 만족시킴 자원 제어는 CPU/CPUSET, Memory, Network..

blueyikim.tistory.com

https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/6/html/resource_management_guide/ch-using_control_groups#The_cgconfig_Service

 

2장. 컨트롤 그룹 사용하기 Red Hat Enterprise Linux 6 | Red Hat Customer Portal

The Red Hat Customer Portal delivers the knowledge, expertise, and guidance available through your Red Hat subscription.

access.redhat.com

http://studyfoss.egloos.com/5505982

 

[Linux] cgroup - (task) control group (1)

 

studyfoss.egloos.com

https://launchpad.net/ubuntu/+source/libcgroup

 

libcgroup package : Ubuntu

 

launchpad.net

https://www.paranoids.at/cgroup-ubuntu-18-04-howto/

 

cgroup ubuntu 18.04 howto – Paranoids Blog

Install required packages apt install cgroup-tools copy cgred.conf from examples cp /usr/share/doc/cgroup-tools/examples/cgred.conf /etc/ /etc/cgconfig.conf group web2 { cpu { cpu.cfs_quota_us=10000; } memory { memory.limit_in_bytes = 1024m; }} cpu.cfs_quo

www.paranoids.at