솔라리스 익스프레스 커뮤니티 에디션 빌드 56 부터 향상된 컨테이너 생성을 위한 향상된 zonecfg 기능이 사용 가능합니다. 존을 생성할때 시스템에 의해 제공되는 자원 관리 기능을 레버리지 하는 것이 쉬워 졌습니다. zonecfg 커맨드는 이제 임시 풀을 설정하고, 메모리 제한 설정, 존의 기본 스케줄링 클래스 설정, 그리고 rctl aliase 등을 지정하는데 사용될 수 있습니다. 사용자가 지정한 자원설정은 자동적으로 존이 부팅 될때 생성됩니다. 더이상 자원 관리를 위해 수동으로 작업을 수행할 필요가 없습니다.

zonecfg 커맨드는 또한 글로벌 존의 자원 관리를 설정하는데 사용될 수 있습니다.

rcapd 가 향상되었고 이제 존의 물리적 메모리 소모를 제한할 수 있습니다. 여러분은 글로벌 존에서 rcapd 를 사용해서 비-글로벌 존에서의 물리적 메모리 소모를 통제할 수 있습니다. rcapdprstat 둘다 RSS 의 정확한 값을 결정할 수 있도록 향상되었습니다.

새로운 기능은 솔라리스 (네이티브) 존과 리눅스 브랜디드 존에서 둘다 사용이 가능합니다.


글로벌 존에서 zonecfg 사용하기

zonecfg 는 이제 글로벌 존에서 글로벌 존의 자원 관리 설정을 지정하는데에 사용될 수 있습니다.

존 전체 자원 컨트롤을 글로벌 프로퍼티 이름으로 지정할 수 있음

이제 존 전체 컨트롤을 rctl 을 사용하는 대신에 zonefigset global_property_name 서브 커맨드를 사용하여 설정할 수 있습니다. 아래와 같은 존 전체 자원 컨트롤이 사용 가능합니다.

  • zone.cpu-shares (선호되는 방법: cpu-shares)
  • zone.max-locked-memory ( capped-memory 자원의 locked 프로퍼티가 이 컨트롤을 조정하는데에 더 낳은 방법임.)
  • zone.max-lwps (선호되는 방법: max-lwps)
  • zone.max-msg-ids (선호되는 방법: max-msg-ids)
  • zone.max-sem-ids (선호되는 방법: max-sem-ids)
  • zone.max-shm-ids (선호되는 방법: max-shm-ids)
  • zone.max-shm-memory (선호되는 방법: max-shm-memory)
  • zone.max-swap (capped-memory 자원의 swap 프로퍼티가 이 컨트롤을 조정하는데에 선호되는 방법임.)

글로벌 프로퍼티 사용 예제

zonecfg:my-zone> set cpu-shares=5

스케줄링 클래스

여러분은 fair share scheduler (FSS) 를 사용해서 중요도에 따라 존 간의 사용 가능한 CPU 자원의 할당을 조정할 수 있습니다.

명시적으로 새로운 new cpu-shares 프로퍼티를 지정하면 fair share scheduler (FSS) 가 존의 스케줄링 클래스로 사용 됩니다. 그러나 좀 더 선호되는 방법은 FSS 를 dispadmin 커맨드를 이용해서 시스템 기본 클래스로 지정함으로써 모든 존이 시스템 CPU 자원을 공평하게 사용 할 수 있도록 하는 것입니다. 만약 cpu-shares 가 설정되지 않는다면 존은 시스템의 기본 스케줄링 클래스를 사용할 것입니다. 다음의 작업들을 통해 존의 스케줄링 클래스를 설정할 수 있습니다:

  • 여러분은 존에 스케줄링 클래스를 설정할때 새로운 scheduling-class 프로퍼티를 zonecfg 에서 사용할 수 있습니다.
  • 자원 풀 설비를 통해서 존의 스케줄링 클래스를 설정할 수 있습니다. 만약 존이 pool.scheduler 에 유효한 스케줄링 클래스가 지정되 있는 풀과 연관된다면 존 내의 프로세스들은 기본적으로 그 스케줄링 클래스를 사용 합니다.
  • 만약 새로운 cpu-shares rctl 이 설정되고 FSS 가 존의 스케줄링 클래스로 지정되지 않는다면 zoneadmd 은 존이 부팅될때 FSS 를 기본 스케줄링 클래스로 지정합니다.
  • 만약 스케줄링 클래스가 지정되지 않는다면 존은 시스템의 기본 스케줄링 클래스를 상속받습니다.

scheduling-class 프로퍼티 사용법

스케줄링 클래스를 FSS 로 설정해 봅시다.

zonecfg:my-zone> set scheduling-class=FSS

물리 메모리 컨트롤 및 capped-memory 자원

capped-memory 자원은 physical, swap, 그리고 locked 메모리의 제한을 지정합니다. 각 제한은 선택적이지만 적어도 하나는 지정되어야 합니다.

  • 글로벌 존의 rcapd 를 이용해서 존의 메모리를 제한할 것을 계획하고 있다면 이 자원의 값을 결정해야 합니다. physical 프로퍼티는 rcapd 에서 존의 max-rss 값처럼 사용 됩니다.
  • capped-memory 자원의 swap 프로퍼티가 zone.max-swap 자원 컨트롤을 설정하는데에 좀 더 선호되는 방법입니다.
  • capped-memory 자원의 locked 프로퍼티가 zone.max-locked-memory 자원 컨트롤을 설정하는데에 좀 더 선호되는 방법입니다.

capped-memory 자원 사용법 예제

my-zone 이라는 존의 메모리 제한을 지정합니다. 각 제한은 선택적이지만 반드시 하나는 지정이 되어야 합니다.

zonecfg:my-zone> add capped-memoryzonecfg:my-zone:capped-memory> set physical=50m
zonecfg:my-zone:capped-memory> set swap=100m
zonecfg:my-zone:capped-memory> set locked=30m
zonecfg:my-zone:capped-memory> end

dedicated-cpu 자원

dedicated-cpu 자원을 이용해서 비-글로벌 존에 할당되는 시스템 프로세서의 서브셋을 지정할 수 있습니다. 시스템은 존이 실행되는 동안 동적으로 임시 풀을 생성할 것입니다.

주의: dedicated-cpu 자원은 cpu-shares rctl 의 pool 프로퍼티와 호환되지 않습니다.

dedicated-cpu 자원 사용법 예제

dedicated-cpu 자원은 CPU 의 숫자를 제한하고 추가적으로 풀의 상대적인 중요성을 설정할 수 있습니다.

다음의 예는 존 my-zone 의 CPU 숫자 범위를 지정한 예제 입니다.
zonecfg:my-zone> add dedicated-cpu
zonecfg:my-zone:dedicated-cpu> set ncpus=1-3
zonecfg:my-zone:dedicated-cpu> set importance=2
zonecfg:my-zone:dedicated-cpu> end
동적인 자원 풀 을 위해 범위를 지정한다면 다음을 따르시기 바랍니다:
  • importance 프로퍼티를 지정합니다.
  • System Administration Guide 의 "Enabling and Disabling the Pools Facility" 에 설명한 대로 동적 자원 풀을 활성화 시킵니다: docs.sun.com 에 있는 Solaris Containers--Resource Management 와 Solaris Zones 참고.

clear 서브커맨드

이 새로운 서브커맨드는 선택적인 설정들의 값들을 초기화 하는데 사용됩니다. 필수 설정 값들은 초기화 될 수 없습니다. 그러나 몇몇 필 수 값들도 새로운 값을 지정함으로써 변경될 수 있습니다.

clear 서브커맨트 사용 예제

zonecfg:my-zone> clear pool

추가 정보

추가 정보는 System Administration Guide: Solaris Containers--Resource Management and Solaris Zones 를 참고하시기 바랍니다.



이 아티클의 영문 원본은
http://opensolaris.org/os/community/zones/files/Zones_RM_Improvements.html
에서 볼수 있습니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

트랙백 주소 :: http://sdnkorea.com/blog/trackback/465

댓글을 달아 주세요

댓글을 쓰시려면 로그인해주세요.

블로그 이미지
Statistics Graph
회사소개  |   문의  |   사용약관  |   개인정보보호정책  |   등록상표