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