>  기사  >  php教程  >  리눅스 명령어: top 명령어

리눅스 명령어: top 명령어

高洛峰
高洛峰원래의
2016-12-13 11:59:351741검색

top 명령은 Linux에서 흔히 사용되는 성능 분석 도구로, Windows 작업 관리자와 유사하게 시스템 내 각 프로세스의 리소스 사용량을 실시간으로 표시할 수 있습니다. 다음은 사용법을 자세히 설명합니다. top은 동적 표시 프로세스입니다. 즉, 사용자의 키 입력을 통해 현재 상태를 계속해서 새로 고칠 수 있습니다. 이 명령을 전경에서 실행하면 사용자가 프로그램을 종료할 때까지 전경을 독점적으로 차지합니다. top 명령은 시스템의 실시간 제어를 제공합니다. 시스템에서 가장 CPU에 민감한 작업 목록을 표시합니다. 이 명령은 CPU 사용량, 메모리 사용량 및 다양한 기능을 기준으로 작업을 정렬할 수 있습니다. 이 명령은 대화형 명령을 통해 액세스하거나 개인 사용자 정의 파일에서 설정을 수행할 수 있습니다.

1. 명령형식 :

top [파라미터]

2. 명령 기능:

프로세스 ID, 메모리 사용량, CPU 사용량 등 현재 시스템에서 실행 중인 프로세스에 대한 관련 정보를 표시합니다.

3. 명령 매개변수:

-b 일괄 처리

-c 전체 처리 명령 표시

-I 실패 프로세스 무시

-s 비밀 모드

-S 누적 모드

-i

-u 사용자 이름 지정

-p 🎜>

-n 루프에 표시되는 횟수


4. 사용 예:

예 1: 프로세스 정보 표시

명령:

top

출력:

[root@TG1704 log]# top
top - 14:06:23 up 70 days, 16:44,  2 users,  load average: 1.25, 1.32, 1.35
Tasks: 206 total,   1 running, 205 sleeping,   0 stopped,   0 zombie
Cpu(s):  5.9%us,  3.4%sy,  0.0%ni, 90.4%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  32949016k total, 14411180k used, 18537836k free,   169884k buffers
Swap: 32764556k total,        0k used, 32764556k free,  3612636k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                
28894 root      22   0 1501m 405m  10m S 52.2  1.3   2534:16 java                                                                   
18249 root      18   0 3201m 1.9g  11m S 35.9  6.0 569:39.41 java                                                                   
 2808 root      25   0 3333m 1.0g  11m S 24.3  3.1 526:51.85 java                                                                   
25668 root      23   0 3180m 704m  11m S 14.0  2.2 360:44.53 java                                                                   
  574 root      25   0 3168m 611m  10m S 12.6  1.9 556:59.63 java                                                                   
 1599 root      20   0 3237m 1.9g  11m S 12.3  6.2 262:01.14 java                                                                   
 1008 root      21   0 3147m 842m  10m S  0.3  2.6   4:31.08 java                                                                   
13823 root      23   0 3031m 2.1g  10m S  0.3  6.8 176:57.34 java                                                                   
28218 root      15   0 12760 1168  808 R  0.3  0.0   0:01.43 top                                                                    
29062 root      20   0 1241m 227m  10m S  0.3  0.7   2:07.32 java                                                                   
    1 root      15   0 10368  684  572 S  0.0  0.0   1:30.85 init                                                                   
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:01.01 migration/0                                                            
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0                                                            
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0                                                             
    5 root      RT  -5     0    0    0 S  0.0  0.0   0:00.80 migration/1                                                            
    6 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1                                                            
    7 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/1                                                             
    8 root      RT  -5     0    0    0 S  0.0  0.0   0:20.59 migration/2                                                            
    9 root      34  19     0    0    0 S  0.0  0.0   0:00.09 ksoftirqd/2                                                            
   10 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/2                                                             
   11 root      RT  -5     0    0    0 S  0.0  0.0   0:23.66 migration/3                                                            
   12 root      34  19     0    0    0 S  0.0  0.0   0:00.03 ksoftirqd/3                                                            
   13 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/3                                                             
   14 root      RT  -5     0    0    0 S  0.0  0.0   0:20.29 migration/4                                                            
   15 root      34  19     0    0    0 S  0.0  0.0   0:00.07 ksoftirqd/4                                                            
   16 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/4                                                             
   17 root      RT  -5     0    0    0 S  0.0  0.0   0:23.07 migration/5                                                            
   18 root      34  19     0    0    0 S  0.0  0.0   0:00.07 ksoftirqd/5                                                            
   19 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/5                                                             
   20 root      RT  -5     0    0    0 S  0.0  0.0   0:17.16 migration/6                                                            
   21 root      34  19     0    0    0 S  0.0  0.0   0:00.05 ksoftirqd/6                                                            
   22 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/6                                                             
   23 root      RT  -5     0    0    0 S  0.0  0.0   0:58.28 migration/7
지침:

통계 정보 영역:

처음 5줄은 현재 시스템 상황에 대한 전반적인 통계 정보 영역입니다. 아래에서는 각 정보 줄의 구체적인 의미를 살펴보겠습니다.

첫 번째 줄인 작업 대기열 정보는 uptime 명령의 실행 결과와 동일합니다. 구체적인 매개 변수 설명은 다음과 같습니다.

14:06:23 — 현재 시스템 시간

70일 16:44 — 시스템이 70일 16시간 44분 동안 실행되었습니다(이 기간 동안 시스템이 다시 시작되지 않았습니다!)

사용자 2명 — 거기 현재 2명의 사용자가 시스템에 로그인되어 있습니다.

로드 평균: 1.15, 1.42, 1.44 — 로드 평균 뒤의 세 숫자는 각각 1분, 5분, 15분 동안의 로드 조건입니다.

부하 평균 데이터는 5초마다 활성 프로세스 수를 확인한 후 특정 알고리즘에 따라 계산한 값입니다. 이 숫자를 논리적 CPU 수로 나눈 경우 결과가 5보다 크면 시스템이 과부하되었음을 나타냅니다.

두 번째 줄인 작업 - 작업(프로세스), 구체적인 정보는 다음과 같습니다.

이제 시스템에는 총 206개의 프로세스가 있으며 그 중 1개는 실행 중이고 205개는 절전 모드입니다( sleep) ), 중지된 상태에서는 0, 좀비 상태(좀비)에서는 0입니다.

세 번째 줄인 CPU 상태 정보, 구체적인 속성 설명은 다음과 같습니다.

5.9%us - 사용자 공간이 CPU를 차지하는 비율입니다.

3.4% sy — 커널 공간이 차지하는 CPU 비율입니다.

0.0% ni — 우선순위가 변경된 프로세스가 차지하는 CPU 비율

90.4% id — 유휴 CPU 비율

0.0% wa — CPU 비율 IO 대기에 의해 점유됨

0.0% hi — 하드웨어 IRQ가 차지하는 CPU 비율

0.2% si — 소프트웨어 인터럽트가 차지하는 CPU 비율

참고: 여기 CPU Windows 개념과 사용 비율이 다릅니다. Linux 시스템 사용자 공간과 커널 공간에 대한 관련 지식을 이해해야 합니다!

네 번째 줄인 메모리 상태, 구체적인 정보는 다음과 같습니다.

32949016k total — 총 물리적 메모리(32GB)

14411180k 사용됨 — 사용 중인 총 메모리(14GB) )

18537836k free — 총 여유 메모리(18GB)

169884k 버퍼 — 캐시된 메모리(169M)

다섯 번째 줄, 스왑 파티션 정보, 특정 정보 설명 다음과 같습니다.

총 32764556k - 총 스왑 영역(32GB)

사용된 0k - 사용된 총 스왑 영역(0K)

32764556k free - 총 사용 가능한 스왑 영역(32GB)

3612636k 캐시됨 - 총 버퍼링된 스왑 영역(3.6GB)


참고: 네 번째 줄에 사용된

총 메모리 양(사용된) in은 현재 시스템 커널에 의해 제어되는 메모리의 양을 나타내며, 사용 가능한 총 메모리 양(free)은 커널이 아직 제어에 포함되지 않은 양입니다. 커널이 관리하는 메모리가 모두 사용되는 것은 아니며, 과거에 사용되어 이제는 재사용할 수 있는 메모리도 포함됩니다. , 하지만 걱정하지 마세요.

사용 가능한 메모리 양을 계산하는 데 익숙하다면 대략적인 계산 공식은 다음과 같습니다. 네 번째 줄의 free + 네 번째 줄의 버퍼 + 다섯 번째 줄의 캐시 이 공식에 따르면 사용 가능한 메모리 양입니다. 이 서버의 메모리 : 18537836k +169884k +3612636k = 약 22GB.

메모리 모니터링을 위해 맨 위의 다섯 번째 줄에서 스왑 파티션의 사용을 항상 모니터링해야 합니다. 이 값이 지속적으로 변한다는 것은 커널이 메모리와 스왑 간에 데이터를 지속적으로 교환하고 있다는 의미입니다. 실제 메모리가 충분하지 않습니다.

여섯 번째 줄은 빈 줄입니다.

7번째 줄 이하 : 각 프로세스(작업) 상태 모니터링, 프로젝트 열 정보는 다음과 같습니다.

PID — 프로세스 ID

USER — 프로세스 소유자

PR — 프로세스 우선순위

NI — 좋은 가치. 음수 값은 높은 우선 순위를 나타내고 양수 값은 낮은 우선 순위를 나타냅니다.

VIRT - 프로세스에서 사용하는 총 가상 메모리 양(KB)입니다. VIRT=SWAP+RES

RES — 스왑 아웃되지 않은 프로세스에서 사용하는 물리적 메모리의 크기(kb)입니다. RES=CODE+DATA

SHR — 공유 메모리 크기, 단위 kb

S — 프로세스 상태. D=무중단 절전 상태 R=실행 S=절전 T=추적/중지 Z=좀비 프로세스

%CPU — 마지막 업데이트 이후 점유된 CPU 시간의 백분율

%MEM — 백분율 프로세스에서 사용하는 물리적 메모리

TIME+ — 프로세스에서 사용한 총 CPU 시간, 단위 1/100초

COMMAND — 프로세스 이름(명령 이름/명령줄)


기타 활용팁 :

1. Multi-U 멀티코어 CPU 모니터링

상단 기본 보기에서 키보드 숫자 "1"을 눌러 모니터링하세요. 각 논리적 CPU 상태:

리눅스 명령어: top 명령어

위 그림을 보면 서버에 논리적 CPU가 16개 있는데 실제로는 물리적 CPU가 4개입니다. 상단 기본 보기 인터페이스로 돌아가려면 숫자 키 1을 다시 누르세요.

2. 현재 실행 중인 프로세스를 강조 표시합니다

키보드에서 "b"를 누르면(하이라이트 효과 켜기/끄기) 상단 보기가 다음과 같이 변경됩니다.

리눅스 명령어: top 명령어

프로세스 ID가 2570인 "top" 프로세스가 강조 표시되어 있는 것을 발견했습니다. 이 프로세스는 뷰의 두 번째 줄에 표시되는 유일한 실행 프로세스입니다. "y" 키를 누를 수 있습니다. 실행 중인 프로세스의 강조 효과를 끄거나 켭니다.

3. 프로세스 필드 정렬

기본적으로 top에 들어가면 각 프로세스가 CPU 사용량에 따라 정렬됩니다. 아래 그림에서는 프로세스 ID가 28894인 Java 프로세스가 1위를 차지합니다(CPU 점유). 142%), 프로세스 ID 574인 Java 프로세스가 2위를 차지했습니다(CPU 점유율 16%).

리눅스 명령어: top 명령어

키보드에서 "x"를 누르면(정렬 열의 강조 효과 켜기/끄기) 상단 보기가 다음과 같이 변경됩니다.

리눅스 명령어: top 명령어

보시다시피 top의 기본 정렬 열은 "%CPU"입니다.


4. "shift + >" 또는 "shift +

아래는 한 번의 클릭을 보여줍니다. "shift + >" 렌더링은 이제 %MEM에 따라 뷰가 정렬됩니다.

리눅스 명령어: top 명령어

예 2: 전체 명령 표시

명령:

top -c

출력:

리눅스 명령어: top 명령어

지침:


예 3: 일괄 모드로 프로그램 정보 표시

명령:

top -b

출력:

설명:


예 4: 누적 모드에서 프로그램 정보 표시

명령:

top -S

출력:

설명:


예 5: 개수 설정 정보 업데이트

명령:

top -n 2

출력:

설명:

은 두 번 업데이트한 후 업데이트를 종료한다는 의미입니다.


예 6: 정보 업데이트 시간 설정

명령:

top -d 3

출력:

지침:

은 업데이트 주기가 3초임을 의미합니다.


예 7: 지정된 프로세스 정보 표시

명령 :

top -p 574

출력:

리눅스 명령어: top 명령어

설명:

5.top 대화형 명령


top 명령 실행 중에 사용할 수 있는 일부 대화형 명령입니다. 이러한 명령은 단일 문자이며 명령줄에서 s 옵션을 사용하면 일부가 차단될 수 있습니다.

h 도움말 화면을 표시하고 짧은 명령 요약 지침을 제공합니다.

k 프로세스를 종료합니다.

i 유휴 프로세스와 좀비 프로세스를 무시합니다. 스위치 명령입니다.

q 프로그램 종료

r 프로세스 우선 순위 재정렬

S 누적 모드로 전환

s 새로 고침 간 지연 변경(단위는 s입니다. ), 소수가 있으면 ms로 변환합니다. 값 0을 입력하면 시스템이 계속해서 새로 고쳐집니다. 기본값은 5초입니다.

f 또는 F 현재 디스플레이에서 항목을 추가하거나 삭제합니다.

o 또는 O 표시된 항목의 순서를 변경합니다.

l 평균 로드 및 시작 시간 정보 표시 토글

m 메모리 정보 표시 토글

t 프로세스 및 CPU 상태 정보 표시 토글

c 명령 이름 표시로 전환하고 명령줄 완성

M 상주 메모리 크기로 정렬

P CPU 사용률로 정렬

T 시간으로 정렬/ 정렬 누적 시간

W 현재 설정을 ~/.toprc 파일에 기록합니다


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.