TOP(1)

명칭
top - CPU 프로세스의 상위 리스트에 관한 정보를 표시/갱신한다

서식
top [ -SbiInqutv ] [ -dcount ] [ -stime ] [ -ofield ] [ -Uusername ] [ number ]

해설
top (은)는 시스템내의 상위 프로세스를 표시해, 그 정보를 정기적으로 갱신합니다. 생의 CPU 퍼센티지를 이용해 프로세스 순위를 결정합니다. 만약 number 하지만 지정되면(자), 기본값에 대신해, 상위 number 프로세스가 표시됩니다.

top 의 동작은 고기능 단말과 그렇지 않은 단말로 다릅니다. 이 차이에 의해, 몇개의 옵션의 기본값도 바뀌어 옵니다. 이하의 부분에서는,"인텔리전트" 단말이란, 카소르아드레싱, 화면 클리어 및 줄 끝까지의 클리어를 서포트하고 있다 단말을 가리킵니다. 반대로 "댐" 단말이란, 그러한 기능을 서포트하고 있지 않는 것을 말합니다. top 의 출력을 파일에 리디렉트 하면(자), 마치 dumb terminal상에서 동작하고 있도록(듯이) 행동합니다.

옵션

-S  시스템 프로세스도 화면에 표시합니다. pager 나 swapper 라고 하는 시스템 프로세스는 통상, 표시됩니다만, 이 옵션에 의해 그것들도 보이게 됩니다.

-b  "배치" 모드로 합니다. 배치 모드에서는, 단말로부터의 입력은 모두 무시됩니다. 다만 끼어들어 캐릭터 (^C 나 ^\ 등)는 유효합니다. dumb terminal상에서 실행하는 경우나 출력처가 단말 이외의 경우는, 이것이 디폴트입니다.

-i  "대화적 실행" 모드로 합니다. 대화적 실행 모드에서는, 모든 입력은 즉시 읽어들여 처리됩니다. 어느 키가 어떤 기능을 갖고 있을까에 대해서는, "대화적 실행 모드" 의 섹션을 참조해 주세요. 명령이 처리되면(자), 그 커멘드가 이해되지 않았던 경우에서도, 화면은 즉시 갱신됩니다. 출력처가 지능 단말기 의 경우는, 이것이 디폴트입니다.

-I  아이돌 상태의 프로세스를 표시하지 않습니다. 디폴트에서는, top 는 액티브 프로세스도 아이돌 프로세스도 양쪽 모두 표시합니다.

-t  top 프로세스를 표시하지 않게 합니다.

-n  "비대화적 실행" 모드로 합니다. 이것은 "배치" 모드와 같습니다.

-q  top (을)를 -20 에 renice 해, 보다 고속으로 실행되도록(듯이) 합니다. 이 기능은, 시스템이 몹시 무거운 경우에, 문제 개소를 발견할 가능성을 높이기 위해서(때문에) 이용됩니다. 이 옵션은 root 마셔 사용 가능합니다.

-u  uid 치를 유저명으로 변환하는 시간을 할애하지 않게 합니다. 통상, top (은)는 필요에 따라서 파일 "/etc/passwd" 를 읽어, 출현하는 모든 유저 id 치를 로그인명으로 변환합니다. 이 옵션은 그 변환을 모두 멈추어 가능한 한 실행 시간을 저감 시킵니다. 로그인명 대신에 uid 치가 표시됩니다.

-v  버젼 번호 정보를 표준 에러 출력에 써내, 즉석에서 종료합니다. 이 옵션이 사용되었을 경우, 다른 처리는 행해지지 않습니다. top 실행중에 현재의 리버젼 정보를 열람하고 싶은 경우, 헬프 명령 "? " 를 사용해 주세요.

-dcount
    count 회만 표시해, 그 후 종료합니다. 1 회의 표시란, 1 회의 화면 갱신입니다. 이 옵션에 의해, 유저는 희망하는 회수만 상황을 표시해, 그 후 자동적으로 top (을)를 종료시킬 수가 있습니다. 지능 단말기 에서는, 표시 회수의 상한은 설정되어 있지 않습니다. dumb terminal에서는 기본값은 1 회입니다.

-stime
    화면 갱신 간격을 time 초로 설정합니다. 디폴트의 화면 갱신 간격은 초입니다.

-ofield
    프로세스 표시 area를 지정한 필드에 의해 정렬 합니다. 필드명에는 출력으로 나타나고 있는 컬럼명을 이용합니다만, 소문자로 지정합니다. 자주 이용되는 값은 "cpu", "size", "res", "time" 입니다만, 이것은 OS 에 따라서 다릅니다. 반드시 모든 OS 로 이 옵션이 서포트되고 있는 것은 아닌 것에 주의해 주세요.

-Uusername
    유저 username 하지만 소유하고 있는 프로세스만 표시합니다. 현재로서는, 이 옵션은 유저명 지정만 가능해, uid 치는 지정할 수 없습니다.

count (와)과 number (은)는 모두 "무한" 를 지정할 수 있어 그 경우, 그것들은 가능한 한 지연시켜집니다. 이것은, 키워드 "infinity", "maximum", "all" 의 몇개의, 일의에 식별 가능한 선두로부터의 부분 캐릭터 라인을 지정하는 것으로 행해집니다. 실제, 지능 단말기 에서의 count 의 기본값은 infinity 되고 있습니다.

명령행의 옵션을 조사하기 전에, 환경 변수 TOP 하지만 조사할 수 있습니다. 이것에 의해 유저 자신의 기본값을 설정할 수 있습니다. 표시 프로세스수도 환경 변수 TOP 그리고 지정 가능합니다. 옵션 -I, -S, -u, -t (은)는 실제는 타글 옵션입니다. 이러한 옵션을 2 회 지정하면(자), 최초의 지정을 무효로 합니다. 그러니까, 환경 변수 TOP (을)를 "-I" 와 설정해 있는 유저는, "top -I" 로 하는 것으로 아이돌 프로세스의 상황을 볼 수가 있습니다.

대화적 실행 모드
"대화적 실행 모드" 로 동작하고 있는 경우, top (은)는 단말로부터 명령을 읽어들여, 거기에 응해 동작을 실시합니다. 이 모드에서는 단말은 "CBREAK" 모드로 설정되어 입력 캐릭터가 신속하게 처리되게 됩니다. top 의 표시와 표시동안, 즉 top 하지만 time 초가 경과하는 것을 기다리고 있는 동안, 거의 언제라도 키 입력 가능합니다. 실제 키가 밀리면(자), 그 명령은 즉시 처리되어 화면이 갱신됩니다 (그 명령이 지시한 변경도 반영됩니다). 이것은 명령이 올바르지 않은 경우에도 행해집니다. 화면을 갱신하고 있는 한중간에 키가 밀리면(자), top (은)는 화면 갱신을 끝나게 해, 그 명령을 처리합니다. 명령에 따라서는 더욱 정보의 지정이 필요하게 되는 것도 있습니다만, 그 경우, 거기에 응해 유저에게 입력이 요구됩니다. 그 정보를 입력하는 동안, 유저의 삭제 키와 행 삭제 키 ( stty명령로설정된다)가이용할수있어개행에의해입력이완료합니다.

현재로서는, 이하의 명령이 이용 가능합니다 (^L 는 control-L 를 나타냅니다):

^L  화면을 재묘화 합니다.

h or ?
    명령 일람 (헬프 화면)을 표시합니다. 버젼 정보가 이 화면에 포함됩니다.

q   top (을)를 종료합니다.

d   표시하는 화면수를 변경합니다 (새로운 수치 입력이 요구됩니다). 다음번의 표시가 1 번째가 됩니다. 그러니까 d1 (이)라고 입력하면(자), top (은)는 1 회초 가리켜 즉시 종료합니다.

n or #
    표시하는 프로세스수를 변경합니다 (새로운 수치 입력이 요구됩니다).

s   표시 간격의 초수를 변경합니다 (새로운 수치 입력이 요구됩니다).

k   프로세스 리스트에 시그널 (디폴트에서는 "kill")를 보냅니다. kill(1)명령와같은기능을합니다.

r   프로세스 리스트의 우선도 ("nice" 치)를 변경합니다. renice(8)명령와같은기능을합니다.

u   지정한 유저명의 유저가 소유하는 프로세스만 표시합니다 (유저 나이리력 하지만 요구됩니다). 유저명으로서 단지 "+" 가 지정되었을 경우, 전유저의 프로세스가 표시됩니다.

o   표시의 정렬 순서를 변경합니다. 반드시 모든 OS 로 이 옵션이 서포트되고 있는 것은 아닙니다. 정렬 키는 시스템에 따라서 다릅니다만, 통상은 다음의 것이 포함됩니다: "cpu", "res", "size", "time". 디폴트는 cpu 입니다.

e   전회의 kill 또는 renice 명령로 생긴 시스템 우류가 있으면, 그 리스트를 표시합니다.

i   (또는 I) 아이돌 프로세스의 표시 유무를 바꿉니다.

t   top 의 표시 유무를 바꿉니다.

표시
실제의 표시 화면은, 그 머신으로 동작하고 있는 Unix 의 종류에 따라서 다릅니다. 여기서의 설명은, 이 특정 머신으로 동작하는 top 명령의 출력과 엄밀하게는 맞지 않을지도 모릅니다. 차이점은 이 메뉴얼의 끝에 나타내 있습니다.

표시 화면의 선두 몇 줄기에는 시스템 상태에 관한 정보로서 프로세스에 할당할 수 있었던 최종 프로세스 ID (대부분의 시스템), 3 종의 로드 애버리지, 현재 시각, 존재하는 프로세스수, 각 상태 (sleep 중, 실행중, 실행 개시중, 좀비, 정지중)의 프로세스수, 각 프로세서 상태 (유저, nice, 시스템, 아이돌)로 소비한 시간의 비율 등이 표시됩니다. 물리 메모리 및 가상 메모리의 할당해에 관한 정보도 표시됩니다.

화면의 나머지의 부분에는 각 프로세스에 관한 정보가 표시됩니다. 표시 항목은, 내용적으로는 ps(1) (을)를 닮아 있습니다만, 정확하게는 같지는 않습니다. PID 는 프로세스 id, USERNAME 는 프로세스 소유자명 ( -u 지정시는 UID 컬럼이 USERNAME 에 취해 바뀐다), PRI 는 현재의 프로세스 우선도, NICE 는 nice 치 (-20 로부터 20 까지의 범위), SIZE 는 프로세스 사이즈의 합계 (text, data, stack), RES 는 현재의 메모리 상주량 (SIZE 와 RES 는 모두 킬로바이트 단위), STATE 는 현재 상태 ("sleep", "WAIT", "run", "idl", "zomb", "stop" 의 언젠가), TIME 는 프로세스가 소비한 시스템 시간 및 유저 시간의 초수, WCPU 는 (만약 있으면) 중량감 첨부 CPU 퍼센티지 (이것은 ps(1) 하지만 CPU 로서 표시하는 것과 같다), CPU 는 생의 퍼센티지로, 프로세스 순서를 결정하는 정렬 처리에 이용되는 것, 그리고 COMMAND 는 프로세스가 현재 실행하고 있는 명령명입니다 (만약 프로세스가 스왚 아웃중이라면, 이 컬럼에게는 "<swapped>" 라고 하는 표가 붙는다).

주의
"ABANDONED" 상태 (커널중에서는 "SWAIT" 상태로서 알려져 있습니다)는 버리고 가진 것 이유, 이 명칭이 붙어 있습니다. 프로세스는 이 상태로 끝나야 하는 것이 아닙니다.

저자
William LeFebvre, EECS Department, Northwestern University

환경 변수
TOP    유저가 설정할 수 있는 옵션의 기본값

관련 파일
/dev/kmem    카네르메모리
/dev/mem    물리 메모리
/etc/passwd    uid 치를 유저명으로 변환하는데 사용
/kernel    시스템 이미지

버그
-I 의 기본값이 한번 더 변경되었습니다만, 나를 탓하지 말아 주세요. top 하지만 전프로세스를 표시하는 것은 아닌 것으로 몹시 많은 사람이 혼란했기 때문에, 버젼 2 의 무렵과 같이, 디폴트로 아이돌 프로세스도 표시하는 것에 결정했습니다. 그러나 이 동작에 견딜 수 없는 사람들을 위해서(때문에), 환경 변수 TOP 에 "디폴트" 옵션을 설정해 두는 기능을 추가했습니다 (옵션의 섹션을 참조). 버젼 3.0 이 가지고 있는 행동이 필요한 사람은, 환경 변수 TOP 에 값 "-I" 를 설정하는 것만으로 OK 입니다.

스왑 된 프로세스에 대한 명령명은 추적해야 합니다만, 그것을 실시하면 프로그램의 동작이 늦어지겠지요.

ps(1) (와)과 같이, top 하지만 갱신 정보를 수집하고 있는 동안에 사태가 변화할 가능성이 있습니다. 표시 내용은 현실에 가까운 근사치에 지나지 않습니다.

관련 항목
kill(1), ps(1), stty(1), mem(4), renice(8)

FreeBSD 에 관한 주

메모리에 관한 설명
Mem: 9220K Active, 1032K Inact, 3284K Wired, 1MB Cache, 2M Buf, 1320K Free Swap: 91M Total, 79M Free, 13% Inuse, 80K In, 104 K Out K: 킬로바이트.

M:  메가바이트.

%:  1/100.

Active:
    액티브한 페이지수.

Inact:
    액티브하지 않은 페이지수.

Wired:
    고정되고 있는 페이지수. 캐쉬된 파일 데이터 페이지를 포함한다.

Cache:
    VM 레벨의 디스크 캐쉬 프로그램에 사용하고 있는 페이지수.

Buf:
    BIO 레벨의 디스크 캐쉬 프로그램에 사용하고 있는 페이지수.

Free:
    미사용 페이지수.

Total:
    사용 가능한 스왑 합계.

Free:
    미사용 스왑 합계.

Inuse:
    사용중 스왑.

In: (직전의 표시 간격에 대해) 스왑 디바이스로부터 페이지 인 한 페이지수

Out:
    (직전의 표시 간격에 대해) 스왑 디바이스에 페이지 아웃 한 페이지수