Coro-Telnet和Coro-Telnet+Golang-ssh-proxy性能测试
- 利用perl io::socket::telnet,封装AE::socket+Coro::handle实现异步telnet登录交互
- 利用golang/x/crypto/ssh实现golang代理ssh登录交互设备
- 利用perl coro-telnet+golang代理ssh实现ssh登录设备交互
- 随协程并发数增大,性能还可能有很可观的表现,新测了450台华为coro-telnet交互6秒完成,性能很强劲
Benchmarks
- 测试Coro-Telnet登录50台cisco设备执行show user和show bfd执行效率
50台全部执行操作成功
use 6.5157 sec
real 0m6.560s
user 0m0.190s
sys 0m0.038s
- 测试Coro-telnet使用golang-ssh代理执行50台cisco设备ssh登录执行两条操作效率
42台执行成功,8台ssh协议协商失败,类似telnet效率
use 7.1813 sec
real 0m7.226s
user 0m0.125s
sys 0m0.018s
- 测试Coro-Telnet登录50台华为设备执行display users和display telnet server status执行效率
50台全部执行成功
use 2.4691 sec
real 0m2.513s
user 0m0.286s
sys 0m0.072s
- 测试Coro-telnet使用golang-ssh代理执行50台华为设备ssh登录执行两条操作效率(display ssh server status)
46台成功,4台不支持ssh登录,接近telnet交互效率
use 2.6981 sec
real 0m2.742s
user 0m0.192s
sys 0m0.049s
总结
随协程并发数增大,性能还可能有很可观的表现,这只是单进程50并发,1 cmd下发基本接近10/s台的交互效率,新测了450台华为coro-telnet交互6秒完成,性能很强劲,同时看得出来coro-telnet比coro-telnet+golang-ssh代理交互效率高,ssh本身就应该比telnet协议慢,要交互加密等协议信息,但效率非常接近!!另外,在io字节数非常接近的情况下,华为NE5k系列设备的响应要比思科CRS快的多。