top 명령어의 사용
top명령어는 리눅스/유닉스 시스템에서 실시간으로 프로세스 상태를 모니터링하는 도구.
시스템에서 실행 중인 프로세스의 CPU, 메모리 사용량, 시스템 부하 등의 정보를 실시간으로 확인할 수 있습니다.
top
명령어 화면 구성
- up : 시스템이 얼마나 오랫동안 동작했는지 확인 가능
- 사용자 세션: 로그인한 사용자의 수.
- 로드 평균(load average): 1분, 5분, 15분 간의 시스템 부하.
※ 숫자가 낮을수록 시스템 부하가 적음 - Tasks: 시스템에서 실행 중인 작업 상태.
- total: 전체 프로세스 수
- running: 실행 중인 프로세스 수
- sleeping: 대기 중인 프로세스 수
- stopped: 정지된 프로세스 수
- zombie: 좀비 프로세스 수
- CPU 사용량: 각 항목은 CPU의 시간 사용을 나타냅니다.
- us: 사용자 영역에서 사용 중인 CPU 시간 (일반 사용자 프로세스)
- sy: 시스템 영역에서 사용 중인 CPU 시간 (커널 프로세스)
- ni: 사용자 프로세스 중에서 nice 값을 변경하여 우선순위를 조정한 프로세스의 CPU 시간
- id: 유휴 시간 (아무 작업도 하지 않는 시간)
- wa: I/O 대기 시간
- hi: 하드웨어 인터럽트 처리 시간
- si: 소프트웨어 인터럽트 처리 시간
- st: 하이퍼바이저가 다른 가상 머신을 서비스하는 데 사용된 시간
- 메모리 사용량: 물리적 메모리와 스왑 메모리의 사용량
- Mem: 사용 중인 물리적 메모리 (total, used, free, buff/cache)
- Swap: 사용 중인 스왑 메모리 (total, used, free, avail Mem)
프로세스 리스트
- PID: 프로세스 ID
- USER: 프로세스를 실행한 사용자
- PR: 프로세스 우선순위
- NI: 프로세스의 nice 값 (우선순위 변경 가능)
- VIRT: 가상 메모리 사용량
- RES: 실제 메모리 사용량
- SHR: 공유 메모리 사용량
- S: 프로세스 상태 (R=Running, S=Sleeping, Z=Zombie, T=Stopped)
- %CPU: CPU 사용 비율
- %MEM: 메모리 사용 비율
- TIME+: 프로세스가 사용한 총 CPU 시간
- COMMAND: 실행 중인 명령어 또는 프로세스 이름
top 명령어에서 사용할 수 있는 키
- q: top 명령어 종료
- h: 도움말 보기
- k: 프로세스 종료 (PID 입력 후 종료할 프로세스 지정)
- r: 프로세스 우선순위 변경 (PID 입력 후 nice 값 조정)
- P: CPU 사용률 기준으로 정렬
- M: 메모리 사용률 기준으로 정렬
- T: 프로세스 실행 시간 기준으로 정렬
- 1: CPU별 사용량 표시 (멀티코어 CPU의 경우 각 코어별로 사용량을 볼 수 있음)
- f: 출력 필드 추가/삭제 및 정렬 설정 변경
top 명령어 옵션
- -u 사용자: 특정 사용자의 프로세스만 보기
top -u root
- -p PID: 특정 PID의 프로세스만 모니터링
top -p 1234
- -d 간격: 업데이트 간격 설정 (초 단위, 기본 3초)
top -d 5
Load Average
시스템의 부하 정도를 나타내는 중요한 지표로, 주로 리눅스 및 유닉스 계열 시스템에서 시스템 상태를 모니터링할 때 사용
일정 기간 동안 시스템의 CPU에 대기 중이거나 실행 중인 작업의 평균 개수를 나타냄. 여기서 '작업'은 주로 CPU에 대한 요청을 의미하며, I/O 작업이나 메모리 대기 작업도 포함. 주로 3개의 숫자로 나타나며, 각 숫자는 다른 시간 간격의 평균 표출.
- 첫 번째 숫자 (0.53): 1분 동안의 평균 부하
- 두 번째 숫자 (0.60): 5분 동안의 평균 부하
- 세 번째 숫자 (0.73): 15분 동안의 평균 부하
CPU 코어 수에 따라 상태의 해석이 다름
- 싱글코어 시스템: 1.0은 CPU가 풀로 사용되고 있는 상태. 1.0 이상이면 CPU 과부하, 대기 상태가 생김.
- 듀얼코어 시스템 (코어 2개): 2.0까지는 정상적인 상태로 간주. 2.0을 넘으면 대기 중인 프로세스가 발생하는 과부하 상태.
- 쿼드코어 시스템 (코어 4개): 4.0까지는 CPU가 적절히 사용되고 있는 상태로 볼 수 있습니다. 이 이상이면 대기 중인 프로세스가 많다는 의미.
Load Average가 높아지는 이유
- CPU 집약적인 작업: CPU 자원을 많이 사용하는 작업이 많을 때 부하가 증가. 예를 들어, 데이터 분석, 대규모 컴파일, 비디오 인코딩 같은 작업들.
- I/O 병목: 디스크나 네트워크 I/O가 느리거나 작업이 대기 중일 때도 load average가 높아질 수 있다.
- 메모리 부족: 물리적 메모리가 부족해 스왑이 많이 발생하면 CPU 대기 시간이 길어져서 load average가 증가할 수 있다.
- 프로세스의 비효율적인 동작: 잘못된 스크립트나 효율적이지 못한 애플리케이션이 CPU를 많이 차지할 수 있다.
'Linux' 카테고리의 다른 글
Linux⚡디렉토리 용량 확인하기 (0) | 2024.07.29 |
---|