
프로세스 상태 확인 (ps, pstree)
- 학습: PID, PPID 개념. 데몬(Daemon) 이해.
- 실습:
- ps aux로 전체 프로세스 확인.

- ps -ef | grep python으로 특정 프로그램 실행 여부 확인.
- pstree로 부모-자식 프로세스 관계 시각적으로 확인.

실시간 리소스 모니터링 (top, htop)
- 학습: CPU, 메모리 점유율 분석. Load Average 의미.
- 실습:
top 실행 후 메모리 순(M), CPU 순(P) 정렬 변경.
htop 설치 및 실행 (색상, 마우스 지원 확인)
htop 상단(Header)에 있는 정보와 메인 리스트에서의 구분법을 명쾌하게 정리함.

좌측 상단 Tasks: ... 줄에 나오는 숫자들의 뜻.
- Tasks (프로세스):
- 현재 시스템에 존재하는 프로세스(Process)의 총 개수.
- 정확히는 '스레드 리더(Main Thread)'들의 합.
- thr (User Threads):
- *사용자 영역(User Space)**에서 생성된 스레드 개수.
- 예: 크롬 탭 하나가 여러 개의 스레드를 씀. 부모 프로세스의 메모리를 공유하는 가벼운 일꾼들.
- kthr (Kernel Threads):
- *커널 영역(Kernel Space)**에서 생성된 스레드 개수.
- 하드웨어 제어, 파일 시스템 관리 등 OS가 직접 굴리는 백그라운드 일꾼들.
2. 프로세스 리스트에서 3가지 구분하는 법
메인 화면(리스트)에서 눈으로 딱 보고 구별하는 포인트임.
A. 일반 프로세스 (Process / Tasks)
- 모양: 일반적인 프로그램 이름 (예:
python, bash, sshd).
- 특징: PID를 가지고 독립적인 메모리 공간을 차지함.
- 색상: (테마 기본값 기준) 흰색 혹은 회색 텍스트.
B. 사용자 스레드 (thr)
- 모양: 프로세스 이름과 같거나 비슷함.
- 구분법:
- 트리 뷰(F5): 부모 프로세스 아래에 가지(└─) 모양으로 매달려 있음.
- 색상: 설정(F2)에서 "Highlight program path"가 켜져 있다면, 스레드는 보통 초록색으로 표시됨.
- 토글 단축키: *
Shift + H를 누르면 숨겼다 보였다 함. (이걸로 확인하는 게 제일 확실함).
C. 커널 스레드 (kthr)
- 모양: 이름이 무조건 대괄호
[ ] 로 감싸져 있음.
- 예:
[kworker/u...], [ksoftirqd/0], [jbd2/sda1...]
- 특징:
- 사용자 메모리(RES)를 거의 먹지 않음.
- 절대 죽이면 안 됨 (OS 멈춤).
- 토글 단축키: *
Shift + K를 누르면 숨겼다 보였다 함.
| 종류 | 표시 예시 | 단축키(숨김/표시) | 위치 |
|---|
| Process | python3 app.py | - | User Space |
| Thread | └─ python3 app.py (초록색) | Shift + H | User Space |
| K-Thread | [kworker/0:1] (대괄호) | Shift + K | Kernel Space |
htop 상단 바 설명
htop 상단 헤더는 프로세스의 신분증이자 건강검진표임.

1. 기본 신원 (Identity)
- PID (Process ID): 프로세스 주민등록번호.
kill 명령어로 죽일 때 이 번호가 필요함.
- USER: 프로세스의 주인 (실행시킨 계정).
2. 우선순위 (Priority) - 중요
CPU가 누구를 먼저 처리할지 결정하는 계급장. 숫자가 낮을수록 높으신 분(우선순위 높음).
- PRI (Priority): 커널(OS)이 보는 실제 우선순위.
- NI (Nice): 사용자가 설정한 우선순위 조절 값.
- 범위:
20(제일 급함/이기적) ~ 19(제일 착함/양보).
- 관계: 보통
PRI = 20 + NI.
3. 메모리 3대장 (Memory) - 가장 헷갈림
- VIRT (Virtual Image): "나 이만큼 필요할 수도 있어"라고 선언한 가상 크기.
- 라이브러리, 코드, 스왑 포함. 실제 물리 메모리 사용량이 아님 (허수). 겁먹지 말 것.
- RES (Resident size): "지금 당장 쓰고 있는 RAM" 크기.
- 가장 중요. 실제 물리 메모리 점유율은 이걸 봐야 함 (진수).
- SHR (Shared Mem): 다른 프로세스와 같이 쓰는 메모리.
4. 상태 및 활동 (Status & Activity)
- S (State): 현재 프로세스의 상태.
R (Running): 일하는 중.
S (Sleeping): 대기 중 (대부분의 상태).
D (Disk Sleep): 디스크 I/O 기다리는 중 (강제 종료 불가능, 위험 신호).
Z (Zombie): 죽었는데 부모가 시신 수습 안 해줌.
- CPU% / MEM%: CPU와 메모리(RES 기준) 점유율.
- TIME+: 프로세스가 시작된 후 CPU를 실제로 사용한 누적 시간. (켜놓은 시간이 아님).
- Command: 실행된 명령어 경로.
요약
- 메모리 누수 의심될 때: RES만 보면 됨.
- 시스템 렉 걸릴 때: CPU% 높은 놈과 D 상태인 놈을 찾을 것.
- 무거운 프로그램 실행 후 CPU/RAM 변화 관찰.