Skip to content

Instantly share code, notes, and snippets.

@vlad-tsaryov
Last active August 29, 2015 14:23
Show Gist options
  • Save vlad-tsaryov/ba6dea7a94dbd97a3790 to your computer and use it in GitHub Desktop.
Save vlad-tsaryov/ba6dea7a94dbd97a3790 to your computer and use it in GitHub Desktop.
# подсчет выделенной памяти по пользователям
# полезно для терминальников
# получаем таблицу соответствия user_id и UserName
$owners = @{}
gwmi win32_process -ErrorAction SilentlyContinue |% {$owners[$_.handle] = $_.getowner().user}
# получаем список процессов и добавляем туда username
$Process_List = (get-process | select cpu,pm,vm,ws,processname,Id,@{l="Owner";e={$owners[$_.id.tostring()]}})
# можно отфильтровать по конкретному приложению
# в моем случае интересовало потребление памяти хромом
$Process_List = ($Process_List | where {$_.Processname -eq "chrome"} )
# групируем список по Owner
$Process_Group_By_Owner = ($Process_List | select cpu,pm,vm,ws,processname,Id,Owner | Group-Object -Property Owner)
# добавляем сортировку, приводим к удобным единицам измерения, округляем до 1 знака после запятой
$Process_Group_By_Owner | select Name, @{l="Mem"; e={($_.Group | Measure-Object -Sum WS | Select-Object -expandProperty Sum )}} | Sort-Object -Property Mem -Descending | select Name,@{l="MemGB";e={[math]::Round(($_.Mem/1GB),1)}} | ft -AutoSize
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment