Đây là một câu hỏi thực sự tuyệt vời , và thật xấu hổ vì nó đã không nhận được nhiều tình yêu hơn!
Lý thuyết cơ bản của tôi về phân tích nút cổ chai là coi hệ thống như một hộp với 4 loại tài nguyên hữu hạn: bộ xử lý, bộ nhớ, đĩa và mạng . Vì vậy, tôi muốn lấy số cơ bản cho từng số này để xác định sức khỏe của hộp. Tôi muốn những con số dễ diễn giải: cao là xấu, thấp là tốt. 0 là tốt nhất, mặc dù không bao giờ hoàn toàn có thể đạt được (sau tất cả chúng tôi đã mua máy tính để làm việc , eh?). Khi tôi thấy tài nguyên nào trong bốn tài nguyên là nút cổ chai chính, tôi có thể tiến hành xác định chương trình hoặc quy trình nào đang ăn tất cả tài nguyên và đưa ra quyết định có giáo dục về việc tôi có cần tăng tài nguyên đó không - hoặc điều chỉnh chương trình / quy trình sử dụng ít tài nguyên
Tôi sẽ định dạng các bộ đếm hiệu suất chính mà tôi sử dụng, từ bài viết này , dưới dạng truy vấn WMIC, vì không yêu cầu kịch bản (mặc dù điều đó chắc chắn là có thể!). Bạn có thể nhập từng truy vấn này trực tiếp vào bảng điều khiển cmd:
wmic path Win32_PerfFormattedData_PerfOS_System get ProcessorQueueLength
Trên đây là chiều dài hàng đợi của bộ xử lý . Điều này cho biết có bao nhiêu luồng đang chờ trong hàng đợi để được CPU xử lý. Số cao xấu, số thấp tốt. Nói chung tôi coi giá trị <10 là một hệ thống lành mạnh.
wmic path Win32_PerfFormattedData_PerfOS_Memory get PagesInputPerSec
Trên đây là Bộ nhớ, Nhập trang mỗi giây , tốc độ đọc các trang từ đĩa để giải quyết các lỗi trang cứng. Lỗi trang cứng xảy ra khi một quá trình đề cập đến một trang trong bộ nhớ ảo không có trong bộ nhớ vật lý và phải được truy xuất từ đĩa. Bộ đếm này hoạt động tốt nhất trong chế độ xem biểu đồ của Perfmon. Trên một máy tính khỏe mạnh (không bị tắc nghẽn), bạn sẽ thấy các đột biến thỉnh thoảng khi dữ liệu được đọc từ đĩa vào RAM càng nhiều gai bạn nhìn thấy, và chúng càng đi cao, hệ thống càng bị hạn chế bộ nhớ. Nếu hệ thống thường ở giá trị khác không trong thời gian dài hơn, giả sử, năm giây, bạn có thể có một hệ thống bị tắc nghẽn bộ nhớ.
wmic path Win32_PerfFormattedData_PerfDisk_PhysicalDisk get AvgDiskQueueLength, name
Trên đây là PhysDisk, Chiều dài hàng đợi đĩa trung bình . Tôi coi đây là chỉ số chính về sức khỏe hệ thống, vì các tắc nghẽn bộ nhớ cũng sẽ làm hỏng đĩa do hoán đổi trang quá nhiều - và cũng sẽ thường xuyên sử dụng CPU. Nó sẽ hiển thị một mục cho mỗi đĩa được gắn cũng như tổng cộng tất cả các đĩa. Một đĩa đơn hoạt động tốt sẽ có giá trị này ở mức 2 hoặc thấp hơn. Đối với mảng, chia số lượng trục xoay cho chiều dài hàng đợi (ví dụ: 4 trục xoay trong mảng chia cho chiều dài hàng đợi là 8 = 2, có nghĩa là mảng đang hoạt động tốt).
wmic path Win32_PerfFormattedData_Tcpip_NetworkInterface get OutputQueueLength, PacketsReceivedErrors, Name, currentbandwidth
Và cuối cùng, ở trên chúng ta có hiệu suất NIC. Cụ thể là Giao diện mạng, Độ dài hàng đợi đầu ra và các gói nhận được lỗi . Hai bộ đếm này cho chúng tôi biết có bao nhiêu gói đang chờ được gửi và có bao nhiêu gói gửi đến gây ra lỗi có thể dẫn đến truyền lại. Chúng tôi muốn cả hai số ở mức 0. Trong truy vấn này, tôi cũng nhận được băng thông hiện tại của NIC là thông tin hữu ích.
Khi tôi đã xác định tài nguyên nào được sử dụng quá mức, tôi thường phụ thuộc vào đối tượng quy trình của Process Explorer hoặc Perfmon để khám phá quy trình nào là tài nguyên hog.