Linuxのhtop/top完全解説ガイド
원제: Explanation of everything you can see in htop/top on Linux (2019)
왜 중요한가
시스템 모니터링 도구의 핵심 지표를 /proc 파일 시스템 수준에서 설명함으로써, 개발자 및 SRE의 Linux 운영 역량 향상에 직접 기여하는 실용적 레퍼런스로 평가된다.
2019년 11월 17일 마지막으로 업데이트된 기술 블로그 글이 Hacker News 1위와 Reddit r/programming 1위를 각각 기록했다. 저자 Peteris Rocks는 Linux의 htop 및 top 도구에 표시되는 Uptime, Load average, 프로세스 상태(R/S/D/Z/T/t), 메모리 지표(VIRT/RES/SHR/MEM%), PID 등 모든 항목을 /proc 파일 시스템 참조와 함께 체계적으로 해설했다.
이 글은 Linux 시스템 관리자와 개발자들이 htop 및 top 출력 화면의 각 항목을 정확히 이해할 수 있도록 작성된 상세 해설 문서다. Ubuntu Server 16.04 x64 환경의 실제 스크린샷을 기반으로 설명이 진행된다.
주요 항목별 설명은 다음과 같다.
**Uptime**: 시스템 가동 시간을 표시하며, 데이터 출처는 /proc/uptime 파일이다. 해당 파일의 첫 번째 값은 총 가동 초수, 두 번째 값은 유휴 상태에서 보낸 초수이며, 멀티코어 환경에서는 두 번째 값이 가동 시간을 초과할 수 있다.
**Load average**: 1분, 5분, 15분 평균 시스템 부하를 나타내며 /proc/loadavg 파일에서 읽어온다. 저자는 2코어 머신에서 load average 1.0이 CPU 사용률 50%를 의미한다는 오해를 직접 경험했다고 밝히며, 정확한 의미를 설명한다.
**프로세스 상태**: R(실행 중 또는 실행 대기), S(인터럽트 가능한 슬립), D(인터럽트 불가 슬립, 주로 IO), Z(좀비 프로세스), T(작업 제어 신호로 정지), t(디버거에 의해 정지) 등 6가지 상태를 설명한다.
**메모리 지표**: VIRT(가상 메모리 전체), RES(실제 점유 물리 메모리), SHR(공유 메모리), MEM%(물리 메모리 대비 비율)의 차이를 명확히 구분해 설명한다.
또한 strace 도구를 활용해 각 프로그램이 어떤 파일을 참조하는지 추적하는 방법도 소개한다. 글은 부록으로 소스 코드, 파일 디스크립터, PuTTY 색상 설정 등도 포함한다.