Ne kadar bellek kullandığını öğrenmek için Powershell'i kullanın (64 bit Windows'ta)


9

Hangi işlemi / en çok belleği kullanan işlemi nasıl öğrenebilirim (Powershell'de)?

Düzenleme: Görev Yöneticisi vb. Tüm fiziksel RAM neden açıklamak için başarısız olursa tüm fiziksel belleği kullanarak ne bulmak için Powershell kullanmayı anlamaya çalışıyorum. Yani önbellekler vb. Tarafından kullanılan belleği tanımlamam gerekiyor.


Ne tür bir önbellek düşünüyorsun?
squillman

Disk önbelleği ... Windows genellikle kullanışlı bir şey için kullanılabilir tüm fiziksel belleği kullanmaya çalışmaz mı?
Andrew J.Brehm18

Yanıtlar:


8

İşte şu anda çalışan işlemler hakkında bilgi almanın ve Çalışma Kümesi boyutuna göre sıralamanın bir yolu

Get-Process | Sort-Object -Descending WS

Bu çıktıyı bir değişkene atayın ve sonuçların bir dizisini verecektir, o zaman dizinin ilk üyesini yazabilirsiniz (bu durumda bir System.Diagnostics.Process nesnesi olacaktır).

$ProcessList = Get-Process | Sort-Object -Descending WS
Write-Host $ProcessList[0].Handle "::" $Process.ProcessName "::" $Process.WorkingSet

WMI'nın Win32_Process sağlayıcısını kullanarak şu anda çalışan işlemler listesinden birkaç veri öğesini dökmek için başka bir hızlı ve kirli komut dosyası:

$ProcessList = Get-WmiObject Win32_Process -ComputerName mycomputername
foreach ($Process in $ProcessList) {
    write-host $Process.Handle "::" $Process.Name "::" $Process.WorkingSetSize
}

PID (tanıtıcı), işlem adı ve geçerli çalışma kümesi boyutunu listeleyecektir. WMI Process sınıfının farklı özelliklerini kullanarak bunu değiştirebilirsiniz .


Benim hatam. Yeterince net değildim. Soru düzenlendi ...
Andrew J. Brehm

1

En yüksek bellek kullanım sürecinizin adını bulmak için bir astar

Get-Process | Sort-Object -Descending WS | select -first 1 | select -ExpandProperty ProcessName

0
$scripthost = Read-Host "Enter the Hostname of the Computer you would like to check Memory Statistics for"
""
""
"===========CPU - Top 10 Utilization List==========="
gwmi -computername $scripthost Win32_PerfFormattedData_PerfProc_Process| sort PercentProcessorTime -desc | select Name,PercentProcessorTime | Select -First 10 | ft -auto
"===========Memory - Top 10 Utilization List==========="
gwmi -computername $scripthost Win32_Process | Sort WorkingSetSize -Descending | Select Name,CommandLine,@{n="Private Memory(mb)";Expression = {[math]::round(($_.WorkingSetSize / 1mb), 2)}} | Select -First 10 | Out-String   
#gwmi -computername $scripthost Win32_Process | Sort WorkingSetSize -Descending | Select Name,CommandLine,@{n="Private Memory(mb)";e={$_.WorkingSetSize/1mb}} | Select -First 10 | Out-String
#$fields = "Name",@{label = "Memory (MB)"; Expression = {[math]::round(($_.ws / 1mb), 2)}; Align = "Right"}; 

"===========Server Memory Information==========="
$fieldPercentage = @{Name = "Memory Percentage in Use (%)"; Expression = { “{0:N2}” -f ((($_.TotalVisibleMemorySize - $_.FreePhysicalMemory)*100)/ $_.TotalVisibleMemorySize)}};     
$fieldfreeram = @{label = "Available Physical Memory (MB)"; Expression = {[math]::round(($_.FreePhysicalMemory / 1kb), 2)}}; 
$fieldtotalram = @{label = "Total Physical Memory (MB)"; Expression = {[math]::round(($_.TotalVisibleMemorySize / 1kb), 2)}}; 
$fieldfreeVram = @{label = "Available Virtual Memory (MB)"; Expression = {[math]::round(($_.FreeVirtualMemory / 1kb), 2)}}; 
$fieldtotalVram = @{label = "Total Virtual Memory (MB)"; Expression = {[math]::round(($_.TotalVirtualMemorySize /1kb), 2)}}; 
$memtotal = Get-WmiObject -Class win32_OperatingSystem -ComputerName $scripthost; 
$memtotal | Format-List $fieldPercentage,$fieldfreeram,$fieldtotalram,$fieldfreeVram,$fieldtotalVram;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.