पॉवरशेल का उपयोग यह जानने के लिए करें कि बहुत सारी मेमोरी का उपयोग क्या होता है (64 बिट विंडोज पर)


9

मुझे कैसे पता चलेगा (पॉवर्स में) क्या प्रक्रिया / जो भी सबसे अधिक मेमोरी का उपयोग करता है?

संपादित करें: मैं यह पता लगाने की कोशिश कर रहा हूं कि टास्क मैनेजर आदि सभी भौतिक मेमोरी का उपयोग करने के बारे में जानने के लिए पॉवर्सशेल का उपयोग कैसे करें, यह समझाने में असफल रहें कि सभी भौतिक रैम का उपयोग क्यों किया जाता है। यानी मुझे कैश आदि द्वारा उपयोग की जाने वाली मेमोरी की पहचान करने की आवश्यकता है।


आप किस तरह के कैश के बारे में सोच रहे हैं?
स्क्वीलमैन

डिस्क कैश ... क्या विंडोज आमतौर पर किसी उपयोगी चीज के लिए सभी उपलब्ध भौतिक मेमोरी का उपयोग करने की कोशिश नहीं करेगा?
एंड्रयू जे। ब्रीम

जवाबों:


8

यहां वर्तमान में चल रही प्रक्रियाओं के बारे में जानकारी प्राप्त करने और वर्किंग सेट आकार के आधार पर क्रमबद्ध करने का एक तरीका है

Get-Process | Sort-Object -Descending WS

उस आउटपुट को एक चर पर निरुपित करें और यह आपको परिणामों की एक सरणी देगा, तो आप केवल सरणी के पहले सदस्य को लिख सकते हैं (जो इस स्थिति में System.Diagnostics.Process ऑब्जेक्ट होगा)।

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

WMI के Win32_Process प्रदाता का उपयोग करके वर्तमान में चल रही प्रक्रियाओं की सूची से डेटा की कुछ वस्तुओं को डंप करने के लिए एक और त्वरित और गंदा स्क्रिप्ट है:

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

वह PID (हैंडल), प्रक्रिया का नाम और वर्तमान कार्यशील आकार की सूची देगा। आप WMI प्रक्रिया वर्ग के विभिन्न गुणों का उपयोग करके इसे बदल सकते हैं ।


मेरी गलती। मैं पर्याप्त स्पष्ट नहीं था। प्रश्न संपादित किया गया ...
एंड्रयू जे। ब्रीम

1

एक लाइनर अपने उच्चतम स्मृति उपयोग प्रक्रिया का नाम खोजने के लिए

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;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.