Нахождение общей суммы использования памяти в Windows с помощью NEt: SNMP - PullRequest
0 голосов
/ 16 января 2012

Ну, я выкопал отдельные OID для процесса, и я могу получить использование памяти для каждого из них, но вопрос в том, как мне получить общее использование процесса.Проблема в том, что OID для отдельного процесса используется 1.3.6.1.2.1.25.5.1.1.2.X
Теперь X может быть любым числом, используемым для идентификации процесса и добавления к нему большей сложности, поскольку он не в последовательности.Например, у меня могут быть OID в следующем порядке

1.3.6.1.2.1.25.5.1.1.1.1 = INTEGER: 971526993 1.3.6.1.2.1.25.5.1.1.1.4 = INTEGER: 3562884 1.3.6.1.2.1.25.5.1.1.1.296 = INTEGER: 496 1.3.6.1.2.1.25.5.1.1.1.340 = INTEGER: 12804 1.3.6.1.2.1.25.5.1.1.1.344 = INTEGER: 68178 1.3.6.1.2.1.25.5.1.1.1.348 = INTEGER: 40 1.3.6.1.2.1.25.5.1.1.1.372 = INTEGER: 3535 1.3.6.1.2.1.25.5.1.1.1.424 = INTEGER: 3985009 1.3.6.1.2.1.25.5.1.1.1.436 = INTEGER: 27875212 1.3.6.1.2.1.25.5.1.1.1.440 = INTEGER: 72218 1.3.6.1.2.1.25.5.1.1.1.592 = INTEGER: 4820



и т. Д.,,

В настоящее время мой Perl-скрипт выглядит примерно так:

      my ($session, $error) = Net::SNMP->session(
           -hostname  => shift || 'hostname',
              -community => shift || 'public',
      );

      if (!defined $session) {
                 printf "ERROR: %s.\n", $error;
                    exit 1;
            }
      //$OId_number will hold the OId of the particular process       
      my $result = $session->get_request(-varbindlist => [ $OID_number ],);

      if (!defined $result) {
                       printf "ERROR: %s.\n", $session->error();
                          $session->close();
                             exit 1;
       }

       printf "The Memory allocated  for process is  '%s' is %s.\n",
       $session->hostname(), $result->{$OID_number};
       $session->close();
       exit 0;

1 Ответ

0 голосов
/ 16 января 2012

Как насчет использования Net :: SNMP's get_bulk_request ?Вы должны получить все данные за один запрос.

...