0

是否可以使用 netmiko 异步连接 100 多个设备。注意,很少有用线程说明的例子。既然设备数很高,那么用线程实现异步连接是否有效。还有什么最好的替代方法。

4

1 回答 1

0

是的,您绝对可以使用 Netmiko 和线程进行连接。这不是一个真正的问题,因为等待 IO 的时间非常多(换句话说,GIL 在这里真的不是问题)。

一次可以使用多少个线程取决于一组因素。鉴于我过去的经验,我希望您可以毫无问题地使用 100。

其他解决方案是 Multiprocessing 或 asyncio。您不能使用 Netmiko 进行异步操作,因为它不是异步的并且会阻塞。

这是一个使用并发期货和多处理的示例解决方案。除了切换到 ThreadPoolExecutor 之外,线程代码几乎相同。

https://github.com/ktbyers/pyplus_course/blob/master/class10/collat​​eral/CF_PROCESSES/ssh_procs_wait.py

您需要增加线程/进程池中的线程数,即 max_threads (这在所示代码中是用词不当,因为现在它正在使用多个进程)。

于 2020-09-24T22:35:14.933 回答