우분투 실전 명령어 | 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 프로젝트