IT 기술 문서

2025.02.01 17:15

CentOS 7 유용한 명령어 시리즈 - ⑫ 시스템 성능 모니터링

  • it2033 4일 전 2025.02.01 17:15
  • 4
    0

alt text


CentOS 7 서버의 안정적인 운영을 위해서는 CPU, 메모리, 디스크 I/O, 네트워크 상태 등을 지속적으로 모니터링하는 것이 중요합니다. 이 글에서는 시스템 성능을 실시간으로 모니터링하고 분석하는 데 유용한 명령어들을 정리하겠습니다.


1. CPU 및 메모리 사용량 확인

1.1. CPU 사용량 실시간 확인

top
  • 현재 CPU, 메모리, 실행 중인 프로세스를 실시간으로 확인합니다.

  • Shift + M → 메모리 사용량 기준 정렬

  • Shift + P → CPU 사용량 기준 정렬

1.2. 보다 향상된 htop 사용 (설치 필요)

yum install htop -y
htop
  • htoptop보다 인터페이스가 직관적이며, 프로세스 관리 기능이 강화되었습니다.

1.3. CPU 사용량을 평균값으로 출력

uptime

출력 예시:

10:15:42 up 3 days,  2:04,  2 users,  load average: 0.35, 0.32, 0.30
  • load average 값이 1.00이면 단일 CPU 기준으로 100% 활용되고 있음을 의미합니다.

1.4. CPU 개수 및 정보 확인

cat /proc/cpuinfo | grep "model name"
  • 현재 시스템의 CPU 개수 및 모델명을 확인합니다.


2. 메모리 사용량 확인

2.1. 현재 메모리 상태 요약

free -m

출력 예시:

              total        used        free      shared  buff/cache   available
Mem:           7864        2560        1220         142        4084        4732
Swap:          2048         512        1536
  • used : 현재 사용 중인 메모리

  • free : 사용 가능한 메모리

  • buff/cache : 커널이 캐시로 사용하고 있는 메모리

2.2. 메모리 사용량이 높은 프로세스 확인

ps aux --sort=-%mem | head -10
  • 메모리 사용량이 높은 상위 10개 프로세스를 확인합니다.


3. 디스크 I/O 모니터링

3.1. 현재 디스크 사용량 확인

df -h
  • 디스크의 전체 사용량 및 남은 용량을 확인합니다.

3.2. 특정 디렉토리의 용량 확인

du -sh /var/log
  • /var/log 디렉토리의 전체 크기를 확인합니다.

3.3. 디스크 I/O 속도 확인

iostat -x 1 5
  • iostat 명령어를 사용하여 디스크의 입출력(I/O) 속도를 1초 간격으로 5번 측정합니다.

  • yum install sysstat -y 명령어로 설치해야 사용할 수 있습니다.

출력 예시:

Device:         rrqm/s   wrqm/s     r/s     w/s  rMB/s  wMB/s avgrq-sz avgqu-sz await
sda               0.00     0.10    5.20    3.00   0.50   0.30    128.00     0.05   1.2
  • r/s : 초당 읽기 요청 횟수

  • w/s : 초당 쓰기 요청 횟수

  • await : 평균 응답 시간(단위: ms)


4. 네트워크 상태 모니터링

4.1. 네트워크 인터페이스 상태 확인

ip a
  • 현재 활성화된 네트워크 인터페이스 및 IP 주소를 확인합니다.

4.2. 특정 IP 또는 도메인에 Ping 테스트

ping -c 4 google.com
  • Google 서버에 4번 Ping을 보내 네트워크 연결 상태를 확인합니다.

4.3. 네트워크 연결 확인

netstat -tulnp
  • 현재 열려 있는 포트 및 연결된 프로세스를 확인합니다.

4.4. 실시간 네트워크 트래픽 확인

yum install iftop -y
iftop -i eth0
  • iftop을 사용하면 eth0 네트워크 인터페이스의 실시간 트래픽을 확인할 수 있습니다.

출력 예시:

192.168.0.100 => 192.168.0.1    10Kb  15Kb  20Kb
192.168.0.100 <= 192.168.0.1    12Kb  14Kb  18Kb
  • 각 IP 간의 송수신 트래픽을 실시간으로 표시합니다.


5. 시스템 전체 상태 요약

5.1. vmstat을 이용한 시스템 성능 요약

vmstat 1 5
  • 1초 간격으로 5번 CPU, 메모리, I/O, 프로세스 상태를 출력합니다.

출력 예시:

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  53280   4180  32904    0    0     3     5    1    3  5  1 93  1  0
  • r : 실행 대기 중인 프로세스 개수

  • us : 사용자 모드 CPU 사용량

  • sy : 시스템 모드 CPU 사용량

  • id : CPU 대기 상태 비율

5.2. 시스템 전체 로그 확인

journalctl -xe
  • 시스템 로그를 분석하여 오류 메시지를 확인할 수 있습니다.


6. 프로세스 및 서비스 모니터링

6.1. 특정 프로세스가 실행 중인지 확인

ps aux | grep nginx
  • nginx 프로세스가 실행 중인지 확인합니다.

6.2. 특정 서비스 상태 확인

systemctl status httpd
  • Apache 웹 서버(httpd)의 현재 상태를 확인합니다.

6.3. 프로세스별 CPU 사용량 확인

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
  • CPU 사용량이 높은 프로세스를 정렬하여 출력합니다.


정리

명령어

설명

top

CPU 및 메모리 사용량 실시간 확인

htop

향상된 시스템 모니터링 (설치 필요)

free -m

메모리 사용량 확인

df -h

디스크 사용량 확인

du -sh /var/log

특정 디렉토리 크기 확인

iostat -x 1 5

디스크 I/O 속도 확인

ping -c 4 google.com

네트워크 연결 상태 확인

netstat -tulnp

열린 포트 및 네트워크 연결 확인

iftop -i eth0

실시간 네트워크 트래픽 모니터링

vmstat 1 5

시스템 성능 요약 확인

journalctl -xe

시스템 로그 확인

systemctl status httpd

특정 서비스 상태 확인

이번에는 CentOS 7에서 시스템 성능을 모니터링하는 명령어들을 정리했습니다. 다음 시리즈에서는 네트워크 문제 해결 및 트러블슈팅 명령어를 다루겠습니다.

  • 공유링크 복사