Skip to content

Latest commit

 

History

History
30 lines (17 loc) · 2 KB

top.md

File metadata and controls

30 lines (17 loc) · 2 KB

top

서버에 구동되고 있는 프로세스들의 상태와, cpu, memory 사용률을 확인할 수 있다.

hotkey: 1 -> 개별 cpu 확인, d -> 인터벌 변경(1로 하여 1초 간격으로 확인 가능)

hotkey로 개발 cpu를 나타내 cpu들의 사용 불균형이 있는지 체크할 필요가 있다.

종합된 평균 사용량 cpu(s)은 정상이 아니지만 개별로 봤을 때 특정 cpu만 사용된다면 문제가 있는 상황으로 봐야한다.(싱글 스레드로 구동되는 app이 아닌 이상 비정상 상태) 이 경우 nginx의 worker=1 세팅 처럼 cpu를 모두 사용하지 못하는 경우등을 체크해야한다.

cpu usage 중 주요 지표로 us/wa가 중요하다.

  • us: user 수준의 프로세스의 일반적인 cpu 사용량으로 us가 높다면 프로세스가 cpu를 많이 사용하는 것으로 해석된다.
  • wa: waiting, io작업을 대기하는 프로세스로 인해 사용되는 cpu사용량으로 해석한다.

프로세스 상태는 s 컬럼에서 (D R S Z) 확인 가능하다. (D, R은 Load Average에 영향을 준다.)

  • D: Uninterruptible, io가 대기중인 상태로 vmstat상 b 상태다
  • R: Running, cpu 사용중인 상태로 vmstat상태로 v상태다
  • S: Sleeping, 실제 작업을 하지 않고 잠자는 상태다
  • Z: Zombie, 실제 시스템 리소스를 사용하지 않지만, pid 고갈 문제를 일으킬 수 있다.

top 명령으로 서버 내 프로세스들의 상태, cpu, memory 사용량을 확인할 수 있으며 cpu 사용량 중 us가 높다면 cpu를 많이 사용하는 프로세스, wa가 높다면 io를 많이 사용하는 프로세스로 해석할 수 있다.

보통 서버들은 멀티코어기 때문에 개별 cpu의 사용량을 확인해서 cpu 사용에 불균형이 있는지 확인해야한다.

프로세스의 상태는 D R S Z가 있고 혹시 서버에 좀비 프로세스가 많지는 않은지 확인해야한다.