我正在使用SNMP2.2.3,当我通过public Snmp(TransportMapping)构造一个org.snmp4j.Snmp对象时,我观察到一个长达8秒的延迟,我想知道是否有人知道我应该把注意力集中在Snmp4j中的什么地方。我在Redhat Linux上看到了这种情况,但在Windows XP机器上运行时没有看到滞后。
在下面的代码中,第3行"Snmp = new Snmp(transport);“冻结了长达8秒。
Address targetAddress = new UdpAddress(host + "/" + port);
TransportMapping transport = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transport);
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setAddress(targetAddress);
target.setRetries(2);
target.setTimeout(1500);
target.setVersion(SnmpConstants.version2c);
target.setMaxSizeRequestPDU(65535);
snmp.listen();谢谢
发布于 2016-01-22 21:25:06
Turin正确地指出了问题所在。
如果您只使用SNMPv2c,则可以进行更干净的初始化,不加载与v3的加密相关的类。
TransportMapping transport = new DefaultUdpTransportMapping();
MessageDispatcher disp = new MessageDispatcherImpl();
disp.addMessageProcessingModel(new MPv2c());
snmp = new Snmp(disp, transport);
...
snmp.listen();发布于 2015-05-20 05:00:36
我在snmp4j 1.11.2中发现了同样的问题。向jvm添加-Djava.security.egd=file:/dev/./urandom解决了这个问题。
解决方案是http://snmp4j.agentpp.narkive.com/xzGw7pL1/initialize-too-slow和How to solve performance problem with Java SecureRandom?
发布于 2014-02-02 17:54:06
这很可能是操作系统的RedHat随机种子初始化中的问题。据我所知,操作系统有一个修复程序,可以确保熵计算不会花费太多时间。
https://stackoverflow.com/questions/20056685
复制相似问题