これは、個々のOIDを掘り出したもので、それぞれのメモリ使用量を得ることができますが、プロセス使用量。 問題は、個々のプロセス使用のためのOIDは1.3.6.1.2.1.25.5.1.1.2.X
です。ここでXは、プロセスを特定してそれに難易度を追加するために使用される任意の数値で、 は順不同です。例えば、 私は、次の順序NEtを使用してWindowsでメモリ使用率の総和を求める:
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: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 = 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
質問は、どのように私は特定のシステムで使用される完全なメモリを取得するのですか? 1から7500までの範囲のX(OIDの最後の数字)の範囲がわかります。反復処理を続けて純粋なOIDをチェックすると、メモリの総使用量を取得するのに約20分かかります。私はあまり時間を無駄にすることができません:(これを行うためのより速い方法がありますか? – Rahul