Выяснить использование памяти с помощью SNMP в Windows

В настоящее время я использую следующее, чтобы понять это:

Для общей памяти:

.1.3.6.1.2.1.25.2.2.0 

Для используемой памяти я прохожу следующий oid (дает мне использование каждого процесса):

.1.3.6.1.2.1.25.5.1.1.2

и просуммируйте их все.

Однако это очень неточно, потому что он показывает гораздо меньшее использование, чем если бы я использовал WMI или монитор производительности.

Я что-то упускаю? Я не хочу использовать сторонние агенты SNMP (например, информатор SNMP, который, кстати, работает правильно). Я хочу понять это, используя то, что стандартно в Windows.


person timeshift    schedule 25.02.2011    source источник


Ответы (2)


Попробуйте 1.3.6.1.2.1.25.2.3.1. Я получил следующие результаты с помощью утилиты snmpwalk Net-SNMP с одного из наших серверов Windows Server 2003:

$ snmpwalk -v1 -cpublic 10.200.80.221 1.3.6.1.2.1.25.2.3.1.3
HOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: C:\ Label:  Serial Number 38728140
HOST-RESOURCES-MIB::hrStorageDescr.2 = STRING: D:\
HOST-RESOURCES-MIB::hrStorageDescr.3 = STRING: O:\ Label:Data  Serial Number b618c4bc
HOST-RESOURCES-MIB::hrStorageDescr.4 = STRING: Q:\ Label:Quorum  Serial Number 4cbbcc74
HOST-RESOURCES-MIB::hrStorageDescr.5 = STRING: Virtual Memory
HOST-RESOURCES-MIB::hrStorageDescr.6 = STRING: Physical Memory

$ snmpwalk -v1 -cpublic 10.200.80.221 1.3.6.1.2.1.25.2.3.1.4
HOST-RESOURCES-MIB::hrStorageAllocationUnits.1 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.2 = INTEGER: 0 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.3 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.4 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.5 = INTEGER: 65536 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.6 = INTEGER: 65536 Bytes

$ snmpwalk -v1 -cpublic 10.200.80.221 1.3.6.1.2.1.25.2.3.1.5
HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 17911195
HOST-RESOURCES-MIB::hrStorageSize.2 = INTEGER: 0
HOST-RESOURCES-MIB::hrStorageSize.3 = INTEGER: 66794245
HOST-RESOURCES-MIB::hrStorageSize.4 = INTEGER: 35836990
HOST-RESOURCES-MIB::hrStorageSize.5 = INTEGER: 128101
HOST-RESOURCES-MIB::hrStorageSize.6 = INTEGER: 98266

$ snmpwalk -v1 -cpublic 10.200.80.221 1.3.6.1.2.1.25.2.3.1.6
HOST-RESOURCES-MIB::hrStorageUsed.1 = INTEGER: 1365706
HOST-RESOURCES-MIB::hrStorageUsed.2 = INTEGER: 0
HOST-RESOURCES-MIB::hrStorageUsed.3 = INTEGER: 38290
HOST-RESOURCES-MIB::hrStorageUsed.4 = INTEGER: 17637
HOST-RESOURCES-MIB::hrStorageUsed.5 = INTEGER: 4819
HOST-RESOURCES-MIB::hrStorageUsed.6 = INTEGER: 6952

Здесь важны 5-я и 6-я строки таблиц. Если у вас меньше жестких дисков, вы можете найти значения виртуальной и физической памяти в других строках.

person Bill    schedule 28.02.2011
comment
Хммм, hrStoragesize.6 и hrStorageUsed.6 действительно не дает правильного числа? Не могли бы вы объяснить, что нужно суммировать / вычитать для использования общей памяти? (Например, что в графике памяти в диспетчере задач на вкладке производительности) - person timeshift; 28.02.2011
comment
@timeshift Общий объем используемой памяти: hrStorageUsed.6 * hrStorageAllocationUnits.6 = 6952 * 65536 = 455606272 байта = 434,5 МБ Общий объем памяти: hrStorageSize.6 * hrStorageAllocationUnits.6 = 98266 * 65536 = 6439960576 байтов = 5,99 ГБ - person Bill; 28.02.2011
comment
@timeshift Я рад, что смог вам помочь. - person Bill; 28.02.2011

Вы можете либо сообщить об этом как об ошибке в Microsoft и дождаться исправления, либо просто переключиться на другого агента.

Microsoft предпочитает WMI протоколу SNMP, поэтому вы должны знать, что агент является второсортным агентом в Windows.

person Lex Li    schedule 26.02.2011
comment
То есть вы говорите, что невозможно получить эту информацию, не прибегая к помощи третьей стороны? WMI - не всегда вариант, поскольку для этого требуется, чтобы у вас была действующая учетная запись пользователя на этом сервере. - person timeshift; 27.02.2011