Linux에서 vmstat 명령을 사용하는 방법

0
553
Linux 데스크탑의 터미널 프롬프트
Fatmawati Achmad Zaenuri / Shutterstock.com

Linux 또는 macOS 컴퓨터가 가상 메모리를 사용하고 있습니다. 시스템이 실제 메모리, CPU 및 하드 디스크 리소스 사용에 어떤 영향을 미치는지 알아보십시오.

가상 메모리 란?

컴퓨터에는 RAM (Random Access Memory)이라고하는 유한 한 물리적 메모리가 장착되어 있습니다. 이 RAM은 커널에서 관리하고 운영 체제와 실행중인 응용 프로그램간에 공유해야합니다. 이러한 결합 된 요구가 실제로 컴퓨터에 설치된 것보다 더 많은 메모리를 요구하는 경우 커널은 무엇을 할 수 있습니까?

macOS와 같은 Linux 및 Unix와 같은 운영 체제는 하드 디스크의 공간을 사용하여 메모리 요구를 관리 할 수 ​​있습니다. “스왑 공간”이라는 하드 드라이브 공간의 예약 된 영역은 마치 RAM의 확장 인 것처럼 사용할 수 있습니다. 이것은 가상 메모리입니다.

Linux 커널은 메모리 블록의 내용을 스왑 공간에 기록하고 다른 프로세스에서 사용할 수 있도록 해당 RAM 영역을 비울 수 있습니다. 스왑 된 공간 ( “페이징 된”출력이라고도 함)은 스왑 공간에서 메모리를 검색하여 필요할 때 RAM으로 복원 할 수 있습니다.

물론 페이징 된 메모리의 액세스 속도는 RAM에 저장된 메모리의 속도보다 느립니다. 그리고 이것이 유일한 절충안은 아닙니다. 가상 메모리는 Linux가 메모리 요구를 관리하는 방법을 제공하지만 가상 메모리를 사용하면 컴퓨터의 다른 곳에서 부담이 증가합니다.

하드 드라이브는 더 많은 읽기 및 쓰기를 수행해야합니다. 커널 (따라서 CPU)은 다른 프로세스의 메모리 요구를 충족시키기 위해 메모리를 스왑하고 메모리를 스왑하며 모든 플레이트를 회전시키는 동안 더 많은 작업을 수행해야합니다.

Linux는이 모든 활동을 모니터 할 수있는 방법을 제공합니다. vmstat 가상 메모리 통계를보고하는 명령입니다.

vmstat 명령

입력하면 vmstat 매개 변수가없는 명령으로 값 세트를 표시합니다. 이 값은 평균 컴퓨터가 마지막으로 재부팅 된 이후의 각 통계에 대해 이 수치는 “현재”값의 스냅 샷이 아닙니다.

vmstat

터미널 창의 vmstat

짧은 값의 테이블이 표시됩니다.

터미널 창의 vmstat 출력

Procs, Memory, Swap, IO, System 및 CPU라는 열이 있습니다. 마지막 열 (가장 오른쪽 열)에는 CPU 관련 데이터가 포함됩니다.

터미널 창의 vmstat 출력 오른쪽 열

각 열의 데이터 항목 목록은 다음과 같습니다.

프록

  • 아르 자형: 실행 가능한 프로세스 수 이들은 시작되어 실행 중이거나 다음 번 슬라이스 된 CPU주기 버스트를 기다리는 프로세스입니다.
  • : 무정전 수면 상태의 프로세스 수. 프로세스가 잠자기 상태가 아니고 차단 시스템 호출을 수행 중이며 현재 작업이 완료 될 때까지 중단 할 수 없습니다. 일반적으로 프로세스는 일부 리소스가 해제되기를 기다리는 장치 드라이버입니다. 해당 프로세스의 대기중인 인터럽트는 프로세스가 일반적인 활동을 재개 할 때 처리됩니다.

기억

  • swpd: 사용 된 가상 메모리의 양. 다시 말해, 얼마나 많은 메모리가 교체 되었는가,
  • 비어 있는: 유휴 (현재 사용되지 않은) 메모리의 양입니다.
  • 버프: 버퍼로 사용 된 메모리의 양.
  • 은닉처: 캐시로 사용 된 메모리의 양.

교환

  • : 스와핑 된 가상 메모리 양 스왑 공간에서.
  • 그래서: 스와핑 된 가상 메모리 양 공간을 교환합니다.

IO

  • 바이: 블록 장치에서받은 블록. 가상 메모리를 다시 RAM으로 교체하는 데 사용되는 데이터 블록 수
  • : 블록 장치로 전송 된 블록. RAM에서 스왑 공간으로 가상 메모리를 스왑하는 데 사용되는 데이터 블록 수

체계

  • : 클럭을 포함한 초당 인터럽트 수입니다.
  • cs: 초당 컨텍스트 전환 수입니다. 컨텍스트 전환은 커널이 시스템 모드 처리에서 사용자 모드 처리로 교체 될 때입니다.

CPU

이 값은 모두 총 CPU 시간의 백분율입니다.

  • 우리: 비 커널 코드를 실행하는 데 소요 된 시간입니다. 즉, 사용자 시간 처리 및 멋진 시간 처리에 소요되는 시간입니다.
  • 싸이: 커널 코드를 실행하는 데 소요 된 시간입니다.
  • 신분증: 유휴 시간.
  • wa: 입력 또는 출력을 기다리는 데 소요 된 시간입니다.
  • : 가상 머신에서 도난당한 시간. 이때 가상 머신이 하이퍼 바이저가 다른 가상 머신의 서비스를 마치고이 가상 머신에 다시 참여하기 전에 다른 가상 머신의 서비스가 완료 될 때까지 기다려야합니다.

시간 간격 사용

우리는 할 수 있습니다 vmstat 를 사용하여 이러한 수치를 정기적으로 업데이트하십시오. delay 값. 그만큼 delay 값은 초 단위로 제공됩니다. 5 초마다 통계를 업데이트하려면 다음 명령을 사용합니다.

vmstat 5

터미널 창의 vmstat 5

5 초마다 vmstat 다른 데이터 줄을 테이블에 추가합니다. 이를 중지하려면 Ctrl + C를 눌러야합니다.

터미널 창에서 vmstat 5의 출력

카운트 값 사용

너무 낮은 delay 가치는 시스템에 추가적인 부담을 줄 것입니다. 문제를 진단하기 위해 빠른 업데이트가 필요한 경우 다음을 사용하는 것이 좋습니다. count 뿐만 아니라 가치 delay 값.

그만큼 count 가치는 말한다 vmstat 종료하기 전에 수행 할 업데이트 수와 명령 프롬프트로 돌아갑니다. 당신이 제공하지 않으면 count 값, vmstat Ctrl + C로 중지 될 때까지 실행됩니다.

가지고 vmstat 5 초마다 업데이트를 제공하지만 4 개의 업데이트에 대해서만 다음 명령을 사용하십시오.

vmstat 5 4

터미널 창에서 vmstat 5 4

네 번의 업데이트 후 vmstat 자체 협정의 중지.

터미널 창에서 vmstat 5 4의 출력

단위 변경

메모리 및 스왑 통계를 킬로바이트 또는 메가 바이트로 표시하도록 선택할 수 있습니다. -S (단위 문자) 옵션. 다음 중 하나가 와야합니다. k , K , m, 또는 M. 이들은 다음을 나타냅니다.

  • 케이: 1000 바이트
  • 케이: 1024 바이트
  • 미디엄: 1000000 바이트
  • 미디엄: 1048576 바이트

메가 바이트로 표시된 메모리 및 스왑 통계를 사용하여 10 초마다 통계를 업데이트하려면 다음 명령을 사용하십시오.

vmstat 10 -S M

vmstat 10 -S M ina 터미널 창

메모리 및 스왑 통계는 이제 메가 바이트로 표시됩니다. 참고 -S 옵션은 IO 블록 통계에 영향을 미치지 않습니다. 이들은 항상 블록으로 표시됩니다.

터미널 창에서 vmstat 10 -S M의 출력

활성 및 비활성 메모리

당신이 사용하는 경우 -a (active) 옵션 인 buff 및 cache 메모리 열은 “inact”및 “active”열로 대체됩니다. 그들이 제안했듯이, 이들은 비활성 및 활성 메모리의 양을 보여줍니다.

버프 및 캐시 열 대신이 두 열을 보려면 -a 표시된대로 옵션 :

vmstat 5 -a -S M

터미널 창의 vmstat 5 -a -S M

그대로 및 활성 열 아르 -S (단위 문자) 옵션의 영향을받습니다.

터미널 창에서 vmstat 5 -a -S M의 출력

포크

그만큼 -f 스위치는 컴퓨터가 부팅 된 이후 발생한 포크 수를 표시합니다.

다시 말해, 이것은 시스템 부팅 이후 시작된 (및 대부분의 경우 다시 닫은) 작업 수를 나타냅니다. 명령 행에서 시작된 모든 프로세스는이 수치를 증가시킵니다. 작업 또는 프로세스가 새 작업을 생성하거나 복제 할 때마다이 수치가 증가합니다.

vmstat -f

터미널 창의 vmstat -f

포크 디스플레이가 업데이트되지 않습니다.

Slabinfo 표시

커널에는 운영 체제 및 모든 응용 프로그램의 메모리 관리뿐만 아니라 걱정할만한 자체 메모리 관리 기능이 있습니다.

당신이 상상할 수 있듯이 커널은 처리해야 할 많은 다른 유형의 데이터 객체에 대해 메모리를 계속 할당하고 할당 해제합니다. 이를 최대한 효율적으로 만들기 위해 슬래브라는 시스템을 사용합니다. 이것은 캐싱의 한 형태입니다.

특정 유형의 커널 데이터 개체에 할당, 사용 및 더 이상 필요하지 않은 메모리는 메모리 할당 해제 및 재 할당없이 동일한 유형의 다른 데이터 개체에 재사용 할 수 있습니다. 슬래브는 커널 자체의 필요에 따라 미리 할당되고 측정 된 RAM 세그먼트로 생각하십시오.

슬래브에 대한 통계를 보려면 -m (슬라브) 옵션. 당신은 사용해야합니다 sudo비밀번호를 입력하라는 메시지가 표시됩니다. 출력이 상당히 길어질 수 있으므로 less.

sudo vmstat -m | less

sudo vmstat -m | 터미널 창에서 덜

출력에는 5 개의 열이 있습니다. 이것들은:

  • 은닉처: 캐시 이름.
  • num:이 캐시에서 현재 활성화 된 개체의 수입니다.
  • 합계:이 캐시에서 사용 가능한 총 개체 수입니다.
  • 크기: 캐시에있는 각 개체의 크기입니다.
  • 페이지: 현재이 캐시와 연관된 객체가 하나 이상있는 총 메모리 페이지 수입니다.

sudo vmstat -m의 출력 | 덜 작은 터미널 창

프레스 q 떠나다 less.

이벤트 카운터 및 메모리 통계 표시

이벤트 카운터 및 메모리 통계 페이지를 표시하려면 -s (통계) 옵션. 소문자 “s”입니다.

vmstat -s

터미널 창의 vmstat -s

보고 된 통계는 기본 설정을 구성하는 정보와 거의 동일하지만 vmstat 출력 중 일부는 더 자세하게 분리됩니다.

예를 들어, 기본 출력은 nice 및 non-nice 사용자 CPU 시간을“us”열에 결합합니다. -s (stats) 디스플레이는 이러한 통계를 개별적으로 나열합니다.

터미널 창의 vmstat -s 출력

디스크 통계 표시

다음을 사용하여 유사한 디스크 통계 목록을 얻을 수 있습니다. -d (디스크) 옵션.

vmstat -d | less

vmstat -d | 터미널 창에서 덜

각 디스크에 대해 읽기, 쓰기 및 IO의 세 열이 표시됩니다.

vmstat -d의 출력 | 터미널 창에서 덜

IO는 가장 오른쪽 열입니다. IO의 sec 열은 초 단위로 측정되지만 읽기 및 쓰기 열의 시간 기반 통계는 밀리 초 단위로 측정됩니다.

출력 vmstat -d | 터미널 창에서 덜

이것이 열의 의미입니다.

읽는다

  • 합계: 총 디스크 읽기 수.
  • 합병: 그룹화 된 총 읽기 수입니다.
  • 부문: 읽은 섹터의 총 수
  • ms: 디스크에서 데이터를 읽는 데 사용 된 총 시간 (밀리 초)입니다.

글을

  • 합계: 총 디스크 쓰기 수입니다.
  • 합병: 그룹화 된 총 쓰기 수입니다.
  • 부문: 쓰여진 총 섹터 수.
  • ms = 디스크에 데이터를 쓰는 데 사용 된 총 시간 (밀리 초)입니다.

IO

  • 똥개: 현재 디스크 읽기 또는 쓰기 수
  • 비서: 진행중인 읽기 또는 쓰기에 소요 된 시간 (초)입니다.

요약 디스크 통계 표시

디스크 활동에 대한 요약 통계를 빠르게 표시하려면 -D (디스크 합계) 옵션. 대문자“D”에 유의하십시오.

vmstat -D

터미널 창의 vmstat -D

디스크 수가 비정상적으로 높게 보일 수 있습니다. 이 기사를 조사하는 데 사용 된 컴퓨터는 우분투를 실행하고 있습니다. Ubuntu를 사용하면 Snap에서 응용 프로그램을 설치할 때마다 squashfs / dev / loop 장치에 연결된 의사 파일 시스템이 생성됩니다.

성가신 이러한 장치 항목은 많은 Linux 명령 및 유틸리티에 의해 하드 드라이브 장치로 계산됩니다.

터미널 창에서 vmstat -D의 출력

파티션 통계 표시

특정 파티션과 관련된 통계를 보려면 -p (파티션) 옵션을 선택하고 파티션 식별자를 명령 줄 매개 변수로 제공하십시오.

여기서 우리는 파티션을 볼 것입니다 sda1. 숫자 1은 이것이 장치의 첫 번째 파티션임을 나타냅니다. sda이 컴퓨터의 기본 하드 드라이브입니다.

vmstat -p sda1

터미널 창의 vmstat -p

리턴 된 정보는 해당 파티션에 대한 디스크 읽기 및 디스크 쓰기 수와 디스크 읽기 및 디스크 쓰기 조치에 포함 된 섹터 수를 표시합니다.

터미널 창에서 vmstat -p sda1의 출력

후드 아래 엿보기

후드를 들어 올리는 방법을 알고 아래에서 무슨 일이 일어나고 있는지 확인하는 것이 좋습니다. 때로는 문제를 해결하려고 할 때도 있고 컴퓨터가 어떻게 작동하는지 알고 싶어서 관심이없는 경우도 있습니다.

vmstat 유용한 정보를 많이 제공 할 수 있습니다. 액세스 방법과 의미를 알았습니다. 소매가 감겨 서 진단이 필요할 때, 미리 경고를받습니다. vmstat 네 편이야