یکی از مشکلاتی که ممکن است برخی مدیران زیرساخت مجازی با آن مواجه باشند بحث کنترل منابع پردازشی است و در این خصوص قطعا تجربه مشکلات کارآیی و سرعت پایین بر روی ماشین های مجازی خود در محیط VMware را دارند. لذا لازم است تا بتوانید عملکرد پردازشی یک سرور مجازی را بررسی کنید. در این شرایط، لازم است تا بتوانید برخی مقادیر مهم بر روی شی پردازشگرتان را از طریق esxtop شناسایی و بررسی کنید. در اینجا لازم است تا بتوانید برخی اطلاعات سرور مجازی از جمله CPU usage, CPU ready time, Host CPU utilization را جهت شناسایی مشکل بدست آورید. این عملیات ممکن است زمان زیادی از شما را هدر دهد. بنابراین با استفاده از اسکریپت PowerCli زیر می توانید به این هدف دست یابید. ضمنا پیشنهاد شده است که از یک حساب کاربری read only برای تهیه گزارش مذکور استفاده شود.
زمانیکه اسکریپت اجرا می شود، از شما نام ماشین مجازی جهت پردازش سوال می شود. بعد از اینکه نام guest را وارد کردید، سرور مجازی و هاست شروع به جمع آوری اطلاعات مربوط به CPU نموده و برای شما اطلاعات و مقادیر لازم را بازیابی و نمایش می دهد.
فایل اسکریپت PowerCli
# Powershell Gallery PowerCLI modullerini yukluyoyuruz Connect-VIServer -Server clear $vname = Read-Host “Vm Adını yazınız” $vmName = Get-VM $vname $vmHOST = $vmName | Get-VMHost $y = $vmName | Get-Stat -Stat cpu.usage.average -Realtime | Where-Object -Property Instance -eq “” | measure Value -Average -Minimum -Maximum $x = $vmHOST | Get-Stat -Stat cpu.usage.average -Realtime | Where-Object -Property Instance -eq “” | measure Value -Average -Minimum -Maximum $HostCpuAverage = [math]::Round($x.Average) $VmCpuAverage = [math]::Round($y.Average) $VmCpuMax = [math]::Round($y.Maximum) Write-Host if($VmCpuAverage -gt 75 -or $VmCpuMax -gt 90){ Write-Host ———-Sanal Sunucu CPU Değerleri Yüksek !!! ———– -foregroundcolor White -BackgroundColor DarkRed }else{ Write-Host ———-Sanal Sunucu CPU Değerleri Normal ———– -foregroundcolor White -BackgroundColor DarkGreen } Write-Host if($HostCpuAverage -gt 75 -or $HostCpuMax -gt 90){ Write-Host ———-HOST CPU Değerleri Yüksek !!! ———– -foregroundcolor White -BackgroundColor DarkRed }else{ Write-Host ———-HOST CPU Değerleri Normal ———– -foregroundcolor White -BackgroundColor Green Write-Host $cpuReady = $vmName | Get-Stat -Stat cpu.ready.summation -Realtime | Where-Object -Property Instance -eq “” | measure Value -Average -Minimum -Maximum $cpuReadyTimeAverage = [math]::Round($cpuReady.Average) if($cpuReadyTimeAverage -gt 2000){ Write-Host ———-CPU Ready Time Yüksek ———– -foregroundcolor White -BackgroundColor Red }else{ Write-Host ———-CPU Ready Time Normal ———– -foregroundcolor White -BackgroundColor Green } } Disconnect-VIServer -Server * -Force -Confirm:$false |