이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 9822|회답: 1

Linux vmstat 명령어 실제에서의 상세 설명

[링크 복사]
게시됨 2014. 10. 19. 오후 7:36:48 | | |

vmstat 명령어는 주어진 시간 간격에서 서버의 상태 값을 표시하는 가장 일반적인 리눅스/유닉스 모니터링 도구입니다. 여기에는 서버의 상태 값도 포함됩니다CPU 사용량, 메모리 사용량, 가상 메모리 스왑, IO 읽기 및 쓰기. 이 명령어는 Linux/Unix를 확인할 때 제가 가장 좋아하는 명령어입니다. 하나는 Linux/Unix가 지원된다는 것이고, 다른 하나는 상단과 비교했을 때 각 프로세스의 CPU 사용량과 메모리 사용량만 보는 것이 아니라 전체 머신의 CPU, 메모리, IO 사용량을 볼 수 있다는 점입니다(사용 시나리오가 다릅니다).

일반적으로 vmstat 도구의 사용은 두 가지 수치 매개변수를 통해 이루어지는데, 첫 번째 매개변수는 샘플링된 시간 간격 수, 단위는 초, 두 번째 매개변수는 샘플 수입니다. 예를 들면 다음과 같습니다:


root@ubuntu:~# VMstat 2 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
R B SWPD 무료 버프 캐시 SI so bi bo in cs, us, sy id wa
1  0      0 3498472 315836 3819540    0    0     0     1    2    0  0  0 100  0

2는 서버 상태가 2초마다 한 번씩 수집된다는 의미이고, 1은 서버 상태가 한 번만 수집된다는 의미입니다.

실제로 신청 과정 동안 일정 시간 동안 모니터링을 진행하며, 모니터링하고 싶지 않으면 vmstat을 직접 종료할 수 있습니다. 예를 들어:


root@ubuntu:~# VMstat 2  
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
R B SWPD 무료 버프 캐시 SI so bi bo in cs, us, sy id wa
1  0      0 3499840 315836 3819660    0    0     0     1    2    0  0  0 100  0
0  0      0 3499584 315836 3819660    0    0     0     0   88  158  0  0 100  0
0  0      0 3499708 315836 3819660    0    0     0     2   86  162  0  0 100  0
0  0      0 3499708 315836 3819660    0    0     0    10   81  151  0  0 100  0
1  0      0 3499732 315836 3819660    0    0     0     2   83  154  0  0 100  0

즉, vmstat은 2초마다 데이터를 수집하고 제가 프로그램을 종료할 때까지 계속되며, 여기서 5번 데이터를 수집한 후 프로그램을 종료합니다.

좋아요, 명령어를 소개했으니 이제 각 매개변수의 의미를 설명해 보겠습니다.

r즉, 큐(즉, CPU에 실제로 할당된 프로세스 수)를 실행하는 것이고, 제가 테스트한 서버는 현재 비교적 유휴 상태이며, 실행 중인 프로그램이 없으며, 이 값이 CPU 수를 초과하면 CPU 병목 현상이 발생합니다. 이것은 상단의 부하와도 관련이 있는데, 일반적으로 부하가 3을 초과하면 더 높고, 5를 초과하면 더 높으며, 10을 초과하면 정상적이지 않으며 서버 상태가 매우 위험합니다. 상단의 부하 정도는 초당 대기열이 달릴 때와 비슷합니다. 실행 중인 큐가 너무 크면 CPU가 너무 많다는 뜻이고, 보통 CPU 사용량이 높아집니다.

b즉, 막힌 과정이라는 뜻입니다. 별다른 말은 아니지만, 과정이 막혔고, 모두가 이해합니다.

SWPD사용 중인 가상 메모리 크기가 0보다 크면, 이는 기계의 물리적 메모리가 부족하다는 의미이며, 만약 이것이 프로그램 메모리 누수의 원인이 아니라면, 메모리를 업그레이드하거나 메모리를 소모하는 작업을 다른 기기로 이전할 때입니다.

무료입니다   여유 물리 메모리, 즉 제 기계 메모리는 총 8G이고, 나머지 3415M은 3415M입니다.

버프   Linux/Unix 시스템은 디렉터리의 콘텐츠, 권한 등 캐시를 저장하는 데 사용되며, 이 기기에서 아마 3억 대 이상을 차지하고 있을 것입니다

캐시캐시는 우리가 열었던 파일을 기억하고 버퍼링하는 데 직접 사용되며, 저는 제 컴퓨터에서 3억 만 달러 이상을 차지합니다(Linux/Unix의 영리한 점은 자유 물리 메모리의 일부를 사용해 파일과 디렉터리를 캐시하는 것입니다. 프로그램 실행 성능을 향상시키기 위해서입니다. 프로그램이 메모리를 사용할 때 버퍼/캐시가 빠르게 사용됩니다). )

  이 값이 0보다 크면 물리적 메모리가 부족하거나 메모리가 누수되었음을 의미합니다. 제 컴퓨터는 메모리가 충분하고 모든 게 괜찮아요.

그래서.  가상 메모리에 쓰는 디스크의 크기는 초당 0보다 크며, 위와 동일합니다.

양성애  블록 장비초당 수신되는 블록 수입니다. 여기서 블록 장치는 시스템 내 모든 디스크와 다른 블록 장치를 의미합니다. 기본 블록 크기는 1024바이트입니다. 저는 이 기계에 IO 작업을 하지 않아 항상 0이었지만, 대량의 데이터를 처리하는 기기(2-3T)에서는 140000/s에 도달하는 것을 본 적이 있고, 디스크 쓰기 속도는 거의 140M/s에 달합니다

예를 들어, 블록 장치가 초당 보내는 블록 수는 파일을 읽을 때 bo가 0보다 큽니다. BI와 BO는 일반적으로 0에 가깝고, 그렇지 않으면 IO가 너무 자주 발생해 조정이 필요합니다.

CPU의 초당 인터럽트 수(타임 인터럽트를 포함)

컴퓨터 과학예를 들어, 시스템 함수를 호출할 때 컨텍스트를 전환해야 하고, 스레드 스위칭 등 초당 컨텍스트 전환 횟수는프로세스 맥락예를 들어, Ap치나 nginx 같은 웹 서버에서는 수천 또는 수만 개의 동시성 작업을 수행하며, 웹 서버 선택 과정을 프로세스나 스레드의 피크에 따라 줄일 수 있습니다. 스트레스 테스트는 CS가 상대적으로 작은 값으로 내려가고, 프로세스와 스레드 수가 더 적절한 값이 됩니다. 시스템 호출도 마찬가지로, 시스템 함수가 호출될 때마다 코드가 커널 공간에 들어가면서 컨텍스트 스위칭이 발생해 매우 많은 자원을 소모하므로 시스템 함수에 대한 빈번한 호출을 피하는 것이 좋습니다. 너무 많은 컨텍스트 전환은 CPU의 대부분을 컨텍스트 전환에 낭비하게 만들어 CPU가 진지한 작업을 할 시간이 줄어들고, CPU가 충분히 활용되지 못하게 되는 것은 권장되지 않습니다.

우리사용자CPU 시간한 번은 미국이 거의 100에 가까웠는데 r이 실행 큐가 80에 도달한 것을 본 적이 있습니다. 이 서버는 매우 자주 암호화와 복호화를 수행했습니다(머신은 스트레스 테스트를 받았고 성능이 좋지 않았습니다).

시스템 CPU 시간이 너무 길면 시스템 호출이 길다는 뜻이며, 예를 들어 빈번한 IO 작업과 같은 경우입니다.

아이디  유휴 CPU 시간, 일반적으로 id + us + sy = 100, 일반적으로 id는 유휴 CPU 사용량, us는 사용자 CPU 사용량, sy는 시스템 CPU 사용량이라고 생각합니다.

WTIO CPU 시간이 될 때까지 기다리세요.







이전의:귀엽다
다음:바닷가 정말 좋아요
게시됨 2014. 10. 19. 오후 7:40:57 |
이해할 수 없어요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com