Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4장. 리소스 관리

Cgroups CPU 최고 한도를 강제

Linux 커널의 CFS (Completely Fair Scheduler)는 비례 공유 스케줄러로 작업의 우선 순위/중요성 또는 작업 그룹에 할당된 점유율에 따라 비례하여 작업 그룹 간의 CPU 시간을 분배합니다. CFS에서 작업 그룹은 시스템에서 사용 가능한 CPU 유휴 시간 주기가 충분한 경우 스케줄러의 작업 보존 특성으로 인해 CPU 점유율 이상을 얻을 수 있습니다.

하지만 원하는 CPU 점유율 이상을 작업 그룹에 주는 것이 허용되지 않는 엔터프라이즈 경우는 다음과 같습니다:
사용당 요금제 (Pay-per-use)
여러 고객을 대상으로하는 엔터 프라이즈 시스템에서 클라우드 서비스 제공 업체는 서비스 수준에 따라 가상 게스트에 고정된 CPU 시간을 할당해야 합니다.
서비스 수준 보장
고객은 각 가상 게스트에 대한 서비스를 중단하지 않고 CPU 리소스의 백분율을 요구합니다.
이런 상황에서 작업 그룹의 CPU 리소스 소비가 미리 설정된 제한을 넘을 경우 스케줄러는 이를 강제 사용 중지 (hard stop)해야 합니다. 이는 일반적으로 할당된 CPU 시간을 완전히 소모하면 작업 그룹을 조정하여 실행됩니다.
cgroups CPU의 최고 한도를 강제하는 기능은 위에 기재한 사례에 대해 Red Hat Enterprise Linux 기능 목록에 추가된 매우 중요한 기능이라고 생각할 수 있습니다. CPU의 최고 한도를 강제하는 기능은 Xen의 Credit Scheduler, VMware ESX 스케줄러에 의해 제공됩니다.
SMP 시스템에서 Cgroups CPU 컨트롤러의 확장성 개선

Red Hat Enterprise Linux 6에서는 복잡한 절차 없이 cgroups를 활성화하고 libvirt는 게스트 모델마다 cgroups를 생성했습니다. 대규모 SMP 시스템에서는 cgroups의 수가 늘어나면 성능이 저하되었습니다. 하지만 Red Hat Enterprise Linux 6.2에서는 cgroups CPU 확장성이 개선되어 성능에 영향을 미치지 않고 한 번에 수백 개의 cgroups를 생성 및 실행할 수 있습니다.

확장성 개선 이외에 /proc 조정 가능한 매개 변수 dd sysctl_sched_shares_window가 추가되어 기본값은 10 ms로 설정되어 있습니다.
Cgroups I/O 컨트롤러의 성능 개선

cgroups I/O 컨트롤러 설계는 I/O 컨트롤러내의 잠금 사용량을 줄이도록 개선되어 성능이 향상되었습니다. 또한 I/O 컨트롤러는 cgroup 통계 마다 지원합니다.

Cgroups 메모리 컨트롤러의 성능 향상

Red Hat Enterprise Linux 6.2에서는 page_cgroup 어레이에 대한 오버헤드 할당을 37% 까지 감소시켜 메모리 컨트롤러에서의 메모리 사용 오버헤드를 개선했습니다. 또한 직접적인 page_cgroup-to-page 포인터가 제거되었기 때문에 메모리 컨트롤러의 성능이 향상되었습니다.

CFQ group_isolation 변수의 기본값

CFQ의 group_isolation 변수의 기본값은 0에서 1 (/sys/block/<device>/queue/iosched/group_isoaltion)로 변경되었습니다. 여러 사용자 보고 및 다양한 테스트 후 기본값을 1로 하는 것이 보다 유용함이 밝혀졌습니다. 0으로 설정하면 모든 임의의 I/O 대기열은 어플리케이션의 일부인 실제 cgroup이 아닌 root cgroup의 일부가 됩니다. 따라서 이로 인해 어플리케이션에 대한 서비스 차별화가 이루어 지지 않습니다.

참고

리소스 관리 및 설정 그룹에 대한 자세한 내용은 Red Hat Enterprise Linux 6.2 리소스 관리 가이드에서 참조하십시오.