탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11.1에서 시스템 정보, 프로세스 및 성능 관리 Oracle Solaris 11.1 Information Library (한국어) |
프로세스 클래스에 대한 기본 정보를 표시하는 방법(priocntl)
프로세스 우선 순위를 지정하는 방법(priocntl )
다음 목록은 시스템에서 구성할 수 있는 프로세스 예약 클래스를 나타냅니다. 또한 시간 공유 클래스에 대한 사용자가 우선 순위 범위도 포함되어 있습니다.
가능한 프로세스 예약 클래스는 다음과 같습니다.
공유(FSS)
고정(FX)
시스템(SYS)
대화식(IA)
실시간(RT)
|
프로세스의 예약 우선 순위는 예약 정책에 따라 프로세스 스케줄러에서 지정한 우선 순위입니다. dispadmin 명령은 기본 예약 정책을 나열합니다. 자세한 내용은 dispadmin(1M) 매뉴얼 페이지를 참조하십시오.
priocntl 명령을 사용하여 프로세스를 우선 순위 클래스에 지정하고 프로세스 우선 순위를 관리할 수 있습니다. priocntl 명령을 사용하여 프로세스를 관리하는 방법에 대한 자세한 내용은 프로세스 우선 순위를 지정하는 방법(priocntl )을 참조하십시오.
예 2-4 프로세스 클래스에 대한 기본 정보 표시(priocntl)
다음 예는 priocntl -l 명령의 출력을 보여줍니다.
# priocntl -l CONFIGURED CLASSES ================== SYS (System Class) TS (Time Sharing) Configured TS User Priority Range: -60 through 60 FX (Fixed priority) Configured FX User Priority Range: 0 through 60 IA (Interactive) Configured IA User Priority Range: -60 through 60
예 2-5 프로세스의 전역 우선 순위 표시
다음 예에서는 ps -ecl 명령 출력을 보여줍니다. PRI 열의 값은 각 프로세스의 우선순위를 표시됩니다.
$ ps -ecl F S UID PID PPID CLS PRI ADDR SZ WCHAN TTY TIME CMD 1 T 0 0 0 SYS 96 ? 0 ? 0:11 sched 1 S 0 5 0 SDC 99 ? 0 ? ? 0:01 zpool-rp 0 S 0 1 0 TS 59 ? 688 ? ? 0:00 init 1 S 0 2 0 SYS 98 ? 0 ? ? 0:00 pageout 1 S 0 3 0 SYS 60 ? 0 ? ? 2:31 fsflush 1 S 0 6 0 SDC 99 ? 0 ? ? 0:00 vmtasks 0 S 16 56 1 TS 59 ? 1026 ? ? 0:01 ipmgmtd 0 S 0 9 1 TS 59 ? 3480 ? ? 0:04 svc.star 0 S 0 11 1 TS 59 ? 3480 ? ? 0:13 svc.conf 0 S 0 162 1 TS 59 ? 533 ? ? 0:00 pfexecd 0 S 0 1738 1730 TS 59 ? 817 ? pts/ 1 0:00 bash 0 S 1 852 1 TS 59 ? 851 ? ? 0:17 rpcbind 0 S 17 43 1 TS 59 ? 1096 ? ? 0:01 netcfgd 0 S 15 47 1 TS 59 ? 765 ? ? 0:00 dlmgmtd 0 S 0 68 1 TS 59 ? 694 ? ? 0:01 in.mpath 0 S 1 1220 1 FX 60 ? 682 ? ? 0:00 nfs4cbd 0 S 16 89 1 TS 59 ? 1673 ? ? 0:02 nwamd 0 S 0 146 1 TS 59 ? 629 ? ? 0:01 dhcpagen 0 S 1 129 1 TS 59 ? 1843 ? ? 0:00 kcfd 0 S 1 1215 1 FX 60 ? 738 ? ? 0:00 lockd 0 S 0 829 828 TS 59 ? 968 ? ? 0:00 hald-run 0 S 0 361 1 TS 59 ? 1081 ? ? 0:01 devfsadm 0 S 0 879 1 TS 59 ? 1166 ? ? 0:01 inetd 0 O 119764 1773 880 TS 59 ? 557 cons ole 0:00 ps 0 S 0 844 829 TS 59 ? 996 ? ? 0:00 hald-add 0 S 0 895 866 TS 59 ? 590 ? ? 0:00 ttymon 0 S 0 840 1 TS 59 ? 495 ? ? 0:00 cron 0 S 0 874 1 TS 59 ? 425 ? ? 0:00 utmpd 0 S 0 1724 956 TS 59 ? 2215 ? ? 0:00 sshd 0 S 119764 880 9 TS 59 ? 565 ? cons ole 0:00 csh 0 S 0 210 1 TS 59 ? 1622 ? ? 0:00 sysevent 0 S 0 279 1 TS 59 ? 472 ? ? 0:00 iscsid 0 S 1 1221 1 TS 59 ? 1349 ? ? 0:00 nfsmapid 1 S 0 374 0 SDC 99 ? 0 ? ? 0:00 zpool-us 0 S 0 1207 1 TS 59 ? 1063 ? ? 0:00 rmvolmgr 0 S 0 828 1 TS 59 ? 1776 ? ? 0:03 hald 0 S 0 853 829 TS 59 ? 896 ? ? 0:02 hald-add 0 S 0 373 1 TS 59 ? 985 ? ? 0:00 picld 0 S 0 299 1 TS 59 ? 836 ? ? 0:00 dbus-dae 0 S 12524 1730 1725 TS 59 ? 452 ? pts/ 1 0:00 csh 0 S 0 370 1 TS 59 ? 574 ? ? 0:00 powerd 0 S 0 264 1 FX 60 ? 637 ? ? 0:00 zonestat 0 S 0 866 9 TS 59 ? 555 ? ? 0:00 sac 0 S 0 851 829 TS 59 ? 998 ? ? 0:00 hald-add 0 S 12524 1725 1724 TS 59 ? 2732 ? ? 0:00 sshd 0 S 1 1211 1 TS 59 ? 783 ? ? 0:00 statd 0 S 0 1046 1 TS 59 ? 1770 ? ? 0:13 intrd 0 S 0 889 1 TS 59 ? 1063 ? ? 0:00 syslogd 0 S 0 1209 1 TS 59 ? 792 ? ? 0:00 in.ndpd 0 S 0 1188 1186 TS 59 ? 951 ? ? 0:15 automoun 0 S 0 1172 829 TS 59 ? 725 ? ? 0:00 hald-add 0 S 0 1186 1 TS 59 ? 692 ? ? 0:00 automoun 0 S 101 1739 1738 TS 59 ? 817 ? pts/ 1 0:00 bash 0 S 0 1199 1 TS 59 ? 1495 ? ? 0:02 sendmail 0 S 0 956 1 TS 59 ? 1729 ? ? 0:00 sshd 0 S 25 1192 1 TS 59 ? 1528 ? ? 0:00 sendmail 0 S 0 934 1 TS 59 ? 6897 ? ? 0:14 fmd 0 S 0 1131 1 TS 59 ? 1691 ? ? 0:07 nscd 0 S 1 1181 1 TS 59 ? 699 ? ? 0:00 ypbind
# priocntl -e -c class -m user-limit -p pri command-name
명령을 실행합니다.
프로세스를 실행할 클래스를 지정합니다. 유효한 클래스는 TS(시간 공유), RT(실시간), IA(대화식), FSS(공유) 및 FX(고정 우선 순위)입니다.
이 옵션과 함께 -p 옵션을 사용할 경우 우선 순위를 높이거나 낮출 수 있는 최대 양도 지정됩니다.
실시간 스레드에 대해 RT 클래스의 상대 우선 순위를 지정할 수 있습니다. 시간 공유 프로세스의 경우 -p 옵션을 사용하여 -60부터 +60까지 사용자 지정 우선 순위를 지정할 수 있습니다.
# ps -ecl | grep command-name
예 2-6 프로세스 우선 순위 지정(priocntl)
다음 예는 가능한 가장 높은 사용자 지정 우선 순위로 find 명령을 시작하는 방법을 보여줍니다.
# priocntl -e -c TS -m 60 -p 60 find . -name core -print # ps -ecl | grep find
# priocntl -s -m user-limit [-p user-priority] -i idtype idlist
사용자 우선 순위 범위에 대한 상한을 설정하고 현재 우선 순위를 변경할 수 있습니다.
-p 옵션을 사용할 때 우선 순위를 높이거나 낮출 수 있는 최대 양을 지정합니다.
우선 순위를 지정할 수 있습니다.
xidtype 및 xidlist의 조합을 사용하여 프로세스를 식별합니다. xidtype은 프로세스 ID 또는 사용자 ID와 같은 ID의 유형을 지정합니다. xidlist를 사용하여 프로세스 ID 또는 사용자 ID의 목록을 식별합니다.
# ps -ecl | grep idlist
예 2-7 시간 공유 프로세스의 예약 매개변수 변경(priocntl )
다음 예는 500밀리초 간격, RT 클래스의 우선 순위 20 및 전역 우선 순위 120으로 명령을 실행하는 방법을 보여줍니다.
# priocntl -e -c RT -m 500 -p 20 myprog # ps -ecl | grep myprog
# priocntl -s -c class -i idtype idlist
사용자 우선 순위 범위에 대한 상한을 설정하고 현재 우선 순위를 변경할 수 있습니다.
프로세스를 변경하는 클래스(시간 공유의 경우 TS 또는 실시간의 경우 RT)를 지정합니다.
xidtype 및 xidlist의 조합을 사용하여 프로세스를 식별합니다. xidtype은 프로세스 ID 또는 사용자 ID와 같은 ID의 유형을 지정합니다. xidlist를 사용하여 프로세스 ID 또는 사용자 ID의 목록을 식별합니다.
주 - 실시간 프로세스에서 또는 실시간 프로세스로 프로세스를 변경하려면 root 역할을 맡거나 실시간 셸에서 작업 중이어야 합니다. root 역할을 맡은 사용자가 사용자 프로세스를 실시간 클래스로 변경할 경우 이후 사용자는 priocntl -s 명령을 사용하여 실시간 예약 매개변수를 변경할 수 없습니다.
# ps -ecl | grep idlist
예 2-8 프로세스의 클래스 변경(priocntl)
다음 예는 사용자 15249에 속한 모든 프로세스를 실시간 프로세스로 변경하는 방법을 보여줍니다.
# priocntl -s -c RT -i uid 15249 # ps -ecl | grep 15249
nice 명령은 이전 릴리스에 대한 역호환성을 위해서만 지원됩니다. priocntl 명령이 프로세스 관리에서 더욱 많은 유연성을 제공합니다.
프로세스의 우선 순위는 예약 클래스의 정책 및 해당 nice 번호로 결정됩니다. 각 시간 공유 프로세스에는 전역 우선 순위가 있습니다. 전역 우선 순위는 nice 또는 priocntl 명령의 영향을 받을 수 있는 사용자 지정 우선 순위와 시스템 계산 우선 순위를 더하여 계산됩니다.
프로세스의 실행 우선 순위 번호는 운영 체제에서 지정합니다. 우선 순위 번호는 프로세스의 예약 클래스, 사용한 CPU 시간 및 시간 공유 프로세스의 경우 해당 nice 번호를 포함한 여러 요소로 결정됩니다.
각 시간 공유 프로세스는 상위 프로세스에서 상속된 기본 nice 번호로 시작됩니다. nice 번호는 ps 보고서의 NI 열에 표시됩니다.
사용자는 사용자 지정 우선 순위를 높여 프로세스의 우선 순위를 낮출 수 있습니다. 하지만 수퍼유저만 nice 번호를 낮추어 프로세스의 우선 순위를 높일 수 있습니다. 이 제한 사항은 사용자가 자신의 프로세스 우선 순위를 높여 CPU를 독점하지 못하도록 합니다.
nice 번호의 범위는 0부터 +39까지이며, 0이 가장 높은 우선 순위를 나타냅니다. 각 시간 공유 프로세스에 대한 nice 기본값은 20입니다. 표준 버전인 /usr/bin/nice와 C 셸 내장 명령의 두 가지 버전의 명령을 사용할 수 있습니다.
이 절차에 따라 사용자가 프로세스의 우선 순위를 낮출 수 있습니다. 하지만 root 역할은 프로세스의 우선 순위를 높이거나 낮출 수 있습니다.
다음 nice 명령은 nice 번호를 5단위씩 높여 낮은 우선 순위의 command-name을 실행합니다.
$ /usr/bin/nice -5 command-name
위의 명령에서 마이너스 기호는 뒤따르는 옵션을 지정합니다. 이 명령은 다음과 같이 지정할 수도 있습니다.
$ /usr/bin/nice -n 5 command-name
다음 nice 명령은 nice 번호를 기본 증분값인 10단위씩 높이지만 최대값인 39를 초과하지 않도록 하여 command-name의 우선 순위를 낮춥니다.
$ /usr/bin/nice command-name
다음 nice 명령은 nice 번호를 10단위씩 낮추지만 최소값인 0 미만이 되지 않도록 하여 command-name의 우선 순위를 높입니다.
# /usr/bin/nice --10 command-name
위의 명령에서 첫번째 마이너스 기호는 뒤따르는 옵션을 지정합니다. 두번째 마이너스 기호는 음수를 나타냅니다.
다음 nice 명령은 nice 번호를 5단위씩 높이지만 최대값인 39를 초과하지 않도록 하여 command-name의 우선 순위를 낮춥니다.
# /usr/bin/nice -5 command-name
참조
자세한 내용은 nice(1) 매뉴얼 페이지를 참조하십시오.