본문 바로가기

카테고리 없음

서버 과부하 원인 찾기: top 및 htop 명령어 활용법

리눅스 서버의 응답이 갑자기 느려지거나 SSH 접속 지연이 발생할 때, 가장 먼저 확인해야 할 요소는 CPU와 RAM 사용량입니다. 원인을 정확히 파악하지 않고 서버를 무작정 재부팅하는 방식은 일시적인 조치일 뿐, 동일한 문제의 재발을 막기 어렵습니다.

본 가이드에서는 별도 프로그램 설치 없이 즉시 실행 가능한 top 명령어와, 직관적인 UI로 프로세스 관리를 돕는 htop 모니터링 도구의 핵심 사용법을 체계적으로 정리합니다.

 

 

 

 

1. 기본 시스템 모니터링: top 명령어 사용법

top 명령어는 대부분의 리눅스 배포판에 기본 내장되어 있어 추가 설치 없이 바로 사용할 수 있는 실시간 프로세스 모니터링 도구입니다.

기본 실행 및 화면 구성 터미널에 top을 입력하면 상단에는 전체 시스템 요약 정보가, 하단에는 프로세스별 상세 목록이 출력됩니다.

  • 상단 요약 영역: 서버 가동 시간(uptime), 접속 사용자 수, Load Average(평균 부하), CPU 사용률(us, sy, id 등), 메모리 및 스왑(Swap) 사용량이 표기됩니다.
  • 하단 프로세스 영역: PID(프로세스 ID), USER(소유자), %CPU, %MEM, COMMAND(실행 명령) 등의 항목으로 나뉩니다.

실시간 정렬 및 모니터링 팁

  • P 키: CPU 사용량이 가장 높은 순서대로 프로세스를 정렬합니다.
  • M 키: 메모리(RAM) 점유율이 높은 순서대로 정렬을 전환합니다.
  • k 키: 과부하를 유발하는 특정 프로세스의 PID를 입력하여 즉시 종료(Kill)할 수 있습니다.
  • q 키: top 모니터링 화면을 종료합니다.

Load Average 수치가 서버의 CPU 코어 수를 초과하는 상태가 지속된다면, CPU 자원 병목 현상이 발생하고 있음을 의미합니다.

2. 직관적인 프로세스 분석: htop 명령어 활용하기

top 명령어의 텍스트 중심 화면이 파악하기 어렵다면, 컬러 그래프와 마우스 조작을 지원하는 htop 도구를 사용하는 것이 훨씬 효율적입니다.

htop 설치 가이드 주요 리눅스 패키지 관리자를 통해 간단히 설치할 수 있습니다.

  • Ubuntu/Debian 계열: sudo apt update && sudo apt install htop
  • CentOS/RHEL 계열: sudo yum install epel-release && sudo yum install htop

htop의 핵심 장점 및 사용 방법

  1. 각 코어별 CPU 사용률 시각화: 멀티코어 환경에서 특정 코어만 100% 부하를 받는지 한눈에 파악할 수 있습니다.
  2. 트리 뷰(Tree View) 지원: F5 키를 누르면 부모 프로세스와 자식 프로세스의 종속 관계를 계층 구조로 보여주어, 어떤 서비스가 연쇄 부하를 일으키는지 찾기 쉽습니다.
  3. 간편한 프로세스 검색 및 필터링: F3 키로 프로세스명을 검색하거나, F4 키로 특정 단어가 포함된 프로세스만 필터링하여 감시할 수 있습니다.
  4. 안전한 프로세스 관리: 종료할 프로세스를 방향키로 선택한 후 F9 키를 누르면 시그널(SIGTERM, SIGKILL 등)을 선택해 안전하게 프로세스를 정지할 수 있습니다.

3. 서버 과부하 발생 시 단계별 대응 흐름

서버 모니터링 중 자원 고갈 현상을 발견했을 때 권장되는 표준 대응 방법은 다음과 같습니다.

  1. 상태 확인: top 또는 htop을 실행하여 CPU와 메모리 중 어느 자원이 고갈되었는지 확인합니다.
  2. 원인 프로세스 식별: %CPU 또는 %MEM 정렬을 통해 자원을 과도하게 점유하는 COMMAND를 찾습니다.
  3. 로그 검증: 해당 프로세스가 웹서버(Nginx/Apache), DB(MySQL), 또는 특정 백엔드 애플리케이션인지 확인 후 관련 로그 파일(/var/log/)을 분석합니다.
  4. 프로세스 재시작 또는 종료: 악성 스크립트나 무한 루프에 빠진 프로세스라면 즉시 종료하고, 정상 서비스라면 해당 서비스의 데몬을 재시작합니다.
  5. 자원 확장 검토: 지속적으로 메모리 부족(OOM)이나 CPU 부하가 발생한다면 서버 스펙 증설(Scale-up) 또는 코딩 로직 최적화가 필요합니다.

 


 


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 블로그 이름