๊ฐœ๋ฐœ๋…ธํŠธ/Linux

[Linux] ps / top ํ”„๋กœ์„ธ์Šค์™€ ์‹œ์Šคํ…œ ์ƒํƒœ ์™„์ „ ์ •๋ณต ๐Ÿง 

๋กœ๋กœ๋ฝœ 2025. 11. 23. 07:30

๋ฆฌ๋ˆ…์Šค ps top ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง ๋ช…๋ น์–ด๋ฅผ ํ•œ ๋ฒˆ์— ์ •๋ฆฌํ•œ ์‹ค๋ฌด ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค. CPU 100% ์žฅ์• , ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ, ์ข€๋น„ ํ”„๋กœ์„ธ์Šค ๋“ฑ ๋ฌธ์ œ๋ฅผ ps์™€ top์œผ๋กœ ์ง„๋‹จ·ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๋‹ค ๋ณด๋ฉด ์–ด๋А ๋‚  ๊ฐ‘์ž๊ธฐ ์ด๋Ÿฐ ์ƒํ™ฉ์ด ์ฐพ์•„์˜ต๋‹ˆ๋‹ค.

  • “CPU๊ฐ€ 100%์ธ๋ฐ, ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฒ”์ธ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.”
  • “๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๊ณ„์† ์˜ฌ๋ผ๊ฐ€๋Š”๋ฐ ๋กœ๊ทธ๋„ ์กฐ์šฉํ•˜๋‹ค.”
  • “ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข€๋น„(Z) ์ƒํƒœ๋กœ ์ž”๋œฉ ์Œ“์—ฌ ์žˆ๋‹ค.”
  • “์„œ๋ฒ„๊ฐ€ ๋ฉˆ์ถ˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋А๋ฆฐ๋ฐ, ์–ด๋””๋ถ€ํ„ฐ ๋ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.”

์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด์ž ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๊ฐ€ ps์™€ top์ž…๋‹ˆ๋‹ค.
๋‘˜๋งŒ ์ œ๋Œ€๋กœ ์ดํ•ดํ•ด๋„ ์žฅ์•  ์›์ธ์˜ 70%๋Š” ๋ˆˆ์— ๋ณด์ด๋Š” ํ˜•ํƒœ๋กœ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹ ๊ทธ๋Œ€๋กœ,
CPU ๋ณ‘๋ชฉ → ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ → ์ข€๋น„ ํ”„๋กœ์„ธ์Šค → ์ค‘๋ณต ์‹คํ–‰ ์Šคํฌ๋ฆฝํŠธ → ํ”„๋กœ์„ธ์Šค ํŠธ๋ฆฌ ๋ถ„์„๊นŒ์ง€
๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๐Ÿ”‘ ์ด ๊ธ€์˜ ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ

  • ๋ฆฌ๋ˆ…์Šค ps top ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง
  • CPU 100% ์žฅ์•  ๋ถ„์„
  • ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์ง„๋‹จ
  • ์ข€๋น„ ํ”„๋กœ์„ธ์Šค(Zombie) ํ™•์ธ
  • ๋ฐ๋ชฌ/์„œ๋น„์Šค ํŠธ๋ฆฌ ๊ตฌ์กฐ ํŒŒ์•…

1. ps๋Š” “ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์ •ํ™•ํžˆ ์ฐ๋Š”” ๋„๊ตฌ

๋ฆฌ๋ˆ…์Šค ps aux ์ถœ๋ ฅ ๊ตฌ์กฐ ์„ค๋ช…
ํ”„๋กœ์„ธ์Šค ์ปฌ๋Ÿผ์˜ ์˜๋ฏธ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ์ •๋ฆฌํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ

๋จผ์ € ps(Process Status)์ž…๋‹ˆ๋‹ค.
๋ฆฌ๋ˆ…์Šค ps top ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ์ถœ๋ฐœ์ ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ๊ธฐ๋ณธ ํ˜•ํƒœ๋Š” ์ด๊ฑฐ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

ps aux
 

1) ps aux ์˜ต์…˜ ๊ตฌ์กฐ

  • a : ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๊นŒ์ง€ ํฌํ•จ
  • u : CPU/๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ์‚ฌ์šฉ์ž ์ค‘์‹ฌ ํฌ๋งท์œผ๋กœ ์ถœ๋ ฅ
  • x : ํ„ฐ๋ฏธ๋„(TTY)์ด ์—†๋Š” ํ”„๋กœ์„ธ์Šค๊นŒ์ง€ ํฌํ•จ

์ •๋ฆฌํ•˜๋ฉด:

ps aux = “์‹คํ–‰ ์ค‘์ธ ๊ฑฐ์˜ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ๋žŒ์ด ๋ณด๊ธฐ ์ข‹์€ ํ˜•ํƒœ๋กœ ๋‹ค ๋ณด์—ฌ์ค˜”

2) ps aux ์ถœ๋ ฅ ์ปฌ๋Ÿผ ์ดํ•ดํ•˜๊ธฐ

์˜ˆ์‹œ ์ถœ๋ ฅ:

ps aux
USER   PID  %CPU %MEM    VSZ    RSS  TTY   STAT  START   TIME  COMMAND
root     1   0.0  0.1   2788   1348  ?     Ss    10:00   0:01  /sbin/init
root   234   1.2  3.1 140000  25432  ?     Sl    10:03   0:20  /usr/bin/python3 app.py
www    400   5.3  4.5 230000  35200  ?     Rl    10:05   1:10  nginx: worker process
 

์—ฌ๊ธฐ์„œ ๋ฆฌ๋ˆ…์Šค ps top ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์—์„œ ๊ผญ ์•Œ์•„์•ผ ํ•  ํ•ต์‹ฌ ์ปฌ๋Ÿผ์€ ๋‹ค์Œ 5๊ฐœ์ž…๋‹ˆ๋‹ค.

์ปฌ๋Ÿผ ์„ค๋ช…
PID ํ”„๋กœ์„ธ์Šค ID
%CPU CPU ์‚ฌ์šฉ๋ฅ 
%MEM ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ฅ 
STAT ํ”„๋กœ์„ธ์Šค ์ƒํƒœ(S, R, Z, T ๋“ฑ)
COMMAND ์–ด๋–ค ๋ช…๋ น์œผ๋กœ ์‹คํ–‰๋œ ํ”„๋กœ์„ธ์Šค์ธ์ง€

๋‚˜๋จธ์ง€ VSZ, RSS๋„ ์ค‘์š”ํ•˜์ง€๋งŒ,
์ฒ˜์Œ์—๋Š” PID / %CPU / %MEM / STAT / COMMAND๋งŒ ์ œ๋Œ€๋กœ ์ฝ์–ด๋„ ์žฅ์•  ๋ถ„์„์˜ 70%๋Š” ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.


2. ps ์‹ค์ „ ํŒจํ„ด : ์žฅ์•  ํ˜„์žฅ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ๋ช…๋ น

์ด์ œ ์ž์ฃผ ์“ฐ๋Š” ps ํŒจํ„ด๋“ค์„ ๋ณด๋ฉด์„œ,
“์‹ค์ œ ์žฅ์• ๊ฐ€ ๋‚ฌ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”์ง€” ๋ˆˆ์— ์ตํ˜€๋ด…์‹œ๋‹ค.

1) ํŠน์ • ํ”„๋กœ์„ธ์Šค๋งŒ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ

์˜ˆ: nginx ๊ด€๋ จ ํ”„๋กœ์„ธ์Šค ์ฐพ๊ธฐ

ps aux | grep nginx
 

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด grep nginx ์ž๊ธฐ ์ž์‹ ๋„ ๊ฐ™์ด ๋œน๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๋ณดํ†ต์€ ์ด๋ ‡๊ฒŒ ํ•œ ์ค„ ๋” ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

ps aux | grep nginx | grep -v grep
 

์กฐ๊ธˆ ๋” ๊น”๋”ํ•˜๊ฒŒ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด pgrep, pidof๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

pgrep nginx           # nginx์˜ PID๋งŒ ์ถœ๋ ฅ
pidof nginx           # nginx ํ”„๋กœ์„ธ์Šค๋“ค์˜ PID
 

2) CPU ์‚ฌ์šฉ๋ฅ  TOP 10 ํ”„๋กœ์„ธ์Šค ๋ณด๊ธฐ

CPU๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด:

ps aux --sort=-%cpu | head
 

ํ˜น์€ ์ •๋ ฌ ํ‚ค๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์“ฐ๋Š” ํŒจํ„ด๋„ ์ž์ฃผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ps aux | sort -nrk 3 | head -10
 
  • -nrk 3 : 3๋ฒˆ์งธ ์ปฌ๋Ÿผ(%CPU)์„ ๊ธฐ์ค€์œผ๋กœ ์ˆซ์ž ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

3) ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ฅ  TOP 10

๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์˜์‹ฌํ•  ๋•Œ:

ps aux --sort=-%mem | head
# ๋˜๋Š”
ps aux | sort -nrk 4 | head -10
 

์—ฌ๊ธฐ์„œ %MEM์ด ๋†’์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋จผ์ € ์˜์‹ฌํ•ด๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

4) ํŠน์ • ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋งŒ ๋ณด๊ธฐ

์›น์„œ๋ฒ„ ๊ณ„์ •(www, nginx ๋“ฑ)๋งŒ ๋ณด๊ณ  ์‹ถ์„ ๋•Œ:

ps -u www
 

์„œ๋น„์Šค ๊ณ„์ •๋ณ„๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”์ง€ ํ™•์ธํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

5) ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ํŠธ๋ฆฌ๋กœ ๋ณด๊ธฐ (–forest)

๋ฆฌ๋ˆ…์Šค ํ”„๋กœ์„ธ์Šค ํŠธ๋ฆฌ ๊ตฌ์กฐ ์˜ˆ์‹œ
๋ถ€๋ชจ-์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•œ๋ˆˆ์— ๋ณด๋Š” ps --forest ๋‹ค์ด์–ด๊ทธ๋žจ

์‹œ์Šคํ…œ ๋ฐ๋ชฌ ๊ตฌ์กฐ ๋ถ„์„์— ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

ps -ef --forest
 
  • ์–ด๋–ค ๋ฐ๋ชฌ ์•„๋ž˜์— ์–ด๋–ค ์›Œ์ปค๊ฐ€ ๋งค๋‹ฌ๋ ค ์žˆ๋Š”์ง€
  • ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ช‡ ๋‹จ๊ณ„๋กœ ์‹คํ–‰๋˜๋Š”์ง€
  • ์‹œ๊ฐ์ ์œผ๋กœ ํŒŒ์•…ํ•˜๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.

3. top “์‹ค์‹œ๊ฐ„ ํ™”๋ฉด” ์ถ”์  ๋„

์ด์ œ top์ž…๋‹ˆ๋‹ค.
ps๊ฐ€ “์ •์ง€๋œ ์‚ฌ์ง„”์ด๋ผ๋ฉด top์€ “์‹ค์‹œ๊ฐ„ CCTV”์ž…๋‹ˆ๋‹ค.

top
 

์‹คํ–‰ํ•˜๋ฉด ๋Œ€๋žต ์ด๋Ÿฐ ํ™”๋ฉด์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

๋ฆฌ๋ˆ…์Šค top ๋ช…๋ น์–ด ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง ํ™”๋ฉด. CPU ์‚ฌ์šฉ๋ฅ , ๋ฉ”๋ชจ๋ฆฌ·์Šค์™€ํ”„ ์š”์•ฝ, ํ”„๋กœ์„ธ์Šค๋ณ„ PID·USER·CPU·๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ํ‘œ์‹œ๋œ ์˜ˆ์‹œ ์ถœ๋ ฅ.
๋ฆฌ๋ˆ…์Šค top ๋ช…๋ น์–ด๋กœ ์„œ๋ฒ„์˜ CPU, ๋ฉ”๋ชจ๋ฆฌ, ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋ฅผ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ์‹ค์ œ ํ™”๋ฉด ์˜ˆ์‹œ

1) top ์ƒ๋‹จ ์š”์•ฝ ์˜์—ญ

๋ฆฌ๋ˆ…์Šค ps top ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์—์„œ ๊ผญ ๋ด์•ผ ํ•˜๋Š” ํ•ญ๋ชฉ๋“ค์ž…๋‹ˆ๋‹ค.

  1. load average
  2. Tasks (์ด ํ”„๋กœ์„ธ์Šค ์ˆ˜, running/sleeping/zombie)
  3. %Cpu(s) (us, sy, id ๋“ฑ)
  4. Mem / Swap ์š”์•ฝ

์šฐ์„  load average๋ถ€ํ„ฐ ์ •ํ™•ํžˆ ์ดํ•ดํ•ด๋ด…์‹œ๋‹ค.

2) load average ํ•ด์„

load average: 0.12, 0.23, 0.45

  • ์•ž์—์„œ๋ถ€ํ„ฐ 1๋ถ„ / 5๋ถ„ / 15๋ถ„ ํ‰๊ท  ๋ถ€ํ•˜
  • ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์ž‘์—…์ด CPU๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์—ˆ๋Š”์ง€”๋ฅผ ์˜๋ฏธ

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ์ค€์€ “์ฝ”์–ด ์ˆ˜”์ž…๋‹ˆ๋‹ค.

  • 1์ฝ”์–ด ์„œ๋ฒ„์—์„œ load 1.0 = CPU ํ’€๋กœ ์‚ฌ์šฉ ์ค‘
  • 4์ฝ”์–ด ์„œ๋ฒ„์—์„œ load 4.0 = ์ „์ฒด ์ฝ”์–ด๊ฐ€ ๊ฑฐ์˜ ๊ฝ‰ ์ฐฌ ์ƒํƒœ

๋Œ€๋žต์ ์ธ ๋А๋‚Œ:

  • 4์ฝ”์–ด ์„œ๋ฒ„ ๊ธฐ์ค€
    • load 4 ์ด๋‚ด → ์ •์ƒ
    • 5~7 → CPU๊ฐ€ ๋ฐ”๋น ์ง€๊ธฐ ์‹œ์ž‘
    • 8~10 ์ด์ƒ → ์ง€์—ฐ/๋ณ‘๋ชฉ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ

load๊ฐ€ ๋†’์œผ๋ฉด “CPU ์‚ฌ์šฉ๋ฅ ์ด ๋†’์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋Š”์ง€” ๋จผ์ € ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

3) CPU ์ƒํƒœ(us, sy, wa ๋“ฑ)

์˜ˆ์‹œ:

%Cpu(s): 10.3 us, 1.5 sy, 0.0 ni, 88.0 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
 
  • us : user space์—์„œ ์‹คํ–‰๋˜๋Š” CPU ๋น„์œจ (์ผ๋ฐ˜ ์•ฑ/์„œ๋น„์Šค)
  • sy : kernel space (์‹œ์Šคํ…œ ์ฝœ, ๋“œ๋ผ์ด๋ฒ„ ๋“ฑ)
  • id : idle, ๋†€๊ณ  ์žˆ๋Š” ๋น„์œจ
  • wa : I/O wait (๋””์Šคํฌ/๋„คํŠธ์›Œํฌ ๋Œ€๊ธฐ)
  • si : soft interrupt
  • hi : hard interrupt

์žฅ์•  ๋ถ„์„ ํฌ์ธํŠธ:

  • us๊ฐ€ ๋†’๋‹ค → ์•ฑ ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ CPU๋ฅผ ๋งŽ์ด ์”€
  • sy๊ฐ€ ๋†’๋‹ค → ์ปค๋„/์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ๋งŽ์€ ์ž‘์—… (ํŒจํ‚ท ์ฒ˜๋ฆฌ, I/O ๋“ฑ)
  • wa๊ฐ€ ๋†’๋‹ค → CPU๋Š” ๋†€๊ณ  ์žˆ๋Š”๋ฐ I/O ๋Œ€๊ธฐ ๋•Œ๋ฌธ์— ๋А๋ฆฐ ๊ฒฝ์šฐ (๋””์Šคํฌ ๋ณ‘๋ชฉ)

4) Mem/Swap ์š”์•ฝ ์ฝ๋Š” ๋ฒ•

KiB Mem : 4049920 total, 223000 free, 210000 buffers, 1024000 cached
KiB Swap: 2097148 total,  10240 used, 2086908 free
 
  • total : ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ
  • free : ์™„์ „ํžˆ ๋†€๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ
  • buffers, cached : ํŒŒ์ผ ์บ์‹œ, ๋ธ”๋ก ๋””๋ฐ”์ด์Šค ๋ฒ„ํผ ๋“ฑ

์ฃผ์˜ํ•  ์ :
๋ฆฌ๋ˆ…์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ “๋‚จ๋Š” ๋Œ€๋กœ ์บ์‹œ๋กœ ์จ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—” free๋งŒ ๋ณด๊ณ  ๋ถ€์กฑํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
๋ณดํ†ต์€:

  • swap ์‚ฌ์šฉ๋Ÿ‰์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•˜๊ณ 
  • cache/buffer๊ฐ€ ์ค„๊ณ 
  • ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ณ„์† ๋Š˜์–ด๋‚  ๋•Œ → ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์˜์‹ฌ

5) top ์‹ค๋ฌด ๋‹จ์ถ•ํ‚ค

top๋ฅผ ์ž˜ ์“ฐ๋ ค๋ฉด ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค๋ฅผ ๋ช‡ ๊ฐœ๋งŒ ์ตํžˆ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ‚ค ๊ธฐ๋Šฅ ์„ค๋ช…
P CPU ์‚ฌ์šฉ๋ฅ  ๋†’์€ ์ˆœ ์ •๋ ฌ
M ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ฅ  ๋†’์€ ์ˆœ ์ •๋ ฌ
1 ์ฝ”์–ด๋ณ„(CPU๋ณ„) ์‚ฌ์šฉ๋ฅ  ํ‘œ์‹œ
k ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ(kill)
q top ์ข…๋ฃŒ
h ๋„์›€๋ง
SHIFT + > / < ์ •๋ ฌ ๊ธฐ์ค€ ์ปฌ๋Ÿผ ์ด๋™

์‹ค๋ฌด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ์กฐํ•ฉ:

  • CPU ๋ฌธ์ œ๋‹ค → top ์‹คํ–‰ ํ›„ ๋ฐ”๋กœ P
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๋‹ค → top ์‹คํ–‰ ํ›„ ๋ฐ”๋กœ M
  • ๋ฉ€ํ‹ฐ์ฝ”์–ด ์ƒํ™ฉ ํ™•์ธ → 1 ๋ˆŒ๋Ÿฌ์„œ ์ฝ”์–ด๋ณ„๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๋ณด๊ธฐ

4. ์‹ค์ œ ์žฅ์•  ์ƒํ™ฉ๋ณ„ ์ ‘๊ทผ๋ฒ•

์ด์ œ ์‹ค์ œ ์žฅ์•  ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•ด ๋ณด๋ฉด์„œ,
ps์™€ top์„ ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•ด๋ณผ๊ฒŒ์š”.

์˜ˆ์ œ 1) “์„œ๋ฒ„๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋„ˆ๋ฌด ๋А๋ ค์š”” (CPU 100% ์ƒํ™ฉ)

  • ๋จผ์ € top ์‹คํ–‰
top
  • CPU๊ฐ€ ๊ฝ‰ ์ฐผ๋Š”์ง€ ํ™•์ธ
    • load average๊ฐ€ ์ฝ”์–ด ์ˆ˜ ๋Œ€๋น„ ๋„ˆ๋ฌด ๋†’์€์ง€
    • %Cpu(s)์—์„œ us/sy๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ๋†’์€์ง€
  • top ํ™”๋ฉด์—์„œ P๋ฅผ ๋ˆŒ๋Ÿฌ CPU ์‚ฌ์šฉ๋ฅ  ์ •๋ ฌ
    • ์ƒ๋‹จ์— %CPU๊ฐ€ 100%์— ๊ฐ€๊น๊ฑฐ๋‚˜, ์ฝ”์–ด ์ˆ˜ ์ด์ƒ์œผ๋กœ ๋‚˜์˜ค๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  • ๋ฌธ์ œ PID ํ™•๋ณด ํ›„, ์„ธ๋ถ€ ์ •๋ณด ํ™•์ธ
ps aux | grep PID
 
  • ํ•„์š” ์‹œ ์ข…๋ฃŒ
kill -9 PID

์ฃผ์˜:
๋ฌด์กฐ๊ฑด kill -9๋ถ€ํ„ฐ ์“ฐ์ง€ ๋ง๊ณ ,
๊ฐ€๋Šฅํ•˜๋ฉด ์„œ๋น„์Šค graceful stop → ๊ทธ๋ž˜๋„ ์•ˆ ๋จน์œผ๋ฉด ๊ฐ•์ œ ์ข…๋ฃŒ ์ˆœ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ 2) ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ด ๋ณด์ผ ๋•Œ

  • top ์‹คํ–‰ ํ›„ ๋ฉ”๋ชจ๋ฆฌ ์š”์•ฝ ํ™•์ธ
  • M ํ‚ค๋กœ ์ •๋ ฌํ•ด์„œ %MEM ๋†’์€ ์ˆœ์œผ๋กœ ํ™•์ธ
  • ์ƒ๋‹จ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ps๋กœ ํ•œ ๋ฒˆ ๋” ํ™•์ธ
ps aux --sort=-%mem | head
 
  • ํŠน์ • ์•ฑ์ด ๊ณ„์† ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋จน๊ณ  ์žˆ๋‹ค๋ฉด →
    • ํ•ด๋‹น ๋ฒ„๊ทธ ์˜์‹ฌ
    • ๋กœ๊ทธ/์˜ต์…˜/์บ์‹œ ์„ค์ • ํ™•์ธ

์˜ˆ์ œ 3) ์ข€๋น„ ํ”„๋กœ์„ธ์Šค(Zombie) ๋งŽ์ด ์ƒ๊ฒผ์„ ๋•Œ

  • ps์—์„œ ์ƒํƒœ๊ฐ€ Z์ธ ํ”„๋กœ์„ธ์Šค ์ฐพ๊ธฐ
ps aux | awk '$8 ~ /Z/' 
# ๋˜๋Š”
ps aux | grep ' Z '
 
  • ์ข€๋น„๋Š” ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ wait()๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„์„œ ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ,
  • ๋ถ€๋ชจ PID๋ฅผ ์ฐพ๋Š” ๊ฒŒ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
ps -ef --forest
 
  • ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ™•์ธ →
    • ๋ถ€๋ชจ๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜
    • ๋ถ€๋ชจ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ ์ˆ˜์ • ํ•„์š”

์ข€๋น„ ์ž์ฒด๋Š” CPU/๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฑฐ์˜ ์“ฐ์ง€ ์•Š์ง€๋งŒ,
๋Œ€๋Ÿ‰์œผ๋กœ ์Œ“์ด๋ฉด ๋ฆฌ์†Œ์Šค ์ œํ•œ์— ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ด€๋ฆฌ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค.


์˜ˆ์ œ 4) ๋™์ผ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์ค‘๋ณต ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ

์‹ค์ œ๋กœ ์žฅ์• ์˜ ์ƒ๋‹น์ˆ˜๋Š” ์ค‘๋ณต ์‹คํ–‰๋œ shell/python ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค.

  • ์˜ˆ: ํŠน์ • ๋ฐฑ์—… ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋งค๋ฒˆ ์Œ“์ผ ๋•Œ
ps aux | grep backup.sh | grep -v grep
 
  • ๊ฐœ์ˆ˜๋ฅผ ์„ธ๊ณ  ์‹ถ์œผ๋ฉด:
ps aux | grep backup.sh | grep -v grep | wc -l
 
  • ํ•„์š”ํ•˜๋‹ค๋ฉด ํ•œ ๋ฒˆ์— ์ •๋ฆฌ:
pkill -f backup.sh
 

(์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฌด์กฐ๊ฑด pkill ์“ฐ๊ธฐ ์ „์— ๊ผญ ํ•œ ๋ฒˆ ๋” ํ™•์ธํ•˜์„ธ์š”.)


์˜ˆ์ œ 5) ๋ฐ๋ชฌ/์„œ๋น„์Šค ํŠธ๋ฆฌ ๊ตฌ์กฐ ํ™•์ธ

์„œ๋น„์Šค ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•  ๋•Œ ๊ฐ€์žฅ ์ข‹์€ ํŒจํ„ด:

ps -ef --forest | grep nginx
ps -ef --forest | grep httpd
ps -ef --forest | grep mysqld
 
  • ๋งˆ์Šคํ„ฐ ํ”„๋กœ์„ธ์Šค → ์›Œ์ปค ํ”„๋กœ์„ธ์Šค
  • ๋Ÿฐ์ฒ˜ ์Šคํฌ๋ฆฝํŠธ → ์‹ค์ œ ์‹คํ–‰ ๋ฐ”์ด๋„ˆ๋ฆฌ

์ด ํ๋ฆ„์„ ํ•œ ๋ฒˆ ์ดํ•ดํ•ด๋‘๋ฉด,
“์–ด๋””๋ฅผ ์žฌ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋Š”์ง€”, “๋ˆ„๊ฐ€ ๋ˆ„๊ตฌ๋ฅผ ๋„์šฐ๋Š”์ง€”๊ฐ€ ํ•œ๋ˆˆ์— ๋“ค์–ด์˜ต๋‹ˆ๋‹ค.


5. ps / top / grep / awk ์กฐํ•ฉ

๋ฆฌ๋ˆ…์Šค ps, top, grep, awk ๋ช…๋ น์–ด์˜ ์—ญํ• ๊ณผ ํ๋ฆ„์„ ์‹œ๊ฐํ™”ํ•œ ํ”„๋กœ์„ธ์Šค ๋ถ„์„ ๋‹ค์ด์–ด๊ทธ๋žจ. ps๋Š” ์ •์  ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก, top์€ ์‹ค์‹œ๊ฐ„ ์ƒํƒœ, grep์€ ํŒจํ„ด ํ•„ํ„ฐ๋ง, awk๋Š” ํ•„๋“œ ๋ถ„์„์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์ค‘์‹ฌ์— Process Analysis Core๊ฐ€ ๋ฐฐ์น˜๋œ ๊ตฌ์กฐ.
๋ฆฌ๋ˆ…์Šค ํ”„๋กœ์„ธ์Šค ๋ถ„์„์„ ์œ„ํ•œ ps·top·grep·awk ์กฐํ•ฉ ๊ตฌ์กฐ ๋‹ค์ด์–ด๊ทธ๋žจ

๋ฆฌ๋ˆ…์Šค ps top ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์€ ๊ฒฐ๊ตญ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค.

1) CPU ์‚ฌ์šฉ TOP 5 (์ •์„ ํŒจํ„ด)

ps aux | sort -nrk 3 | head -5
 
  • 3๋ฒˆ ์ปฌ๋Ÿผ์ด %CPU
  • ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ถ€ํ„ฐ ํ™•์ธ

2) ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ TOP 5

ps aux | sort -nrk 4 | head -5
 

3) ํŠน์ • ํ”„๋กœ์„ธ์Šค๋งŒ top์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๋ณด๊ธฐ

์˜ˆ: nginx๋งŒ top์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด:

top -p $(pidof nginx)
 

์—ฌ๋Ÿฌ PID๋ฅผ ํ•œ ๋ฒˆ์— ๋„ฃ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

top -p 1234,2345,3456
 

6. ์ดˆ๋ณด์ž๊ฐ€ ์ž์ฃผ ํ•˜๋Š” ์‹ค์ˆ˜์™€ ๋ฆฌ๋ˆ…์Šค ps top ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง ํŒ


์‹ค์ˆ˜ ์ด์œ  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
๊ทธ๋ƒฅ ps๋งŒ ์ž…๋ ฅ ๊ธฐ๋ณธ ps๋Š” ์ •๋ณด๊ฐ€ ๋„ˆ๋ฌด ๋‹จ์ˆœํ•จ ํ•ญ์ƒ ps aux ๋˜๋Š” ps -ef ์‚ฌ์šฉ
grep ์ž๊ธฐ ์ž์‹ ์ด ๊ฒ€์ƒ‰๋จ grep๋„ ํ”„๋กœ์„ธ์Šค๋กœ ๋œธ grep -v grep, pgrep, pidof ํ™œ์šฉ
load average ์ˆซ์ž๋งŒ ๋ณด๊ณ  ๋†€๋žŒ CPU ์ฝ”์–ด ์ˆ˜๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์Œ “์ฝ”์–ด ์ˆ˜ × 1.0”์„ ๊ธฐ์ค€์œผ๋กœ ํŒ๋‹จ
top์—์„œ CPU ์ •๋ ฌ ๋ชปํ•จ ๋‹จ์ถ•ํ‚ค๋ฅผ ๋ชจ๋ฆ„ top ์‹คํ–‰ ํ›„ P, ๋ฉ”๋ชจ๋ฆฌ๋Š” M
์ข€๋น„ ํ”„๋กœ์„ธ์Šค๋งŒ ์ฃฝ์ด๋ ค ํ•จ ์›์ธ์€ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์ธ๋ฐ ์ž์‹๋งŒ ๋ด„ ps -ef --forest๋กœ ๋ถ€๋ชจ PID๊นŒ์ง€ ํ™•์ธ
๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์„ free๋งŒ ๋ณด๊ณ  ํŒ๋‹จ ์บ์‹œ/๋ฒ„ํผ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•จ Swap ์‚ฌ์šฉ๋Ÿ‰, cache/buffer ๋ณ€ํ™”๋„ ํ•จ๊ป˜ ํ™•์ธ

7. ๋ฆฌ๋ˆ…์Šค ps top ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์€ ์–ด๋–ค ํšจ๊ณผ๋ฅผ ์ฃผ๋Š”๊ฐ€?

์ด ๊ธ€์—์„œ ๋‹ค๋ฃฌ ๋‚ด์šฉ๋งŒ ์ตํ˜€๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • CPU 100% ์žฅ์• ๋ฅผ ps/top ์กฐํ•ฉ์œผ๋กœ ์ง์ ‘ ์ง„๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์˜์‹ฌ ์ƒํ™ฉ์—์„œ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฌธ์ œ์ธ์ง€ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
  • ์ข€๋น„ ํ”„๋กœ์„ธ์Šค, ์ค‘๋ณต ์‹คํ–‰๋œ ์Šคํฌ๋ฆฝํŠธ ๋“ฑ ์ˆจ์€ ๋ฌธ์ œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐ๋ชฌ/์„œ๋น„์Šค์˜ ํ”„๋กœ์„ธ์Šค ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์žฅ์• ๊ฐ€ ๋‚ฌ์„ ๋•Œ “์–ด๋””๋ถ€ํ„ฐ ๋ด์•ผ ํ• ์ง€” ๋ฃจํ‹ด์ด ์ƒ๊ฒจ์„œ ๋Œ€์‘ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค.
๊ฒฐ๊ตญ, ๋ฆฌ๋ˆ…์Šค ps top ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ตํžŒ๋‹ค๋Š” ๊ฑด

“๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ ์•ˆ์—์„œ ์‹ค์ œ๋กœ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ๋ˆˆ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ”์„ ๊ฐ–๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


ํ•ต์‹ฌ ์š”์•ฝ

  • ps๋Š” ์ •์ ์ธ ์Šค๋ƒ…์ƒท, top์€ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ
  • ps aux, ps -ef --forest, top + P/M/1 ์กฐํ•ฉ์ด ์‹ค๋ฌด ๊ธฐ๋ณธ
  • CPU ๋ฌธ์ œ → top + P → ps๋กœ ์ƒ์„ธ ํ™•์ธ → ํ•„์š” ์‹œ kill
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ → top + M → ps aux --sort=-%mem
  • ์ข€๋น„/์ค‘๋ณต ์Šคํฌ๋ฆฝํŠธ → ps + grep/awk + ํŠธ๋ฆฌ ๊ตฌ์กฐ ํ™•์ธ
  • ๋ฆฌ๋ˆ…์Šค ps top ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ตํžˆ๋ฉด ์žฅ์•  ๋Œ€์‘ ์†๋„๊ฐ€ ๊ทน์ ์œผ๋กœ ๋นจ๋ผ์ง„๋‹ค