Notice
Recent Posts
Recent Comments
«   2026/07   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

훌륭한 개발자가 되기 위하여

Linux에서 CPU, 메모리, 네트워크 사용률 확인하기 본문

Linux

Linux에서 CPU, 메모리, 네트워크 사용률 확인하기

jay20033 2024. 7. 17. 03:40

CPU 사용량 확인

top 명령어로 CPU 사용률 확인하기

top 명령어는 리눅스에서 시스템의 상태를 실시간으로 모니터링하는 데 사용되는 명령어입니다.

 

top 명령어를 이용하여 CPU 사용률 을확인하는 방법

 

top -bn1 | grep "Cpu(s)" | awk '{printf("CPU 사용률 : %.1f%%\n", 100 - $8)}'

실행 결과

CPU usage : 25.9%

 

CPU의 유휴 상태(idle)을 확인하는 방법

top -bn1 | grep "Cpu(s)" | awk '{printf("CPU idle : %.1f%%\n", $8)}'

실행 결과

CPU idle : 74.1%

 

vmstat 명령어로 CPU 사용률 확인하기

vmstat 명령어는 시스템의 전반적인 상태를 보여주는 명령어입니다.

CPU 사용률 뿐만 아니라 메모리, 디스크 I/O, 프로세스에 대한 정보도 제공합니다.

 

1초 마다 모니터링 결과를 확인할 수 있습니다. 뒤에 숫자가 시간을 의미합니다.

vmstat 1

 

실행 결과

 

mpstat 명령어로 CPU 사용률 확인하기

mpstat 명령어는 각각의 CPU 코어에 대한 세부적인 정보를 제공하는 명령어입니다.

멀티코어 시스템에서 유용하게 사용됩니다.

mpstat -P ALL

 

메모리 사용량 확인

free 명령어

전체 메모리(사용하고 있는 메모리, 남은 메모리, 버퍼메모리)에 대한 상태를 확인합니다.

시스템의 실제메모리와 스왑메모리에 대한 사용현황 확인가능합니다. 기본 설정은 KB입니다.

1행 - Mem

  • 시스템의 메모리 총합 : 3916M(4G)
  • 사용중인 메모리 : 1.3G
  • 사용 가능한 메모리 : 1.3G
  • 공유 중인 메모리 : 42MB
  • 버퍼/캐쉬 메모리 : 1.4G

2행 - 스왑

  • 스왑 공간 메모리 : 3915M(4G)
  • 스왑 사용중인 메모리 : 0M
  • 스왑 사용 가능한 메모리 : 3915M(4G)

SWAP은 디스크의 일정 부분을 메모리 공간 보족시 메모리처럼 사용하기 위해 설정해둔 공간입니다.

ex) RAM이 부족할 때 하드디스크를 swap memory로 만들어 RAM처럼 사용합니다.

 

네트워크 사용량 확인

1. 트래픽 관련 정보

#cat /proc/net/dev

 

2. 원하는 어댑터의 정보만 수집

#grep eth0 /proc/net/dev

* eth0 를 원하는 어댑터로 수정

 

3. 추출된 데이터중 필요한 것은 송/수신 데이터 양. 즉 1번째 숫자(rx) 와 9번째 숫자(tx)만 필요

#grep eth0 /proc/net/dev | awk '{print $1}'

#grep eth0 /proc/net/dev | awk '{print $9}'

 

4. 어댑터 이름 "eth0:" 제거 (sed)
​#grep eth0 /proc/net/dev | awk '{print $1}' | sec 's/.*://'

 

* sed = 스트림에디터 이다. 표준 입력으로 들어오는 내용을 편집하는것으로

구성은 s/표현1/표현2/ 으로 표현1을 표현2로 치환하는 것입니다.
  ".*:"  "."은 아무 글자를 의미하고, "*"는 0개 이상을 의미합니다.
 결론적으로 ":" 까지의 모든 글자를 지우라는 의미입니다.

 

Crontab이란?

스케줄링을 관리하는 프로그램으로써 특정 시간대에 사용자가 작성한 스크립트나 명령을 실행하며 rsync 같은 툴을 같이 사용하여 편리한 백업 시스템이나 데이터 베이스 관리와 같은 반복적인 업무를 등록하여 사용합니다.

-> 반복적인 작업을 정의하여 실행해주는 자동 매크로라고 생각하시면 됩니다.

crontab -l : 예약된 작업 리스트 출력
crontab -e : 예약된 작업 리스트 수정
crontab - r : 예약된 작업 리스트 목록 삭제

 

첫번째 필드 : 분(0~59)
두 번째 필드 : 시 (0~23)
세 번째 필드 : 일 (0~31)
네 번째 필드 : 월 (1~12)
다섯 번째 필드 : 요일 (0~7)
0,7 = 일요일
1 = 월요일...
여섯 번째 필드 : 실행할 명령
ex) 30 */3 * * * /home/test.sh 3시간 30분마다 반복 

위 예제에서 */3은 매시간이지만 3시간이라는 뜻으로 3시간마다 반복이라는 의미와 같습니다.