9.모니터링 및 성능 관리, 서버 리소스 모니터링을 위한 htop, top, netdata 사용법

 

서버의 성능을 유지하고 문제를 사전에 예방하기 위해 모니터링과 성능 관리가 중요합니다. 우분투 서버를 운영하면서 자주 사용하는 모니터링 도구인 htop, top, 그리고 netdata에 대해 자세히 알아보겠습니다. 이 글에서는 이 도구들의 설치 방법, 사용법, 그리고 각 도구의 특징에 대해 설명하고 예시를 제공합니다.

1. 모니터링의 필요성

서버가 원활하게 운영되기 위해서는 CPU, 메모리, 디스크 및 네트워크 사용량 등의 성능 지표를 주기적으로 모니터링해야 합니다. 다음은 모니터링의 주요 이점입니다:

  • 문제 조기 발견: 성능 저하나 장애가 발생하기 전에 사전 조치를 취할 수 있습니다.
  • 자원 최적화: 자원의 사용 현황을 분석하여 효율적으로 자원을 배분할 수 있습니다.
  • 인사이트 제공: 서버 운영 중 발생하는 패턴을 분석해 운영 방침을 개선할 수 있습니다.

2. top

top 명령어는 리눅스 시스템에서 현재 실행 중인 프로세스의 상태를 실시간으로 보여주며, CPU 사용량, 메모리 사용량, 시스템 부하 등을 확인할 수 있습니다.

2.1. top 설치 및 기본 사용법

우분투에서는 기본적으로 top이 설치되어 있으므로 별도의 설치가 필요 없습니다. 터미널에서 아래 명령어를 입력하여 top을 실행할 수 있습니다:

top

2.2. top 출력 설명

top을 실행하면 다음과 같은 형태의 출력이 생성됩니다:


top - 14:01:07 up 1 day,  5:44,  2 users,  load average: 0.15, 0.20, 0.22
Tasks: 203 total,   1 running, 202 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.7 us,  1.1 sy,  0.0 ni, 93.9 id,  0.3 wa,  0.0 hi,  0.5 si,  0.0 st
KiB Mem :  8000000 total,  4000000 free,  3000000 used,  1000000 buff/cache
KiB Swap:  2000000 total,  1800000 free,   200000 used.  4000000 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND         
 1234 root      20   0  350000  10000   8000 S   4.0  0.1   0:02.00 nginx  

출력의 각 부분의 의미는 다음과 같습니다:

  • uptime: 시스템 가동 시간, 로그인 사용자 수, 평균 부하.
  • Tasks: 현재 프로세스의 총 개수 및 상태.
  • %Cpu(s): CPU 사용 현황.
  • Mem: 메모리 사용 현황.
  • Swap: 스왑 메모리 사용 현황.
  • PID, USER, PR, NI, VIRT, RES, SHR, S, %CPU, %MEM, TIME+, COMMAND: 각 프로세스의 세부 정보.

2.3. top의 유용한 단축키

top에서 유용한 몇 가지 단축키는 다음과 같습니다:

  • M: 메모리 사용량 기준으로 정렬
  • P: CPU 사용량 기준으로 정렬
  • R: 프로세스의 우선 순위를 변경
  • K: 프로세스 종료
  • Q: top 종료

3. htop

htop은 top보다 더 직관적인 UI를 가진 리소스 모니터링 도구입니다. 색상과 시각적 효과를 통해 시스템 상태를 쉽게 파악할 수 있습니다.

3.1. htop 설치

htop은 기본적으로 설치되어 있지 않으므로 아래 명령어로 설치할 수 있습니다:

sudo apt update
sudo apt install htop

3.2. htop 실행 및 인터페이스

htop을 실행하려면 아래 명령어를 입력합니다:

htop

htop의 출력은 top과 유사하지만 아래와 같은 추가 정보를 제공합니다:

  • CPU 코어 별 사용률
  • 메모리와 스왑 공간의 시각적 구분
  • 사용중인 프로세스를 필터링하고 정렬할 수 있는 화살표 키 사용

3.3. htop에서의 유용한 메뉴 및 단축키

htop에서 자주 사용하는 메뉴와 단축키는 다음과 같습니다:

  • F2: 설정 메뉴
  • F3: 검색 기능
  • F4: 필터 적용
  • F5: 트리 형태로 보기
  • F6: 열 정렬 기준 변경
  • F9: 프로세스 종료 메뉴
  • F10: 종료

4. netdata

netdata는 실시간 성능 모니터링을 위해 그래픽 기반의 웹 인터페이스를 제공하는 프레임워크입니다. 시스템, 서비스, 애플리케이션의 상태를 실시간으로 모니터링 할 수 있습니다.

4.1. netdata 설치

netdata를 설치하려면 아래 명령어를 사용할 수 있습니다:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

설치가 완료되면 netdata는 기본적으로 19999 포트에서 실행됩니다.

4.2. netdata 접근

웹 브라우저에서 아래 주소로 접속하여 netdata 대시보드를 확인할 수 있습니다:

http://your_server_ip:19999

4.3. netdata 대시보드

netdata 대시보드는 다양한 성능 지표를 시각적으로 표현하며, 한눈에 시스템의 전반적인 상태를 파악할 수 있도록 도와줍니다. 아래는 제공하는 주요 기능입니다:

  • CPU 사용량, 메모리 점유율, 디스크 I/O, 네트워크 트래픽의 실시간 모니터링
  • 서버에 설치된 모든 서비스와 애플리케이션의 성능 지표 확인
  • 장기간의 성능 데이터를 저장하고 분석할 수 있는 기능

5. 결론

서버의 성능을 모니터링하는 것은 안정적이고 효율적인 서버 운영을 위해 필수적입니다. 이 글에서 소개한 top, htop, netdata의 다양한 기능을 활용하여 서버 자원을 효과적으로 관리하고, 시스템의 안정성을 높이며, 예기치 못한 문제를 예방하는 데 도움이 될 것입니다.

참고 자료