이것은 정말로 큰 질문 이며, 더 이상 사랑을 얻지 못한 것은 부끄러운 일입니다!
병목 현상 분석의 기본 이론은 시스템을 프로세서, 메모리, 디스크 및 네트워크 와 같은 4 가지 종류의 유한 리소스가있는 상자로 취급하는 것 입니다. 따라서 상자의 상태를 결정하기 위해 각 기본 번호를 얻고 싶습니다. 해석하기 쉬운 숫자를 원합니다. 높음이 나쁘고 낮음이 좋습니다. 결코 완벽하게 달성 (결국 우리가 컴퓨터를 구입하지만 0, 최고 일을 , 응?). 네 가지 자원 중 어느 것이 주요 병목 현상인지 확인한 후 어떤 프로그램이나 프로세스가 모든 자원을 사용하고 있는지 결정하고 해당 자원을 늘려야하는지 또는 사용할 프로그램 / 프로세스를 조정해야하는지에 대한 교육적인 결정을 내릴 수 있습니다. 적은 자원.
필자는 스크립팅이 필요하지 않기 때문에이 기사 에서 내가 사용하는 주요 성능 카운터 를 WMIC 쿼리로 형식화 할 것이다 (확실히 가능하지만!). 이러한 각 쿼리를 cmd 콘솔에 직접 입력 할 수 있습니다.
wmic path Win32_PerfFormattedData_PerfOS_System get ProcessorQueueLength
위의 프로세서 큐 길이 입니다. 이것은 CPU에서 처리하기 위해 대기중인 스레드 수를 나타냅니다. 높은 숫자는 나쁘고 낮은 숫자는 좋습니다. 일반적으로 저는 <10을 건강한 시스템으로 생각합니다.
wmic path Win32_PerfFormattedData_PerfOS_Memory get PagesInputPerSec
위의 메모리, 초당 페이지 입력 수 는 하드 페이지 오류를 해결하기 위해 디스크에서 페이지를 읽는 속도입니다. 프로세스가 실제 메모리에없고 디스크에서 검색해야하는 가상 메모리의 페이지를 참조 할 때 하드 페이지 결함이 발생합니다. 이 카운터는 Perfmon의 그래프보기에서 가장 잘 작동합니다. 상태가 양호하고 병목 현상이없는 컴퓨터에서는 디스크에서 RAM으로 데이터를 읽을 때 스파이크가 많을수록 가끔씩 급증하는 경향이 있으며, 높을수록 시스템의 메모리가 제한됩니다. 시스템이 종종 5 초보다 긴 기간 동안 0이 아닌 값을 유지하는 경우 메모리 병목 현상이 발생했을 수 있습니다.
wmic path Win32_PerfFormattedData_PerfDisk_PhysicalDisk get AvgDiskQueueLength, name
위는 PhysicalDisk, Average Disk Queue Length 입니다. 과도한 페이지 파일 스와핑으로 인해 메모리 병목 현상이 발생하여 디스크가 다운되고 종종 CPU 사용률이 높아지기 때문에 이것이 시스템 상태의 주요 지표라고 생각합니다. 마운트 된 각 디스크 및 전체 디스크의 항목이 표시됩니다. 성능이 좋은 단일 디스크는이 값이 2 이하입니다. 어레이의 경우 스핀들 수를 대기열 길이로 나눕니다 (예 : 어레이의 스핀들 4 개를 대기열 길이 8 = 2로 나눈 값은 어레이의 성능이 우수함).
wmic path Win32_PerfFormattedData_Tcpip_NetworkInterface get OutputQueueLength, PacketsReceivedErrors, Name, currentbandwidth
마지막으로 위의 NIC 성능이 있습니다. 특히 네트워크 인터페이스, 출력 대기열 길이 및 패킷 수신 오류 . 이 두 카운터는 전송 대기중인 패킷 수와 인바운드 패킷 수를 통해 오류를 일으켜 재전송을 발생시킨 원인을 알려줍니다. 두 숫자를 모두 0으로 유지하려고합니다. 이 쿼리에서는 유용한 정보 인 NIC의 현재 대역폭도 얻습니다.
어떤 리소스가 과도하게 사용되는지 확인한 후에는 일반적으로 프로세스 탐색기 또는 Perfmon의 프로세스 개체에 의존하여 어떤 프로세스가 리소스 호그인지 확인합니다.