2012-01-16 2 views
0

글쎄, 프로세스에 대한 개별 OID를 파고 각각에 대한 메모리 사용량을 얻을 수는 있지만 문제는 총계를 어떻게 얻을 수 있습니까? 프로세스 사용. 문제는 개별 프로세스 사용에 대한 OID가 1.3.6.1.2.1.25.5.1.1.2.X
입니다. 이제 X는 프로세스를 식별하고 더 많은 어려움을 추가하는 데 사용되는 숫자가 될 수 있습니다. 은 순서가 맞지 않습니다. 예를 들어, 나는 다음과 같은 순서로NEt를 사용하는 Windows에서 총 메모리 사용량의 합계 찾기 : SNMP

1.3.6.1.2.1.25.5.1.1.1.1에서 OID가있을 수 있습니다 = INTEGER : 971526993 1.3.6.1.2.1.25.5.1.1.1.4 = INTEGER : 3,562,884 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 = INTE GER : 4820



등등. . .

 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; 
+0

무엇이 문제입니까? – daxim

+0

질문은 주어진 시스템에 사용 된 전체 메모리를 얻는 방법입니다. U는 1 ~ 7500 범위의 X (OID의 마지막 번호) 범위를 볼 수 있습니다. 반복적으로 OID를 확인하면 총 메모리 사용량을 얻는 데 약 20 분이 걸립니다. 너무 많은 시간을 낭비 할 여유가 없습니다. (이 작업을 수행하는 빠른 방법이 있습니까? – Rahul

답변

0

무엇 Net::SNMP's get_bulk_request 사용에 대한 :

현재 나의 펄 스크립트는 다음과 같이인가? 한 번의 요청으로 모든 데이터를 가져와야합니다.