Как получить отчет командной строки Windows об общем выделенном объеме памяти (фиксированном заряде)?

2691
Alexander Bird

Я хочу иметь небольшой пакетный скрипт, который запускается на сервере и каждый час регистрирует статистику памяти. У меня уже есть сценарий, который регистрирует специфичную для процесса информацию, которую я хочу с помощью других инструментов, но я хочу знать способ (либо непосредственно в cmd, либо через программу), который будет выводить общий объем выделенной памяти системы. Другими словами, я думаю, что общая статистика фиксации в диспетчере задач - это то, что я хочу узнать, но через командную строку:

1

2

2 ответа на вопрос

3
Karan

Вы можете создать экземпляр и использовать класс Win32_PerfFormattedData_PerfOS_Memory для этого через VBScript:

Set wmiObject = GetObject("winmgmts:\\.\root\cimv2:Win32_PerfFormattedData_PerfOS_Memory=@") Wscript.Echo "CommitLimit (B): " & wmiObject.CommitLimit Wscript.Echo "CommitLimit (MB): " & (wmiObject.CommitLimit / 1048576) Wscript.Echo "CommittedBytes (B): " & wmiObject.CommittedBytes Wscript.Echo "CommittedBytes (MB): " & (wmiObject.CommittedBytes / 1048576) 

Сохраните с именем, подобным GetMem.vbs, и вызовите его с помощью cscript //Nologo GetMem.vbs. Класс также можно использовать с помощью wmicкоманды, как указано ниже, хотя, конечно, сценарий предоставляет вам гораздо большую гибкость.

Привет!). `CommitLimit` не является` Пиковым уровнем зарядки` STTR 11 лет назад 0
@STTR: он хочет совершить общий заряд. Разве это не то же самое, что и CommittedBytes? Значения, похоже, совпадают на моем ПК. Karan 11 лет назад 1
http://blog.whatsupduck.net/2010/05/querying-peak-commit-bytes-with.html это не так: `wmic path Win32_PerfFormattedData_PerfOS_Memory get CommittedBytes, CommitLimit` STTR 11 лет назад 1
@STTR: Тот пост в блоге, на который вы ссылаетесь, согласен со мной. CommittedBytes * is * Commit Charge Total. Ни ОП, ни я не упомянули «Пик коммитации», поэтому я честно не понимаю, в чем проблема. Karan 11 лет назад 0
Плз, смотри тестовый скрипт. STTR 11 лет назад 0
@STTR: Большое спасибо за напоминание о команде `wmic`. Почему-то я всегда сначала обращаюсь к VBS / WSH и забываю об этом. Karan 11 лет назад 0
0
STTR
wmic path Win32_PerfFormattedData_PerfOS_Memory get CommittedBytes, CommitLimit 

Тестовый скрипт ...

Эти значения могут быть одинаковыми до тех пор, пока не будет исчерпано ОЗУ (CommitLimit и PeakCommitment * (размер страницы))

Пик ...

Запрос пиковых байтов фиксации с помощью Powershell (через NtQuerySystemInformation)

ОП хочет * Всего *, а не * Пик *. Должен признаться, я все еще не понимаю, к чему ты клонишь. Karan 11 лет назад 1
@ Каран Ну, ОП хотел Пик). Лучше всего использовать `perfmon` и сохранять результаты в базе данных. Пусть ОП уточнит вопрос) STTR 11 лет назад 0
Каран это правильно. В настоящий момент это общее (не пиковое) значение, которое меня интересует. Кроме того, я бы добавил ссылку на эту статью в вашем ответе, чтобы другие знали, на что вы ссылаетесь, когда используете скриншоты с командой «PeakCommitment.ps1». Alexander Bird 11 лет назад 1
Статья @AlexanderBird в статье «Запрос байтов пиковых изменений с помощью Powershell» (через NtQuerySystemInformation) STTR 11 лет назад 0