2013-10-22 116 views

回答

3

編輯:添加了pastebin示例

請發佈您的當前版本的腳本。

在你指的是你可以嘗試優化了一些代碼:只要你使用相同的參數調用它們,曾多次

addV1System() 
addTargetParams() 
addSocketTransport() 

電話。

換句話說,如果在您查詢的4000個主機中唯一的區別是主機的地址,那麼您需要重複的唯一調用是addTargetAddr()。否則,您可以在每個請求上重新配置SNMP引擎。

爲了更好地估計pysnmp性能,您考慮運行配置有4000個主機的the following example以查詢。

如果您從不需要SNMPv3並且性能是您的首選,那麼您可能希望使用pysnmp的low-level API

但無論如何,在性能方面你絕不會接近C實現。 ;-)

+0

你可以在這裏發佈簡單的代碼嗎?它應該是異步的(扭曲會更好),並要求查詢4000個主機。你可以使用你喜歡的任何oid。版本是v2c。我會嘗試一下並注意結果。 – kalombo

+1

請參閱http://pastebin.com/wMjvmxLV。在我的系統上,它在5秒內完成1000次查詢。我的本地代理不接受更多的查詢,所以我不能嘗試4000個主機。因此,將4000臺主機配置到上面的腳本中並嘗試一下。 – Pooh

+0

它在30秒內完成了4000個查詢。我也試過用扭曲的pysnmp。花了55秒。有一個[code](http://pastebin.com/YaD8dZLm)。爲什麼扭曲時間超過AsynCommandGenerator時間?它是正確的代碼? – kalombo