位置: 编程技术 - 正文

详解python并发获取snmp信息及性能测试(python3并发)

编辑:rootadmin

推荐整理分享详解python并发获取snmp信息及性能测试(python3并发),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python并发请求接口,python并发请求接口,python并发执行函数,python并发请求接口,python并发执行函数,python并发执行函数,python的并发,python并发请求接口,内容如对您有帮助,希望把文章链接给更多的朋友!

python & snmp

用python获取snmp信息有多个现成的库可以使用,其中比较常用的是netsnmp和pysnmp两个库。网上有较多的关于两个库的例子。

本文重点在于如何并发的获取snmp的数据,即同时获取多台机器的snmp信息。

netsnmp

先说netsnmp。python的netsnmp,其实是来自于net-snmp包。

python通过一个c文件调用net-snmp的接口获取数据。

因此,在并发获取多台机器的时候,不能够使用协程获取。因为使用协程,在get数据的时候,协程会一直等待net-snmp接口返回数据,而不会像socket使用时那样在等待数据时把CPU切换给其他协程使用。从这点上来说,使用协程和串行获取没有区别。

那么如何解决并发获取的问题呢?可以使用线程,多线程获取(当然也可以使用多进程)。多个线程同时调用net-snmp的接口获取数据,然后cpu在多个线程之间不停切换。当一个线程获取一个结果后,可以继续调用接口获取下一个snmp数据。

这里我写了一个样例程序。首先把所有的host和oid做成任务放到队列里,然后启动多个线程,去执行获取任务。程序样例如下:

netsnmp除了支持get操作之外,还支持walk操作,即遍历某个oid。

详解python并发获取snmp信息及性能测试(python3并发)

但是walk使用的时候需要谨慎,以免导致高延时等问题,具体可以参见之前的一篇snmpwalk高延时问题分析的博客。

pysnmp

pysnmp是用python实现的一套snmp协议的库。其自身提供了对于异步的支持。

pysnmp本身只支持最基础的get和getnext命令,因此如果想使用walk,需要自己进行实现。

性能测试

在同一个环境下,对两者进行了性能测试。两者对个host,个oid进行采集。

测试组 耗时(sec) netsnmp(线程) 6. netsnmp(线程) 3. netsnmp(线程) 3. pysnmp 4.

可以看到netsnmp的采集速度跟线程数有关。当线程数增大到一定程度,采集时间不再缩短。因为开辟线程同样会消耗时间。而已有的线程已经足够处理。

pysnmp性能较之略差一下。详细分析pysnmp在添加任务(执行getCmd时)消耗了约1.2s,之后的采集约消耗3.3秒。

在增加了oid数,在进行实验。host仍然是个,oid是个。

测试组 耗时(sec) netsnmp(线程) . netsnmp(线程) . netsnmp(线程) 4. pysnmp .

可以看到差距被进一步拉大。在线程足够多的情况下,netsnmp的效率要明显强于pysnmp。

因为二者都支持可以并行采集多个host,从易用性来说,netsnmp更为简单一些,且netsnmp支持walk功能。本文更加推荐netsnmp。

安装netsnmp需要安装net-snmp。如果centos,则使用yum会较为方便。

标签: python3并发

本文链接地址:https://www.jiuchutong.com/biancheng/377145.html 转载请保留说明!

上一篇:使用Python写CUDA程序的方法(python调用cuda执行加法)

下一篇:Python使用PDFMiner解析PDF代码实例(python pdf操作)

  • 山东税务网上申报平台操作员查询
  • 个税汇算清缴怎么把全年一次性奖金并入综合所得
  • 国有独资企业是国企吗
  • 来料加工账务处理举例
  • 税控服务费全额抵扣增值税申报表中哪一栏
  • 进项税额红字怎么做账
  • 退货开具红字发票销项税为负数税务局会查吗
  • 滴滴打车电子票怎么取票
  • 三证合一后银行开户许可证还有吗
  • 支付金融机构手续费计入什么费用
  • 生产出来的次品怎么入账
  • 提前预支了应得的工资犯法吗
  • 其他应收款里面有增值税
  • 工地人为受伤一般怎么解决
  • 个人独资企业股权能出让吗
  • 资产收购账务处理
  • 施工现场应建立什么
  • 关联公司代付款协议
  • 花卉盆景苗木
  • php正则表达式验证url
  • 如何才能显示效果更好
  • 如何查看自己的qq密码
  • 自产货物用于销售
  • 中秋福利发放现金怎么做表
  • 本年利润和利润总额的关系
  • php数组函数,选班长
  • 代开专用发票的流程资料要求
  • php单例模式什么时候用
  • 应纳税为什么是0
  • python 构建
  • 上海广为
  • wordpress限制邮箱注册
  • 纳税调整项目明细表30行怎么填写
  • 收银算不算财务工作
  • 分公司要所得税汇算吗
  • 印花税对什么征税
  • ajax写接口
  • 织梦怎么建站
  • 现金流量表里包括应收票据吗
  • 上季度忘记申报个税了
  • 缴纳社保费出现异常
  • 未开票收入如何计提增值税
  • 一般纳税人是指哪些人群
  • 跨月发票作废如何恢复
  • 通行费电子发票进项税额如何填报
  • 固定资产到期后继续使用称为什么
  • 公司怎么样能开发票
  • 贷款公司收取服务费跑路
  • 执行企业会计准则和小企业会计准则的区别
  • 民非企业附加税计提和缴纳分录
  • 收到的稳岗补贴要交企业所得税吗
  • 无形资产的费用化支出计入成本吗
  • 项目建设期间所涉及的税
  • 未开票收入怎么报税
  • 资产减值损失的账务处理
  • 回购股票会导致所有者权益减少吗
  • 香港公司账户收美元要交税吗
  • 税前扣除是什么时候开始的
  • 固定资产多少钱入账
  • 营业收入是利润总额吗
  • win10 rs5
  • win2003怎么安装
  • mac键盘怎么开
  • win10系统怎么设置不锁屏和休眠
  • centos部署django项目
  • yum源有什么用
  • easyui的表单验证
  • vue中父子组件如何通信的
  • unity3d c++开发
  • nodejs实现HTTPS发起POST请求
  • jQuery EasyUI tree 使用拖拽时遇到的错误小结
  • 深入理解中国式现代化
  • jquery监听span内容的变化
  • python res.
  • 地税局书记是什么级别
  • 请问关于煤炭的法律法规
  • 地税登记证编号是哪几位
  • 税务登录 河北省地方税务局
  • 支部书记讲党课主题教育
  • 哪些税和费计入应交税费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设