Xác định VM thực hiện I / O trên máy chủ Hyper-V


13

Làm cách nào để tìm ra VM nào chịu trách nhiệm cho phần lớn I / OI thấy với Hyper-V?

Tình huống: Tôi có máy chủ Hyper-V với một số máy ảo (khoảng 30 máy chủ mỗi máy chủ), nơi tôi thỉnh thoảng thấy thời gian sử dụng đĩa cao kéo dài. Tôi muốn biết VM nào gây ra điều này.

Tôi đã thử sử dụng Process Explorer, nhưng nó đã báo cáo tất cả các I / O liên quan đến Hyper-V sẽ được xử lý bởi quy trình "Hệ thống", vì vậy không có trợ giúp nào ở đó:

thám hiểm quá trình

Nó đã giúp phân tích các tệp được truy cập. Bản cài đặt GUI đầy đủ của Windows Server có Trình giám sát tài nguyên cung cấp thông tin này. Tuy nhiên, Resmon dường như không có sẵn trong các cài đặt Core và Hyper-V.


@RyanRies không, tôi không thấy vmwp.exe liên quan đến bất kỳ I / O nào. Vì tôi không biết ổ đĩa nào sẽ tải, tôi không thể biết nó đang lấy đường dẫn mã IDE hay SCSI, cả hai đều có vẻ như nhau.
the-wợi

Câu trả lời:


9

Mở màn hình hiệu suất (chạy với tư cách quản trị viên) trên máy trạm cục bộ của bạn. Thêm bộ đếm, chọn bộ đếm từ máy hyper-v, Bộ điều khiển IDE ảo Hyper-V hoặc Thiết bị lưu trữ ảo Hyper-V, chọn bộ đếm và phiên bản (VM) có vẻ phù hợp. Bạn có thể phải câu cá một chút để tìm quầy có ý nghĩa nhất với bạn.

Có một số gợi ý hay về việc Bộ đếm cần tìm trong Giám sát Hiệu suất Hyper-V


Mmh, tôi đã thử nó. Nó không mang lại kết quả hữu ích và tôi không biết tại sao lại như vậy. Lúc đầu, tôi gặp khó khăn khi định vị bộ đếm Thiết bị lưu trữ ảo - có vẻ như chúng không có trong bản cài đặt của tôi. Vì hầu hết các ổ đĩa của tôi là IDE, tôi đã cho Bộ điều khiển IDE ảo chụp nhưng vì một số lý do không thể hiểu được, nó không trả về bất cứ thứ gì ngoài trường hợp thực sự gây ra tải (trong lúc đó tôi tình cờ gặp phải sự cố) - trong khi các trường hợp khác dường như tạo ra các giá trị lành mạnh.
the-wợi

2
Nếu bạn đã cài đặt công cụ Tích hợp VM thì bạn không sử dụng IDE (bất kể màn hình cấu hình nói gì; đừng bắt đầu với các lựa chọn màn hình cấu hình kém của MS), vì vậy bạn phải sử dụng bộ đếm Virt Stor Dev. Cái sau là trên mỗi VHD, không phải trên mỗi VM, vì vậy có một chút hội thảo liên quan.
Chris S

Điều này xóa nó lên. Cuối cùng tôi đã tìm thấy thiết bị lưu trữ ảo, nó dường như trả về giá trị lành mạnh cho các đĩa ảo.
the-wợi

Chris S đã đúng. Tên chính xác của bộ đếm màn hình hiệu suất mà anh ấy nhắc đến là "Thiết bị lưu trữ ảo Hyper-V". Tức là "Độ dài hàng đợi" trong danh mục này cung cấp một cái nhìn sâu sắc tuyệt vời về việc các tệp VHD (X) của bạn có độ trễ nhất khi giao tiếp với đĩa của bạn.
Koen Zomers

2

Syirecton-dj, tôi đã viết một cái gì đó cho bạn chiều nay. Tôi nghĩ vấn đề này rất thú vị, vì vậy tập lệnh đơn giản này sẽ cung cấp cho bạn các chỉ số IO đọc và ghi trên mỗi VM đang chạy trên máy chủ Hyper-V. Là một phần thưởng bổ sung, nó liên kết mỗi VM với ID tiến trình của vmwp.exe.

Bạn có thể chạy nó trên máy chủ Hyper-V của mình, vì nó không cần GUI.

Nhược điểm là trong khi tôi đang làm việc này, tôi nhận thấy rằng các bộ đếm hiệu suất đã hoạt động rất tốt trong một thời gian, và sau đó không có lý do rõ ràng nào mà họ quyết định giữ nguyên số 0. Có lẽ đó không phải là một lỗi, như Chris S nói ... nhưng thật ra, những quầy này có thể không hữu ích lắm. Bất kể, sẽ rất dễ dàng để sửa đổi tập lệnh để sử dụng Virt. Thiết bị lưu trữ quầy thay thế.

Đầu ra trông như thế này:

PID     VMName               ReadBytesPerSec             WriteBytesPerSec
---     ------               ---------------             ----------------
5108    DC02                          483.90                            0
2796    DC01                               0                            0
3348    ECA01                     4782668.27                            0

#Requires -Version 3
function Get-VMPidAndIO
{
<#
.SYNOPSIS
    Gets the Process ID and I/O statistics of each virtual machine running on the Hyper-V host.
.DESCRIPTION
    Gets the Process ID and I/O statistics of each virtual machine running on the Hyper-V host.
    Currently only works for VMs using virtual IDE controllers.
    Requires Powershell 3 at a minimum.
.LINK
    http://myotherpcisacloud.com
.NOTES
    Written by Ryan Ries, June 2013.
    ryan@myotherpcisacloud.com
#>
    BEGIN
    {
        Try
        {
            $VMProcesses = Get-CimInstance -Query "Select ProcessId,CommandLine From Win32_Process Where Name ='vmwp.exe'" -ErrorAction Stop
        }
        Catch
        {
            Write-Error $_.Exception.Message
            Return
        }
    }
    PROCESS
    {

    }
    END
    {
        Foreach($_ In $VMProcesses) 
        {
            $VMName = $((Get-VM | Where Id -EQ $_.CommandLine.Split(' ')[-1]).Name)            
            [PSCustomObject]@{PID=$_.ProcessId;
                              VMName=$VMName; 
                              ReadBytesPerSec=[Math]::Round($(Get-Counter "\Hyper-V Virtual IDE Controller (Emulated)($VMName`:Ide Controller)\Read Bytes/sec").CounterSamples.CookedValue, 2);
                              WriteBytesPerSec=[Math]::Round($(Get-Counter "\Hyper-V Virtual IDE Controller (Emulated)($VMName`:Ide Controller)\Write Bytes/sec").CounterSamples.CookedValue, 2); }
        }

    }
}

Đó không phải là một lỗi, xem bình luận trong câu trả lời của tôi.
Chris S

Sau đó tôi tự hỏi tại sao các quầy dường như làm việc không liên tục? (Khách Windows với các dịch vụ tích hợp đầy đủ.) Và tại sao họ lại chọn mức độ trừu tượng ít hữu ích hơn của các bộ đếm trên mỗi VHD thay thế? :(
Ryan Ries

Không chắc chắn tại sao nó sẽ hiển thị bất cứ điều gì không liên tục. Về lý do, đó là cách lưu trữ hoạt động trong Hyper-V. Về cơ bản chỉ có một bộ điều khiển lưu trữ cho tất cả các VM. Bằng cách sử dụng "Bộ điều khiển IDE" trong cấu hình, bạn chỉ kích hoạt Mô phỏng IDE cho bộ lưu trữ tiếp xúc với VM đó (trái ngược với "Bộ điều khiển SCSI" không liên quan gì đến SCSI và chỉ vô hiệu hóa bất kỳ loại mô phỏng bộ điều khiển lưu trữ nào) . Các máy ảo hỗ trợ Dịch vụ Tích hợp chỉ cần bỏ qua phần mô phỏng IDE. Các bộ điều khiển lưu trữ không quan tâm chính xác VM được gắn vào mỗi VHD, do đó cách thức hoạt động của nó.
Chris S

Tuyệt vời. Cảm ơn bạn về thông tin. Tôi rất thích đọc thêm về điều này, nhưng tôi gặp khó khăn trong việc tìm kiếm bất kỳ tài liệu kỹ thuật tốt nào. Tôi nghĩ rằng nó sẽ khiến MS phải làm sáng tỏ rất nhiều thứ này cho chúng tôi. Chúng tôi có thể đặt niềm tin nhiều hơn vào các giải pháp của họ. Tôi chỉ muốn một cuốn sách Hyper-V Internals . Hỏi thế có nhiều quá không? :)
Ryan Ries

1

Cả hai câu trả lời khác đều hữu ích. Nhưng tôi thấy rằng tôi có được những gì bạn đang tìm kiếm dễ dàng hơn nhiều (khi VHD được lưu trữ trên các đĩa được chia sẻ cục bộ hoặc cục bộ thay vì máy chủ tệp) bằng cách mở "Trình giám sát tài nguyên" và xem tab Đĩa. Nhìn vào "Hoạt động của đĩa" và sắp xếp theo "Tổng (B / giây)." Bạn sẽ thấy các VHD được liệt kê theo thứ tự hoạt động của họ.

Rõ ràng chiến lược của tôi là một xấp xỉ lỏng lẻo cho các máy mà bạn đăng nhập cục bộ, điều này làm cho nó ít hữu ích hơn trong một môi trường lớn, không đầu.


1
Jake, cảm ơn bạn đã dành thời gian trả lời. Tôi thực sự muốn yêu để chỉ nhìn vào màn hình tài nguyên, tuy nhiên, nó không có sẵn khi máy chủ không hoạt động một đồ họa cài đặt đầy đủ nhưng chỉ có phiên bản Hyper-V hoặc Server Core. Đó là những gì tôi có.
the-wợi

1

Tôi đã viết một công cụ GUI PowerShell thu thập dữ liệu hiệu suất của khách cho tất cả các VM được tìm thấy trên các máy chủ Hyper-V được chọn. Thu thập và đối sánh dữ liệu được thực hiện với thông tin WMI get-counter và Hyper-V. Chạy từ bất kỳ máy chủ thành viên, không cần mô-đun. Tôi hy vọng điều này sẽ giúp khắc phục nhanh các sự cố về hiệu suất trên máy chủ Hyper-V và VM.

Hiển thị thống kê hiệu suất máy ảo Hyper-V (PowerShell) https://gallery.technet.microsoft.com/Show-Hyper-V-Virtual-652fdd54


0

Bạn có thể muốn dùng thử công cụ của bên thứ 3 có thể trợ giúp với máy ảo Detecintg đang gây ra I / O cao và cũng có khả năng cảnh báo trên các I / O cao như vậy. Bạn có thể kiểm tra nó ở đây - ApexQuery VM Monitor .

Công cụ này có thể giám sát bóng ma lớn của bộ đếm đĩa cho máy chủ và máy ảo, và bên cạnh bộ đếm được xác định trước, nó có thể được thiết lập để giám sát và hiển thị biểu đồ đồ họa của bộ đếm từ màn hình Performance.

Hy vọng tôi đã giúp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.