2

簡単な snmpget クエリで 4000 のホストに問い合わせる必要があります。私は netsnmp をスレッドで使用し、pynetsnmp を twisted で使用しましたが、かなり高速に動作します (1 分未満)。AsyncCommandGenerator で pysnmp を使用し、twisted で pysnmp を使用しようとし ました (SnmpEngine の 1 つのインスタンスでその例を修正しました)

そして10分以上かかりました。私は何か間違ったことをしていますか?pysnmp はそれほど遅いはずですか?

4

1 に答える 1

3

編集:ペーストビンの例が追加されました

現在のバージョンのスクリプトを投稿してください。

参照するコードでは、次のいくつかを最適化しようとする場合があります。

addV1System()
addTargetParams()
addSocketTransport()

同じ引数で複数回呼び出すたびに呼び出します。

言い換えると、4000 のホストの中で照会する唯一の違いがホストのアドレスである場合、繰り返す必要がある呼び出しは addTargetAddr() だけです。そうしないと、要求ごとに SNMP エンジンを再構成します。

pysnmp のパフォーマンスをより正確に見積もるには、クエリ対象の 4000 のホストで構成された次の例を実行することを検討してください。

SNMPv3 をまったく必要とせず、パフォーマンスが優先される場合は、pysnmp の低レベル APIを使用することをお勧めします。

しかし、いずれにせよ、パフォーマンスの点で C 実装に近づくことはありません。;-)

于 2013-10-22T07:43:48.933 に答える