우분투 실전 명령어 | uptime, w, last reboot로 상태 진단

언제 쓰는가

서버가 느리다는 이야기가 나왔을 때 가장 먼저 볼 지표가 가동 시간과 로드 평균입니다. uptime, w, last reboot를 같이 보면 재부팅 직후인지, 장시간 누적 부하인지, 현재 누가 어떤 작업을 돌리는지 빠르게 감이 잡힙니다.

바로 쓰는 명령어

# 현재 시간, 가동 시간, 로드 평균 한 번에 확인
uptime

# 접속 사용자와 실행 중인 커맨드 확인
w

# 최근 재부팅 이력 확인
last reboot | head -n 5
# 1초 간격으로 10회 로드 평균 추적
for i in {1..10}; do uptime; sleep 1; done

# 로그인 사용자 없이 시스템 부하만 간단 확인
uptime | awk -F'load average:' '{print $2}'

# 현재 부팅 시각 확인
who -b

핵심 옵션/패턴

  • uptime: 1분, 5분, 15분 로드 평균을 즉시 확인할 때 가장 빠르다.
  • w: 사용자별 접속 시간, idle, JCPU, PCPU, 실행 명령까지 함께 보여 준다.
  • last reboot: 과거 재부팅 시점과 다운타임 추이를 확인할 때 유용하다.
  • who -b: 현재 부팅 시각만 단순하게 확인할 때 깔끔하다.
  • 관찰 패턴: uptime으로 전체 부하를 보고, w로 원인을 좁히고, last reboot로 배경 이력을 맞춘다.

명령 출력 예시

$ uptime
 00:31:42 up 18 days,  4:12,  2 users,  load average: 0.42, 0.58, 0.67
$ w
 00:31:49 up 18 days,  4:12,  2 users,  load average: 0.43, 0.57, 0.66
USER     TTY      FROM           LOGIN@   IDLE   JCPU   PCPU WHAT
ubuntu   pts/0    10.0.0.21      23:51    2:01m  0.12s  0.03s vim /etc/nginx/nginx.conf
deploy   pts/1    10.0.0.33      00:10    0.00s  1.52s  1.40s python3 worker.py
$ last reboot | head -n 3
reboot   system boot  6.8.0-59-generic Thu Feb 13 08:17   still running
reboot   system boot  6.8.0-57-generic Mon Feb 10 01:02 - 08:16  (3+07:14)
reboot   system boot  6.8.0-57-generic Fri Feb  7 22:41 - 01:01  (2+02:20)

자주 하는 실수

  • 실수 1: 로드 평균 숫자를 CPU 코어 수와 비교하지 않고 절대값으로만 판단한다.
  • 실수 2: 순간 느림 이슈를 15분 평균만 보고 괜찮다고 결론 내린다.
  • 실수 3: 재부팅 직후 캐시 워밍업 구간을 장애로 오해한다.

검증 방법

# 1) 코어 수와 로드 평균을 함께 본다
nproc
uptime

# 2) 상위 CPU 사용 프로세스 확인
ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 10

# 3) 재부팅 시점과 서비스 시작 시간 교차 확인
who -b
systemctl show nginx -p ActiveEnterTimestamp

운영 팁

  • 로드 평균은 단독으로 보지 말고 CPU 코어 수, I/O 대기, 메모리 사용량과 같이 해석하는 편이 안전하다.
  • 장애 대응 중에는 1분 평균이 급상승하는지 먼저 보고, 이후 5분과 15분으로 추세를 확인하면 판단이 빨라진다.
  • 정기 점검 리포트에는 uptime 한 줄과 last reboot 상위 3줄을 같이 남기면 운영 히스토리 추적이 쉬워진다.

출처

  • Ubuntu Manpage Team
  • Linux man-pages Project
  • util-linux 프로젝트