리눅스에서의 시스템 모니터링 도구: 성능 최적화 및 문제 예방
리눅스에서의 시스템 모니터링 도구
안녕하세요! 저는 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
htop
는 top
의 대체 도구로, 더 많은 기능과 사용자 친화적인 인터페이스를 제공합니다. 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. 결론
리눅스에서 시스템 모니터링은 서버의 성능을 유지하고 문제를 예방하는 데 매우 중요합니다. 위에서 소개한 도구들을 활용하여 시스템 상태를 지속적으로 모니터링하고, 문제 발생 시 신속하게 대응할 수 있도록 하세요. 각 도구의 특징과 사용법을 익혀서 보다 효율적인 시스템 관리를 실현해보세요!
감사합니다! 다음 포스팅에서 또 만나요!
댓글
댓글 쓰기