当前位置: 首页 > news >正文

政府网站欣赏自己做网络推广怎么做

政府网站欣赏,自己做网络推广怎么做,传媒公司怎么运营,wordpress 没关插件目录 概述磁盘io网络io减少重复计算减少内存复制减少互斥锁 概述 手上有个go项目,接收udp信息(主要是syslog和snmp trap)并查询设备信息,将信息结构化(设备ip名称,匹配了什么规则之类的)后发送…

目录

  • 概述
  • 磁盘io
    • 网络io
    • 减少重复计算
    • 减少内存复制
    • 减少互斥锁

概述

手上有个go项目,接收udp信息(主要是syslog和snmp trap)并查询设备信息,将信息结构化(设备ip名称,匹配了什么规则之类的)后发送到kafka和es。
本身项目是基于benshos进行开发的,但是整体性能并不那么让人满意,而且还存在丢包的问题(udp缓冲区拿数据太慢导致数据丢失了)。整个性能优化过程比较有意义,所以整理一篇文章记录下来。
性能优化核心思想就是如下几条:

  1. 减少磁盘io
  2. 减少网络io
  3. 减少重复计算
  4. 减少内存复制(主要是io次数)
  5. 减少互斥锁

磁盘io

首先进行优化的是,批量写入es和kafka的量级,之前是批量100条写入,直接修改为1000条,网络io次数减少了9/10,整体性能也大大提升。
后面优化就比较麻烦了,根据pprof的火焰图,发现trap插件存在过多写入日志的问题,火焰图如下:
请添加图片描述查看snmp源码,发现会在创建连接的时候传入一个log接口,我直接写了一个假的接口,跳过输出,火焰图表现好了很多,大致如下:
请添加图片描述不太想动benthos和snmp的代码,所以这里日志输出比之前好太多了。
根据磁盘io的思路,我去排查我的所有日志模块,对所有有日志打印的地方进行了优化,将没必要的日志输出全部删除。
衡量io是否还有优化空间的方式之一是看cpu利用率是否打满了(在不考虑算法的情况下)。

网络io

网络io方面,一部分是kafka和es输出的io次数,另一个是每条udp信息都要去查询相关设备信息。虽然走的redis,并且加了锁,但是性能还是很低。
最开始的思路是通过读写锁+map的方式做缓存,后来发现这个问题很大,主要是并发太高的情况下,写入设备信息需要互斥锁,导致所有线程都无法去读取相关信息。后来想用sync.Map,但是性能还是不好(测试每次都用不同的设备ip来查,缓存基本不生效,每次都是新的ip)。最后做了一个go程,每过一段时间去redis更新设备信息,并将设备信息全部缓存到本地的map。将更新设备信息和读取分离,这样查询不到设备信息的情况下不会直接查redis,大大提升了性能。(至于redis能不能扛得住,影响不大,每次设备更新是单独执行,慢点就慢点)。

减少重复计算

这块主要是对代码本身不合理的地方进行优化,主要工作如下:

  1. 将可以缓存的信息全部缓存,不要重复计算
  2. 减少udp接收数据的处理过程,先用channel发送出去,如果间隔的udp接收时间过长可能会导致中间的缓冲被覆盖。

减少内存复制

主要是减少不必要的指针使用。

减少互斥锁

互斥锁影响很大,一定要想办法去除,或者尽量减少互斥锁的加锁次数。

写作过程中被打断了,,思路全没了。先这么着吧。
另外要学会使用pprof,特别是看那些图片。

http://www.khdw.cn/news/20449.html

相关文章:

  • 网站服务器租用协议g3云推广靠谱吗
  • 关键词seo排名怎么做的天津外贸seo推广
  • 建设主管部门官方网站seoul是什么品牌
  • 做网站字体要求品牌整合推广
  • 网站选择空间百度站长工具怎么用
  • 虹口做网站价格网站优化方案案例
  • 做网站有哪些公司好推广竞价托管公司
  • 在万网申请的域名_需要把万网的账户密码给做网站的吗怎么做手工
  • asp网站开发 pdf青岛seo推广
  • dedecms 食品网站网络营销计划的七个步骤
  • 刷赞网站推广免费软件网络销售是什么
  • wampserver装wordpress宝鸡百度seo
  • 门户网站后台管理模板手机免费建网站
  • wordpress写文章报错黑帽seo寄生虫
  • 网站logo在哪里修改培训网站设计
  • 中国做美国网站的翻译兼职如何宣传推广
  • 怎么让网站栏目页收录搜索引擎排名优化建议
  • 百度推广方式有哪些赣州seo外包怎么收费
  • 免费做app的网站哪个好上海网站排名优化公司
  • 广西省人民政府长沙seo霜天博客
  • 重庆建网站现在比较好的营销平台
  • 借贷网站建设方案短视频推广
  • 制作网站需要多少钱软文营销平台
  • 什么网站做任务的q币北京网上推广
  • 襄阳做网站公司网络营销软件哪个好用
  • 企业营销策划 网站建设怎么在百度上打广告
  • win7怎么做网站映射企业培训课程体系
  • 两学一做 网站源码百度竞价账户
  • 东莞建站模板搭建打广告
  • 温州做阀门网站公司排名优化软件