Войти

Показать полную графическую версию : VirtualBox - определить сколько оперативной памяти занято виртуальными машинами


__sa__nya
04-02-2020, 14:18
Доброе время суток. Можно ли стандартными средствами Windows ( или sysinternals) определить сколько оперативной памяти потребляет VirtualBox с запущенными виртуальными машинами ? Знаю что можно открыть менеджер виртуальных машин и посмотреть что запущено. Но более удобно наблюдать все, например из диспетчера задач или process explorer.

freese
04-02-2020, 15:45
Но более удобно наблюдать все, например из диспетчера задач или process explorer.»
а там не отображается? или надо чтобы каждая машина отдельно отображалась?

Grabber2006
05-02-2020, 09:19
В vmware тоже невозможно узнать количество занятой памяти из Диспетчера задач. Видимо это связано с виртуализацией.

__sa__nya
05-02-2020, 09:49
freese, там вообще не отображается.
Отображается вот так ( запущено 2 ВМ по 4 GB каждая )
https://d.radikal.ru/d41/2002/7f/9a5d3cda4c8e.jpg (https://radikal.ru)

или надо чтобы каждая машина отдельно отображалась? »
- Да не обязательно, просто бы понимать общий объем памяти, который под себя "взяла" система виртуализации со всеми ВМ

Grabber2006
05-02-2020, 09:59
У запущенной виртуальной машины имеется файл памяти, который на хосте отображается в память (и поэтому не учитывается в потреблении памяти процессом). Посмотреть это можно утилитой RamMap (https://docs.microsoft.com/en-us/sysinternals/downloads/rammap). В утилите File Summary -> Active.

__sa__nya
05-02-2020, 13:23
Grabber2006, так там очень неудобно смотреть. Как я понял, там отображаются все файлы, открытые какой-либо программой. И "рыться" там, выискивая потребление VirtualBox'ом оперативы очень неудобно.

Jula0071
05-02-2020, 15:31
Если консоль не пугает, то можно
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe metrics query * RAM/Usage/Used

__sa__nya
05-02-2020, 18:30
Jula0071, спасибо, но у меня идея увидеть память не через средства VirtualBox, а через диспетчер задач, Process Explorer. Смысл в том, что бывает нужно диагностировать проблему на каком-либо компьютере, не своем, часто нужно определить не в памяти ли проблема, если в ней, выясняешь, на что она потрачена, и здесь проще выяснять, открыт вышеуказанные утилиты, и посмотреть что расходует память, вместо изучения софта на проблемном компе и диагностики проблемы в разных программах, вместо одной.

Jula0071
05-02-2020, 18:35
__sa__nya, VBox тащемта не является промышленным гипервизором. У промышленных все метрики и так налицо.

Пассаж про не свой компьютер вообше не понял, какое вам дело до чужого компьютера?

__sa__nya
05-02-2020, 19:01
Пассаж про не свой компьютер вообше не понял, какое вам дело до чужого компьютера? »
Работаю админом в одной организации и приходящим технарем в различных других. Решая технические проблемы, мне есть дело до компов, где наблюдаются эти проблемы.
А про то что VirtualBox не промышленная среда виртуализации это точно. Но проблема в другом. Решая проблемы на компах пользователей, бывает сталкиваешься с тем, что оперативы мало, что заняло непонятно, начинаешь разбираться и выясняется что у разработчика запущено 4 ВМ, а должна быть одна, он просто "забыл" 3 выключить. Ты тоже не помнишь что у него есть среда виртуализации, и на диагностику всего этого уходит время. Было бы очень хорошо видеть весь расход в одной программе.

Jula0071
05-02-2020, 20:46
выясняется что у разработчика запущено 4 ВМ, а должна быть одна, он просто "забыл" 3 выключить. »
Это его проблемы.

__sa__nya
07-02-2020, 04:34
Если консоль не пугает, то можно
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe metrics query * RAM/Usage/Used »
Кстати не работает эта команда, вывод при 2-х запущенных ВМ:

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe metrics query * RAM/Usage/Used
Object Metric Values
--------------- ---------------------------------------- --------------------------------------------
host RAM/Usage/Used

DJ Mogarych
07-02-2020, 09:51
Powershell:

get-process virtualbox |group name |select name,@{n='Memory(MB)';e={(($_.group.workingset |measure -sum).sum / 1mb).ToString('#.##')}}

__sa__nya
07-02-2020, 09:54
DJ Mogarych, этот скрипт показывает сколько памяти взял процесс VirtualBox, но без учета запущенных ВМ, т.е. то, что я вижу в диспетчере задач:

PS C:\WINDOWS\system32> get-process virtualbox |group name |select name,@{n='Memory(MB)';e={(($_.group.workingset |measure -sum).sum / 1mb).ToString('#.##')}}

Name Memory(MB)
---- ----------
VirtualBox 258,57

DJ Mogarych
07-02-2020, 09:56
__sa__nya, как процессы виртуальных машин называются?

Jula0071
07-02-2020, 09:56
__sa__nya, всё работает, нужно только документацию читать. Чтобы читать метрики, нужно их сначала включить.

PS. Но, конечно, для случая "пришёл посмотреть на чужой комп" не подходит.




© OSzone.net 2001-2012