사용자간에 리소스를 공정하게 공유하도록 cgroup을 구성하려면 어떻게해야합니까?


11

cgroups에는 sched_user 또는 이와 유사한 커널 구성 옵션이있었습니다. 이를 통해 모든 사용자는 시스템 리소스를 공정하게 공유 할 수있었습니다. 2.6.35에서는 사용할 수 없습니다. 모든 사용자 (루트 포함)간에 io / cpu / 메모리 리소스를 자동으로 공유하도록 시스템을 구성 할 수있는 방법이 있습니까? 나는 전에 cgroup을 설정 한 적이 없다. 그렇게하기위한 좋은 튜토리얼이 있는가? 대단히 감사합니다.


글쎄, 나는 우분투의 cgroups-bin 패키지에서 전리품을 가져 갔으며 설치하면 기본적으로 "이 작업을 수행"한다고 확신합니다. 설치가 필요하다고 생각했지만 특별한 요구가있는 경우에만 수행한다고 가정합니다. 루트에서 2 개의 CPU 스레드와 사용자에서 2 개의 CPU 스레드로 스트레스를 실행하여 테스트했으며 4 개의 스레드가 모두 50 %를 공유하는 것으로 보입니다. 이것은 나를 위해 "해결"할 수 있지만, 더 확실한 확인 방법을 원하거나 구성 방법을 더 잘 알고 싶다면 다시 한 번 감사드립니다!
NightwishFan

답변:


12

커널 문서 는 예제와 함께 cgroup에 대한 일반적인 내용을 제공합니다.

cgroups-bin(패키지에 따라 libcgroup1이미 분포에 의해 제공)은 잘해야한다.

다음 두 파일을 편집하여 구성합니다.

/etc/cgconfig.conf

제어 그룹, 해당 매개 변수 및 마운트 지점을 정의하기 위해 libcgroup에서 사용합니다.

/etc/cgrules.conf

프로세스가 속하는 제어 그룹을 정의하기 위해 libcgroup에서 사용합니다.

이러한 구성 파일에는 이미 예제가 있으므로 요구 사항에 맞게 조정하십시오. 매뉴얼 페이지는 그들의 구성을 잘 다루고 있습니다.

그런 다음 워크로드 관리자 및 규칙 디먼을 시작하십시오.

service cgconfig restart
service cgred restart

워크로드 관리자 (cgconfig)는 자원을 할당합니다.
관리자에게 새로운 프로세스 추가하기 :

cgexec [-g <controllers>:<path>] command [args]

이미 실행중인 프로세스를 관리자에 추가 :

cgclassify [-g <controllers>:<path>] <pidlist>

또는 cgrules.conf 파일과 CGroup Rules Daemon (cgred)을 자동으로 덮어서 새로 생성 된 모든 프로세스를 지정된 그룹으로 강제합니다.


예 /etc/cgconfig.conf :

group group1 {
    perm {
            task {
                    uid = alice;
                    gid = alice;
            }
            admin {
                    uid = root;
                    gid = root;
            }
    }

    cpu {
            cpu.shares = 500;
    }

}

group group2 {
    perm {
            task {
                    uid = bob;
                    gid = bob;
            }
            admin {
                    uid = root;
                    gid = root;
            }
    }

    cpu {
            cpu.shares = 500;
    }

}

mount {
    cpu = /dev/cgroups/cpu;
    cpuacct = /dev/cgroups/cpuacct;
}

예 /etc/cgrules.conf :

alice            cpu             group1/
bob              cpu             group2/

이것은 사용자 'alice'와 'bob'사이의 CPU 리소스를 약 50-50으로 공유합니다.


cgroup을 배우고 이것을 즐겨 찾기에 추가했습니다. 감사.
Jigar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.