Linux에서 CPU 사용량을 확인하는 14 가지 명령 줄 도구

CPU 성능은 시스템의 성능. CPU 성능 모니터링은 모든 시스템 내부의 프로세스를 디버그하고, 시스템 리소스를 관리하고, 시스템 결정을 내리고, 실시간으로 시스템을 평가하고 검사하는 데 필수적입니다.

모니터링 및 표시 할 수있는 많은 도구가 있습니다. CPU 성능. 운영 체제에는 이러한 도구가 성능 판독 값을 추출하는 데 사용하는 시스템 호출이 내장되어 있습니다.

이 자습서에서는 Linux 기반 배포판에서 최고의 CPU 사용량 모니터링 도구와 그 사용법을 탐색합니다.

p>

1) Top

top 명령은 시스템에서 실행중인 모든 프로세스의 성능 관련 데이터를 실시간으로 표시합니다. 기본적으로 top 명령은 5 초마다 데이터를 업데이트합니다. 시스템 성능과 관련된 통계 데이터를 보려면 터미널에서 “top”을 입력하십시오.

 # top

top 명령의 출력을 수정하려면 다음을 누르십시오.

“P”는 CPU 사용량을 기준으로 정렬합니다.

“I”는 디스플레이에서 유휴 프로세스를 제거하고 다시 되돌리려면 “I”를 다시 누릅니다.

“M”은 메모리 사용량별로 데이터를 정렬합니다.

“S”는 프로세스가 실행 된 기간별로 정렬합니다.

“P”는 CPU 사용량별로 정렬합니다.

“U”는 특정 사용자가 소유 한 프로세스를 봅니다.

“K”는 프로세스를 종료합니다.

“R”은 프로세스를 다시 만듭니다.

2) Iostat

iostat 명령은 CPU 사용률, 장치 사용률 및 네트워크 파일 시스템 사용률을 나열합니다. 이 유틸리티는 마지막 재부팅 이후 시스템의 평균 CPU 사용률을 표시합니다. 옵션없이 다음 명령을 실행하면 세 가지 보고서가 모두 표시됩니다.

 # iostat

개별 보고서를 나열하려면 CPU 사용률에 -c, -d 및 -h 스위치를 사용합니다. , 장치 활용 및 네트워크 파일 시스템 활용. 다음 명령은 CPU 사용률을 사용자 프로세스, 시스템 프로세스, I / O 대기 및 유휴 시간으로 나눕니다.

 # iostat -c

다음 명령은 확장 된 통계를 표시합니다 ( -x), 각 보고서가 CPU 사용률 (-c)에 대해 표시되어야하는 횟수 (-t)입니다.

 # iostat -xtc 5 2

3) Vmstat

vmstat 명령은 시스템 프로세스, 메모리, 스왑, I / O 및 CPU 성능에 대한 통계를 표시합니다. 통계를 표시하기 위해 명령이 마지막으로 실행 된 시점부터 현재까지 데이터가 수집됩니다. 명령이 실행되지 않는 경우 데이터는 마지막 재부팅부터 현재 시간까지입니다.

여러 CPU 시스템에서 vmstat는 출력에 대한 CPU 수의 평균을 계산합니다. vmstat 명령은 top 명령과 같이 출력을 업데이트합니다.

다음 명령은 인터럽트가 발생할 때까지 5 초마다 보고서를 업데이트합니다.

 # vmstat 5

다음 명령은 5 초마다 업데이트되는 데이터를 표시하고 값은 1 초마다 재 측정 및보고됩니다.

 # vmstat 1 5

The 첫 번째 줄은 컴퓨터가 마지막으로 재부팅 된 이후의 평균 값을 인쇄합니다. 나머지 줄은 각각의 현재 값을 표시합니다. 일반 사용자는 vmstat 명령을 실행할 수 있습니다.

4) Mpstat

Mpstat는 Linux에서 sysstat 패키지의 일부입니다. mpstat 명령은 사용 가능한 각 프로세서의 활동에 대한 표준 출력에 기록하며 프로세서 0이 첫 번째 프로세서입니다. 활동을 선택하지 않은 경우 기본 보고서는 CPU 사용률 보고서입니다.

옵션이없는 mpstat는 모든 CPU의 글로벌 평균 활동을 표시합니다.

 # mpstat

mpstat with -p 옵션 및 “ALL”은 모든 CPU에 대한 통계를 0부터 하나씩 나열합니다.

 # mpstat -P ALL

다음 명령은 2 초 후 각각 4 번 동안 평균 CPU 사용량을 나열합니다.

 # mpstat -P ALL 2 4

5) Sar

sar는 다음을위한 성능 모니터링 도구입니다. 성능 데이터를 수집,보기 및 기록하고 시스템이 항상 수행하는 작업을 나열 할 수 있습니다. Sar 명령은 보고서를 생성하여 시스템 관리자에게 이메일로 보낼 수 있습니다. sar에서보고하는 통계에는 I / O 전송률, 페이징 활동, 프로세스 관련 활동, 인터럽트, 네트워크 활동, 메모리 및 스왑 공간 사용률, CPU 사용률, 커널 활동 및 TTY 통계 등이 포함됩니다. 옵션없이 sar를 실행하고 출력을 확인하십시오. 10 분마다의 기본 출력 목록 통계 및 최종 평균입니다.

 # sar

2 초 간격으로 CPU 통계를 3 번 표시합니다.

 # sar 2 3

다음 명령은 2 초마다 총 3 번 모든 CPU의 누적 실시간 CPU 사용량을 표시합니다.

 # sar -u 2 3

“-P ALL”옵션은 모든 개별 Core에 대한 통계를 표시합니다. 시스템에 4 개의 코어가있는 경우 “CPU 열”에는 해당 CPU 코어 번호를 나타내는 숫자 0, 1, 2, 3이 포함됩니다.”2 3″옵션은 3 번 동안 2 초마다 통계를 표시합니다.

 # sar -P ALL 2 3

“-P 2″옵션은 2 초마다 세 번째 코어에 대한 통계를 표시합니다. 3 회.

 # sar -P 2 2 3

6) CoreFreq

CoreFreq는 Intel 아키텍처가있는 64 비트 프로세서 용으로 설계된 CPU 성능 모니터링 소프트웨어입니다. Atom, Core2, Nehalem, SandyBridge 및 superior, AMD 제품군. CoreFreq는 높은 정밀도로 CPU 데이터를 검색하기위한 프레임 워크를 제공합니다. 커널 모듈, 데몬 및 사용자 영역 명령 줄 인터페이스 (CLI)는 Corefreq의 세 부분입니다. 커널 모듈은 호스트에 대한 전체 액세스 권한을 갖습니다. 낮은 수준의 데이터를 수집하는 것은 그 책임입니다. userland 데몬은 데이터를 수집합니다. 데몬을 실행하려면 루트 사용자 여야합니다. 마지막으로 CoreFreq는 사람이 읽을 수있는 좋은 형식으로 데이터를보고하는 터미널 인터페이스와 함께 제공됩니다. 해당 CLI 도구는 일반적인 프로세스이며 최종 사용자가 사용할 수 있습니다.

전제 조건

i) CoreFreq는 하위 수준 카운터를 사용하므로 먼저 /를 통해 NMI 감시를 비활성화해야합니다. etc / default / grub. / etc / default / grub을 편집하고 “nmi_watchdog = 0″커널 명령 줄 인수를 추가 한 다음 update-grub을 실행합니다.

 # vi /etc/default/grub
 .................... .................... GRUB_CMDLINE_LINUX="nmi_watchdog=0" .................... ....................
 # update-grub && reboot

ii) 가상화 없음. VM은 CoreFreq 드라이버가 사용하는 레지스터에 대한 액세스를 제공하지 않습니다.

CoreFreq 설치

insmod를 사용하여 커널 모듈 설치

 # sudo insmod corefreqk.ko

lsmod를 사용하여 CoreFreq 모듈 나열

 # lsmod | grep corefreq corefreqk 49152 0

dmesg 명령의 출력은 CoreFreq가 프로세서에 의해 인식되었음을 보여줍니다.

 # sudo dmesg | grep CoreFreq CoreFreq: Processor Architecture CPU 

CoreFreq 데몬 시작

 # sudo ./corefreqd -i &

이제 corefreq 클라이언트를 사용자로 시작합니다.

 # ./corefreq-cli

7) Htop

Htop은 상단과 같은 실시간 시스템 모니터링을위한 프로세스 뷰어 및 텍스트 모드 애플리케이션입니다. 실행되고 사용하기 쉬운 프로세스 목록입니다. 터미널에서 실행되는 GUI와 같은 환경에서 프로세스를보기위한 ncurses를 기반으로합니다. Htop은 메모리 및 스왑 사용량과 함께 CPU 당 사용량을 표시하고 중요한 텍스트 그래프를 인쇄합니다. Htop은 사용하기 매우 편리하고 이해하기 쉽습니다. HTOP를 사용하기 시작하면 y TOP으로 돌아 가지 않을 수 있습니다.

터미널에서 다음 명령을 사용하여 htop을 설치합니다.

 # sudo apt-get install htop

다음 명령을 사용하여 htop을 실행합니다.

 # htop

8) Nmon

nmon (Nigel ‘s Linux 용 성능 모니터 & AIX)는 IBM 직원 인 Nigel Griffiths가 개발했습니다. 이 도구는 CPU, 메모리, 네트워크, 디스크, 파일 시스템, NFS, 터미널의 최상위 프로세스와 같은 시스템 리소스를 모니터링하는 데 사용됩니다. NMON은 POWER, x86, x86_64, Mainframe 및 ARM (Raspberry Pi)과 같은 다양한 아키텍처를 지원합니다. 이 도구는 시스템 관리자가 일부 문제가있을 때 CPU / 시스템 성능 문제를 해결하기 위해 성능 정보를 조정하고 벤치 마크하는 데 도움이됩니다. 실시간 모니터링을 위해 저 CPU 영향을 위해 curses 라이브러리를 사용하고 화면에 통계를 표시하고 2 초마다 업데이트합니다. nmon은 curses 라이브러리를 사용하기 때문에 다른 도구에 비해 CPU 메모리를 덜 사용합니다.

설치

 # sudo apt-get install nmon (Ubuntu) # sudo yum install nmon (CentOS)

CentOS 사용자는 설치 / 활성화해야합니다. nmon을 설치하려면 EPEL Repository.

터미널에 nmon을 입력하고 Enter를 누르면 nmon은 추가로 사용할 수있는 모든 옵션이있는 환영 화면을 표시합니다. CPU 사용률을 표시하려면 c를 누르고 CPU 사용률 위젯 통계를 숨기려면 “c”를 다시 누릅니다.

9) Glances

Glances는 psutil 라이브러리를 사용하여 시스템에서 데이터를 가져 오는 Python으로 작성된 크로스 플랫폼 curses 기반 모니터링 도구입니다. CPU,로드 평균, 메모리, 네트워크 인터페이스, 디스크 I / O, 프로세스 및 파일 시스템 공간 활용도를 한눈에 모니터링합니다.

다음 명령을 사용하여 시스템에 glances를 설치합니다.

Ubuntu에서 :

 # sudo apt-get install glances

Centos :

 # sudo yum install glances

Glances는 3 가지 모드로 실행할 수 있습니다.

1. 독립형

로컬 머신 (독립형)을 모니터링하려면 다음을 실행하면됩니다.

 # glances

2. 클라이언트 / 서버

머신을 원격으로 모니터링하려면 서버에서 다음을 실행합니다.

 # glances -s

그런 다음 클라이언트에서 , 다음 명령을 실행합니다.

 # glances -c @server

여기서 @server는 서버의 IP 주소 또는 호스트 이름입니다.

3. 웹 서버

터미널에서 다음 명령을 실행하여 웹 서버 모드에서 한눈에보기를 실행하세요.

 # glances -w Glances web server started on http://0.0.0.0:61208/

새로 고침 빈도를 변경하려면 페이지에서 URL 끝에 마침표를 초 단위로 추가하면됩니다. 예를 들어 30 초마다 페이지를 새로 고치려면 브라우저의 glances 서버 URL에 10을 추가하십시오.

 http://@server:61208/30

10) Cpustat

Cpustat는 다른 일을하는 멋진 탑 처럼요. 대부분의 성능 도구는 몇 초 또는 심지어 1 분 동안 평균 CPU 사용량입니다. 이로 인해 사용량이 적은 기간과 혼합 된 리소스 사용량의 갑작스러운 증가로 인해 초과 용량에 대한 환상이 생깁니다. 반면 cpustat는 각 프로세스에서 더 높은 빈도의 샘플을 취하여 더 낮은 빈도로 이러한 샘플을 요약합니다. 예를 들어 200ms마다 프로세스를 측정하고 일부 메트릭의 최소 / 평균 / 최대 값을 포함하여 5 초마다 샘플을 요약 할 수 있습니다.

Install Cpustat

Cpustat가 작성되었습니다. Go 언어로. 따라서 시스템에 GO가 필요합니다. 없는 경우 터미널에서 다음 명령을 사용하여 설치합니다.

Ubuntu

 # sudo add-apt-repository ppa:longsleep/golang-backports # sudo apt-get update # sudo apt-get install golang-go

CentOS

 # yum install golang

Golang이 시스템에 설치되면 Cpustat 용 디렉토리를 만들고이 디렉토리를 GOPATH에서 사용할 수 있도록합니다.

 # mkdir cpustat # export GOPATH=$HOME/cpustat

Cpustat를 설치하고 디렉토리가 cpustat 폴더로 복사되었는지 확인합니다.

 # go get github.com/uber-common/cpustat # cd cpustat && ls

BIN 폴더를 PATH 환경 변수에 추가합니다. 사용중인 항목에 따라 ~ / .bashrc 또는 / etc / profile에 다음 줄을 추가 할 수도 있습니다.

 # export PATH=$PATH:/root/cpustat/bin

이를 표시하는 두 가지 방법이 있습니다. 데이터. 요약 간격의 순수 텍스트 목록 또는 각 샘플의 다채로운 스크롤 대시 보드입니다. 고급 터미널 모드로 데이터를 표시하려면 터미널에서 다음 명령을 실행하십시오.

 # cpustat -t

순수 텍스트 모드에서 실행하려면 다음 명령을 사용하십시오. 텍스트 모드에서는 / proc / stat에서 오는 시스템 전체 요약 측정 항목이 거의 없습니다.

 # cpustat

다음 명령은 500ms마다 모든 프로세스의 샘플을 가져와 이 데이터를 5 초마다 10 개 샘플 후에 요약합니다.

 # cpustat -s 500 -s 10 -n 20

다음 명령을 사용하여 사용자 루트 또는 사용자 우분투가 소유 한 프로세스를 측정합니다. 전체 시스템 통계는 계속 측정됩니다.

 # cpustat -u root, ubuntu

“apache”또는 “mysql”의 프로세스 만 측정합니다. cpustat의 -p 옵션은 pgrep이 반환 한 프로세스 ID 목록을 가져옵니다. pgrep은 프로세스 ID를 가져 오는 데 사용됩니다 (-d 옵션).

 # cpustat -p $(pgrep -d, apache2\|mysqld)

다음 명령을 사용하여 파일에 메모리 프로필을 작성합니다.

 # cpustat -memprofile test.txt

11) perf

Perf는 tools / perf에서 Linux 커널에 포함 된 CPU 성능 카운터, 추적 점, kprobe 및 uprobes를 측정 할 수 있습니다. perf는 Linux에서 성능 카운터 하위 시스템을 사용하기위한 도구로 시작되었으며 추적 기능을 추가하기 위해 다양한 기능이 향상되었습니다. perf 도구는 2.6 버전부터 Linux 커널에 통합되었으며 perf 이벤트 하위 시스템을 기반으로합니다. 성능 프로파일 러는 하드웨어 카운터를 사용하여 응용 프로그램을 프로파일 링합니다. 이 프로파일 러의 결과는 명확하고 빠릅니다. perf 유틸리티는 linux-tools 패키지에 있습니다.

Measure entire system for 10 seconds using perf.
 # perf stat -a -- sleep 10

cp와 같은 특정”명령 “에 대한 CPU 성능을 찾는 데 관심이있는 경우. 다음 perf 명령은 전체 디렉토리 Documents를 새 위치 (Docs)로 복사하는 동안 cp를 프로파일 링합니다.

 # perf stat cp -r Documents/ Docs

에 대한 CPU 카운터 통계를 찾으려면 지정된 PID는 CTRL + C를 누를 때까지 다음 명령을 사용합니다.

 # perf stat -p 2087

다음 성능을 사용하여 10 초 동안 시스템 전체의 기본 CPU 통계를 찾습니다. 명령. -e 옵션 아래의 옵션 중 하나를 생략하여보다 구체적으로 지정할 수도 있습니다.

 # perf stat -e cycles,instructions,cache-references,cache-misses,bus-cycles -a sleep 10

5 초 동안 CPU 사용자 지침 샘플을 수집 한 다음 성능 보고서를 사용하여 보고서를 봅니다.

 # perf record -e cycles:u -a -- sleep 5 # perf report

5 초 동안 10,000 레벨 1 데이터 캐시 누락마다 한 번씩 샘플 CPU 스택 추적을 수집 한 다음 성능 보고서를 사용합니다. 보고서를 볼 수 있습니다.

 # perf record -e L1-dcache-load-misses -c 10000 -ag -- sleep 5 # perf report

12) tiptop

Tiptop은 하드웨어 성능 카운터를 읽고 IPC와 같은 실행중인 Linux 프로세스에 대한 통계를 표시합니다. 또는 캐시 누락. 시스템에서 실행중인 작업에 대한 동적 실시간보기를 제공합니다. Tiptop은 top과 매우 유사하지만 표시되는 정보는 하드웨어 카운터에서 제공됩니다.

두 가지 실행 모드, 라이브 모드 및 배치 모드가 있습니다. 두 모드에서 시스템은 주기적으로 하드웨어 카운터 값을 쿼리하고 각 작업에 대해 다양한 비율을 인쇄합니다.

13) ps 명령

우리는 ps 명령을 사용하여 찾을 수 있습니다. 각 프로세스 또는 사용자에 대한 CPU 사용량. 이해해야 할 몇 가지 예가 주어집니다.

가장 높은 CPU를 표시하려면 & 루트가 실행하는 프로세스의 메모리 사용률을 표시합니다.

다음 명령을 실행하여 특정 명령에 대한 CPU 사용량을 표시하십시오.

모든 사용자에 대한 프로세스를 표시하고 정렬이있는 전체 형식 목록으로 터미널에 연결되지 않은 경우

14) dstat 명령

dstat 명령은 시스템 리소스 통계를 생성하는 다목적 도구이며 CPU 통계도 표시합니다. 사용하려면 설치해야합니다.

Centos

# yum install -y dstat

Ubuntu

# apt-get install dstat

CPU를 가장 많이 사용하고 메모리를 가장 많이 사용하는 프로그램을 모니터링합니다.

# dstat -c --top-cpu -dn --top-mem

결론

이 자습서에서는 몇 가지 CPU 성능 모니터링 도구와 그 사용법을 살펴 보았습니다. 사용법을 자세히 문서화하므로 각각의 매뉴얼 페이지를 읽으십시오. 이러한 도구를 사용하면 CPU 슬라이스도 필요합니다. 예를 들어 top은 CPU의 3 % -4 %를 차지하고, glance는 CPU의 15 %에서 20 %를 차지합니다. 따라서 이들 중 하나를 사용하는 동안이 측면도 고려해야합니다. 요컨대, 어떤 프로세스가 CPU 시간을 더 많이 사용하는지, 충분한 여유 메모리가 있는지, I / O를 기다리는 동안 프로세스가 중단되었는지 여부를 확인할 수 있습니다. 디스크 또는 네트워크 액세스를 통해 읽기 / 쓰기를 완료 할 수 있습니다.

또한 읽기 :

  • Sar 명령을 사용하여 Linux 성능을 모니터링하는 방법
  • htop 2.0.2 설치 및 Linux에서 명령 줄 사용

Write a Comment

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다