Oracle® Solaris 11.2의 리소스 관리

인쇄 보기 종료

업데이트 날짜: 2014년 7월
 
 

리소스 제어 값에 대한 전역 및 로컬 동작

리소스 제어 값에 대한 동작 범주에는 전역과 로컬의 두 가지가 있습니다.

리소스 제어 값에 대한 전역 동작

전역 동작은 시스템의 모든 리소스 제어에 대한 리소스 제어 값에 적용됩니다. rctladm(1M) 매뉴얼 페이지에 설명된 rctladm 명령을 사용하여 다음 동작을 수행할 수 있습니다.

  • 활성 시스템 리소스 제어의 전역 상태 표시

  • 전역 로깅 동작 설정

리소스 제어에 대한 전역 로깅 동작을 사용 또는 사용 안함으로 설정할 수 있습니다. 심각도 레벨을 지정하여(syslog=level) syslog 동작을 특정 레벨로 설정할 수 있습니다. level에 사용할 수 있는 설정은 다음과 같습니다.

  • debug

  • info

  • notice

  • warning

  • err

  • crit

  • alert

  • emerg

기본적으로 리소스 제어 위반에 대한 전역 로깅은 없습니다. n/a 레벨은 전역 동작을 구성할 수 없는 리소스 제어를 나타냅니다.

리소스 제어 값에 대한 로컬 동작

제어 값을 초과하려는 프로세스에 대해 로컬 동작이 수행됩니다. 리소스 제어에 설정된 각 임계값에 대해 하나 이상의 동작을 연결할 수 있습니다. 로컬 동작에는 none, denysignal=의 세 가지 유형이 있습니다. 이러한 세 가지 동작은 다음과 같이 사용됩니다.

none

임계치보다 많은 양의 리소스 요청에 대해 동작이 수행되지 않습니다. 이 동작은 응용 프로그램 진행에 영향을 주지 않고 리소스 사용을 모니터링하는 데 유용합니다. 또한 임계치를 초과하는 프로세스에 영향을 주지 않지만 리소스 제어가 초과될 때 표시되는 전역 메시지를 사용으로 설정할 수도 있습니다.

deny

임계치보다 많은 양의 리소스 요청을 거부할 수 있습니다. 예를 들어 task.max-lwps 리소스 제어와 deny 동작을 사용하면 새 프로세스가 제어 값을 초과할 경우 fork 시스템 호출이 실패합니다. fork(2) 매뉴얼 페이지를 참조하십시오.

signal=

리소스 제어를 초과할 때 전역 단일 메시지 동작을 사용으로 설정할 수 있습니다. 임계치 값이 초과될 때 신호가 해당 프로세스로 전송됩니다. 해당 프로세스가 추가 리소스를 사용할 경우 추가 신호가 전송되지 않습니다. 사용할 수 있는 신호는 Table 6–3에 나열되어 있습니다.

일부 동작은 리소스 제어에 적용되지 않을 수 있습니다. 예를 들어 프로세스는 자신이 구성원으로 있는 프로젝트에 지정된 CPU 할당 수를 초과할 수 없습니다. 따라서 project.cpu-shares 리소스 제어에는 거부(deny) 동작이 허용되지 않습니다.

구현 제한으로 인해 각 컨트롤의 전역 등록 정보는 임계치 값에 설정할 수 있는 사용 가능한 동작의 범위를 제한할 수 있습니다. rctladm(1M) 매뉴얼 페이지를 참조하십시오. 사용 가능한 신호 동작 목록은 다음 표에 나와 있습니다. 신호에 대한 자세한 내용은 signal(3HEAD) 매뉴얼 페이지를 참조하십시오.

표 6-3  리소스 제어 값에 사용할 수 있는 신호
신호
설명
SIGABRT
프로세스를 종료합니다.
SIGHUP
행업 신호를 전송합니다. 사용 가능한 회선에서 반송파가 중단될 때 발생합니다. 터미널을 제어하는 프로세스 그룹으로 전송되는 신호입니다.
SIGTERM
프로세스를 종료합니다. 소프트웨어에서 전송한 종료 신호입니다.
SIGKILL
프로세스를 종료하고 프로그램을 강제 종료합니다.
SIGSTOP
프로세스를 중지합니다. 작업 제어 신호입니다.
SIGXRES
리소스 제어 제한을 초과했습니다. 리소스 제어 기능을 통해 생성되었습니다.
SIGXFSZ
프로세스를 종료합니다. 파일 크기 제한을 초과했습니다.
RCTL_GLOBAL_FILE_SIZE 등록 정보를 가진 리소스 제어(process.max-file-size)에만 사용할 수 있습니다. 자세한 내용은 rctlblk_set_value(3C)를 참조하십시오.
SIGXCPU
프로세스를 종료합니다. CPU 시간 제한을 초과했습니다.
RCTL_GLOBAL_CPUTIME 등록 정보를 가진 리소스 제어(process.max-cpu-time)에만 사용할 수 있습니다. 자세한 내용은 rctlblk_set_value(3C)를 참조하십시오.