http://docs.oracle.com/cd/E26925_01/html/E25830/rmctrls.task-33.html
prctl 명령 사용
prctl 명령을 사용하여 시스템의 활성 프로세스, 작업 또는 프로젝트와 연관된 리소스 제어에 대해 런타임 질의 및 수정을 수행합니다. 자세한 내용은 prctl(1) 매뉴얼 페이지를 참조하십시오.
기본 리소스 제어 값을 표시하기 위해 prctl 명령을 사용하는 방법
이 절차는 리소스 제어가 설정되거나 변경된 적이 없는 시스템에서 사용해야 합니다. /etc/system 파일 또는 project 데이터베이스에 기본값이 아닌 항목만 존재할 수 있습니다.
- 실행 중인 현재 셸 등의 프로세스에서 prctl 명령을 사용합니다.
# prctl $$ process: 3320: bash NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT process.max-port-events privileged 65.5K - deny - system 2.15G max deny - process.max-msg-messages privileged 8.19K - deny - system 4.29G max deny - process.max-msg-qbytes privileged 64.0KB - deny - system 16.0EB max deny - process.max-sem-ops privileged 512 - deny - system 2.15G max deny - process.max-sem-nsems privileged 512 - deny - system 32.8K max deny - process.max-address-space privileged 16.0EB max deny - system 16.0EB max deny - process.max-file-descriptor basic 256 - deny 3320 privileged 65.5K - deny - system 2.15G max deny - process.max-core-size privileged 8.00EB max deny - system 8.00EB max deny - process.max-stack-size basic 10.0MB - deny 3320 privileged 32.0TB - deny - system 32.0TB max deny - process.max-data-size privileged 16.0EB max deny - system 16.0EB max deny - process.max-file-size privileged 8.00EB max deny,signal=XFSZ - system 8.00EB max deny - process.max-cpu-time privileged 18.4Es inf signal=XCPU - system 18.4Es inf none - task.max-cpu-time usage 0s system 18.4Es inf none - task.max-processes usage 2 system 2.15G max deny - task.max-lwps usage 3 system 2.15G max deny - project.max-contracts privileged 10.0K - deny - system 2.15G max deny - project.max-locked-memory usage 0B system 16.0EB max deny - project.max-port-ids privileged 8.19K - deny - system 65.5K max deny - project.max-shm-memory privileged 510MB - deny - system 16.0EB max deny - project.max-shm-ids privileged 128 - deny - system 16.8M max deny - project.max-msg-ids privileged 128 - deny - system 16.8M max deny - project.max-sem-ids privileged 128 - deny - system 16.8M max deny - project.max-crypto-memory usage 0B privileged 510MB - deny - system 16.0EB max deny - project.max-tasks usage 2 system 2.15G max deny - project.max-processes usage 4 system 2.15G max deny - project.max-lwps usage 11 system 2.15G max deny - project.cpu-cap usage 0 system 4.29G inf deny - project.cpu-shares usage 1 privileged 1 - none - system 65.5K max none - zone.max-lofi usage 0 system 18.4E max deny - zone.max-swap usage 180MB system 16.0EB max deny - zone.max-locked-memory usage 0B system 16.0EB max deny - zone.max-shm-memory system 16.0EB max deny - zone.max-shm-ids system 16.8M max deny - zone.max-sem-ids system 16.8M max deny - zone.max-msg-ids system 16.8M max deny - zone.max-processes usage 73 system 2.15G max deny - zone.max-lwps usage 384 system 2.15G max deny - zone.cpu-cap usage 0 system 4.29G inf deny - zone.cpu-shares usage 1 privileged 1 - none - system 65.5K max none
지정된 리소스 제어에 대한 정보를 표시하기 위해 prctl 명령을 사용하는 방법
- 실행 중인 현재 셸에 대한 최대 파일 설명자를 표시합니다.
# prctl -n process.max-file-descriptor $$ process: 110453: -sh NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT process.max-file-descriptor basic 256 - deny 11731 privileged 65.5K - deny - system 2.15G max deny
값을 임시로 변경하기 위해 prctl을 사용하는 방법
이 절차 예에서는 prctl 명령을 사용하여 권한이 있는 새 값을 임시로 추가하여 x-files 프로젝트에서 프로젝트별로 세 개를 초과하는 LWP를 사용하지 못하도록 합니다. 결과는 프로젝트의 각 작업에 대한 LWP 최대값을 설정하는 방법의 결과와 비슷합니다.
- 관리자로 전환합니다.
- newtask를 사용하여 x-files 프로젝트를 연결합니다.
# newtask -p x-files
- id 명령을 -p 옵션과 함께 사용하여 올바른 프로젝트가 연결되어 있는지 확인합니다.
# id -p uid=0(root) gid=1(other) projid=101(x-files)
- project.max-lwps에 대해 LWP 수를 세 개로 제한하는 권한이 있는 새 값을 추가합니다.
# prctl -n project.max-lwps -t privileged -v 3 -e deny -i project x-files
- 결과를 확인합니다.
# prctl -n project.max-lwps -i project x-files process: 111108: csh NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT project.max-lwps usage 203 privileged 1000 - deny - system 2.15G max deny -
리소스 제어 값을 낮추기 위해 prctl을 사용하는 방법
- 관리자로 전환합니다.
- prctl 명령을 -r 옵션과 함께 사용하여 process.max-file-descriptor 리소스 제어의 가장 낮은 값을 변경합니다.
# prctl -n process.max-file-descriptor -r -v 128 $$
프로젝트에 대한 제어 값을 표시, 대체 및 확인하기 위해 prctl을 사용하는 방법
- 관리자로 전환합니다.
- group.staff 프로젝트에서 project.cpu-shares 값을 표시합니다.
# prctl -n project.cpu-shares -i project group.staff project: 2: group.staff NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT project.cpu-shares usage 1 privileged 1 - none - system 65.5K max none
- 현재 project.cpu-shares 값 1을 값 10으로 대체합니다.
# prctl -n project.cpu-shares -v 10 -r -i project group.staff
- group.staff 프로젝트에서 project.cpu-shares 값을 표시합니다.
# prctl -n project.cpu-shares -i project group.staff project: 2: group.staff NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT project.cpu-shares usage 1 privileged 1 - none - system 65.5K max none
'UNIX > SUN' 카테고리의 다른 글
[스크랩] 커널 파라미터 on Solaris 10 (0) | 2014.09.18 |
---|---|
[스크랩] Kernel Tunning 방법, IPC Parameter 정리 (0) | 2014.09.18 |
[스크랩] 솔라리스 IOPS 확인 (0) | 2014.07.25 |
[스크랩] 솔라리스 정보 확인 최종본 (0) | 2014.07.25 |
[스크랩] 솔라리스10 u10 기본 설정 - 윈디하나의 솔라나라 (0) | 2014.06.19 |