리눅스에서의 시스템 모니터링 도구: 성능 최적화 및 문제 예방

리눅스에서의 시스템 모니터링 도구

안녕하세요! 저는 mj입니다. 오늘은 리눅스에서 시스템 모니터링을 위한 다양한 도구에 대해 알아보겠습니다. 시스템 모니터링은 서버의 성능을 유지하고 문제를 사전에 예방하는 데 필수적입니다. 이 포스팅에서는 주요 모니터링 도구들과 그 사용법을 소개하겠습니다.

1. top

top 명령어는 실시간으로 시스템의 프로세스와 리소스 사용량을 모니터링할 수 있는 기본적인 도구입니다. CPU 사용률, 메모리 사용량, 프로세스 목록 등을 확인할 수 있습니다. top 명령어를 입력하면 다음과 같은 화면이 나타납니다:

top

여기에서 각 프로세스의 PID, 사용자, CPU 사용률, 메모리 사용률 등을 확인할 수 있습니다. q 키를 눌러 종료할 수 있습니다. 아래는 top 실행 후 보여지는 예시입니다:

top - 15:00:01 up 5 days,  4:32,  2 users,  load average: 0.05, 0.02, 0.00
Tasks: 156 total,   1 running, 155 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.2 us,  0.5 sy,  0.0 ni, 98.2 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  16384000 total,  12000000 free,   2000000 used,   2400000 buff/cache
KiB Swap:   2048000 total,   2048000 free,        0 used.  13000000 avail Mem

2. htop

htoptop의 대체 도구로, 더 많은 기능과 사용자 친화적인 인터페이스를 제공합니다. htop를 설치한 후 실행하면 프로세스 목록이 컬러풀하게 표시되며, 마우스 클릭으로도 조작할 수 있습니다:

htop

여기에서 프로세스를 종료하거나 우선순위를 조정하는 등의 작업을 쉽게 수행할 수 있습니다. htop 실행 후의 예시는 다음과 같습니다:

PID USER      PRI  NI  VIRT   RES   SHR S  %CPU %MEM      TIME+ COMMAND
1234 mj         20   0  123M  456K  123K S   0.3  0.0   0:00.01 bash
5678 mj         20   0  234M  789K  234K S   0.2  0.0   0:00.02 python3

3. iostat

iostat는 CPU와 I/O 장치의 성능을 모니터링하는 도구입니다. 디스크 사용량과 성능을 분석할 수 있어, 디스크 병목 현상을 파악하는 데 유용합니다. 다음과 같이 사용합니다:

iostat -x 1

이 명령어는 1초 간격으로 디스크 사용률을 출력합니다. 출력 예시는 다음과 같습니다:

Linux 5.4.0-42-generic (hostname)  02/17/2025  _x86_64_  (4 CPU)
Device            r/s     w/s   rkB/s   wkB/s  avgrq-sz  avgqu-sz  await  r_await  w_await  svctm  %util
sda            0.50    0.30    50.00    20.00      140.00      0.05   0.10     0.20     0.05   0.01   1.00

4. vmstat

vmstat는 시스템의 메모리, 프로세스, 입출력, 시스템 활동을 모니터링하는 도구입니다. 시스템의 전반적인 성능을 파악하는 데 유용합니다:

vmstat 1

이 명령어는 1초마다 시스템 정보를 출력합니다. 출력 예시는 다음과 같습니다:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa st
 1  0      0 12000000  200000   2400000   0    0    0     0  110  210  2  1 97  0  0

5. netstat

netstat는 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등을 확인하는 데 사용되는 도구입니다. 현재 열려 있는 포트와 연결된 IP 주소를 확인할 수 있습니다:

netstat -tuln

실행 결과는 다음과 같습니다:

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp   0      0      0.0.0.0:80              0.0.0.0:*             LISTEN
tcp   0      0      0.0.0.0:22              0.0.0.0:*             LISTEN

6. nload

nload는 실시간으로 네트워크 트래픽을 모니터링하는 도구입니다. 네트워크 대역폭 사용량을 시각적으로 확인할 수 있습니다. 다음과 같이 실행합니다:

nload

여기에서 송신 및 수신 트래픽을 그래픽으로 확인할 수 있으며, 예시 화면은 다음과 같습니다:

Incoming:  100 kbit/s        Outgoing:  50 kbit/s
[...]

7. sar

sar는 시스템 활동을 수집하고 보고하는 도구입니다. CPU 사용률, 메모리 사용량, I/O 통계 등을 기록하고 시각화할 수 있습니다. 사용 예시는 다음과 같습니다:

sar -u 1

1초 간격으로 CPU 사용률을 출력하며, 결과 예시는 다음과 같습니다:

Linux 5.4.0-42-generic (hostname) 02/17/2025
02:00:01 AM CPU %user %nice %system %iowait %steal %idle
02:00:01 AM all  2.50 0.00 0.50 0.00 0.00 97.00

8. 결론

리눅스에서 시스템 모니터링은 서버의 성능을 유지하고 문제를 예방하는 데 매우 중요합니다. 위에서 소개한 도구들을 활용하여 시스템 상태를 지속적으로 모니터링하고, 문제 발생 시 신속하게 대응할 수 있도록 하세요. 각 도구의 특징과 사용법을 익혀서 보다 효율적인 시스템 관리를 실현해보세요!

감사합니다! 다음 포스팅에서 또 만나요!

댓글

이 블로그의 인기 게시물

006) 컴퓨터 주요 부품 설명: CPU, 메모리, 디스크의 모든 것

011) Rocky Linux 9.5 설치 방법: 단계별 가이드와 설정 팁

001) 리눅스란? 기본 개념부터 활용까지 완벽 가이드