是否可以使用 netmiko 异步连接 100 多个设备。注意,很少有用线程说明的例子。既然设备数很高,那么用线程实现异步连接是否有效。还有什么最好的替代方法。
问问题
724 次
1 回答
0
是的,您绝对可以使用 Netmiko 和线程进行连接。这不是一个真正的问题,因为等待 IO 的时间非常多(换句话说,GIL 在这里真的不是问题)。
一次可以使用多少个线程取决于一组因素。鉴于我过去的经验,我希望您可以毫无问题地使用 100。
其他解决方案是 Multiprocessing 或 asyncio。您不能使用 Netmiko 进行异步操作,因为它不是异步的并且会阻塞。
这是一个使用并发期货和多处理的示例解决方案。除了切换到 ThreadPoolExecutor 之外,线程代码几乎相同。
您需要增加线程/进程池中的线程数,即 max_threads (这在所示代码中是用词不当,因为现在它正在使用多个进程)。
于 2020-09-24T22:35:14.933 回答