리눅스 서버 60초 상황파악 가이드 (Netflix USE Method 기반)

Source

  • Evernote/Inbox/Luavis' Dev Story - 리눅스 서버 60초안에 상황파악하기.md

Summary

본문은 넷플릭스의 ‘Linux performance analysis in 60,000ms’ 기사를 번역한 것으로, 리눅스 서버 성능 이슈 발생 시 CLI를 통해 1분 안에 병목 현상을 파악하는 방법을 다룹니다. 이는 Brendan Gregg의 USE Method(Utilization, Saturation, Errors)를 기반으로 하며, uptime(Load Average), dmesg(커널 에러/OOM), vmstat(메모리/스왑/CPU 대기), mpstat(CPU별 부하), pidstat(프로세스별 CPU 사용량) 등의 명령어를 순차적으로 실행하여 시스템 자원의 포화 상태와 오류를 신속하게 진단하는 절차를 제시합니다.

Key Points

  • 성능 분석 방법론: USE Method(Utilization, Saturation, Errors)를 적용하여 CPU, 메모리, 디스크 등의 병목 위치를 찾음
    1. uptime: Load Average(1/5/15분)를 확인하여 시스템 부하의 추세(증가/감소) 파악
    1. dmesg | tail: 최근 커널 메시지를 확인하여 OOM Killer, TCP SYN Flooding 등 치명적 에러 여부 확인
    1. vmstat 1: 프로세스 대기(r), 스왑 사용(si/so), CPU 상태(us/sy/id/wa)를 1초 간격으로 모니터링하여 포화 상태 확인
    1. mpstat -P ALL 1: 각 CPU 코어별 사용률을 확인하여 단일 스레드 병목 또는 코어 간 부하 불균형 파악
    1. pidstat 1: 특정 프로세스(PID)별 CPU 사용량을 확인하여 리소스를 과도하게 소모하는 프로세스 식별