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

湘潭网站建设 都来磐石网络珠海移动网站建设公司

湘潭网站建设 都来磐石网络,珠海移动网站建设公司,网站建设 招标书,太原网站搜索优化传统检测内存泄露可以看一下我这篇文章Gin框架接入Prometheus,grafana辅助pprof检测内存泄露-CSDN博客 pyroscope被Grafana收购,GPT来总结一下pyroscope的强大之处🐶 pyroscope github地址 pyroscope与grafana的安装 docker compose安装,这里我们其实…

传统检测内存泄露可以看一下我这篇文章Gin框架接入Prometheus,grafana辅助pprof检测内存泄露-CSDN博客

pyroscope被Grafana收购,GPT来总结一下pyroscope的强大之处🐶

pyroscope github地址

pyroscope与grafana的安装

docker compose安装,这里我们其实可以不使用grafana,pyroscope已经是一个很完整的产品,但是我们在grafana里面可以配置数据源,也可以在grafana里面查看,grafana暂时还没有好的pyroscope dashboard

version: '3.8'services:grafana:image: grafana/grafanacontainer_name: grafanaports:- "3000:3000"networks:- monitoringdepends_on:- prometheuspyroscope:image: grafana/pyroscopecontainer_name: pyroscopeports:- "4040:4040"networks:- monitoring    networks:monitoring:driver: bridge

 执行

docker-compose up -d 

 访问Pyroscope   http://localhost:4040/ 我们可以看到go语言的各种性能指标与pprof检测的各类指标差不多

Gin框架中间件配置

我们在gin框架中间件中集成这个检测插件

ApplicationName: "simple.golang.app.golang",用于在Pyroscope筛选服务

package initializationimport ("awesomeProject3/middware""awesomeProject3/router""github.com/Depado/ginprom""github.com/gin-gonic/gin""github.com/grafana/pyroscope-go"_ "net/http/pprof""runtime"
)func Routers() *gin.Engine {r := gin.New()r.Use(p.Instrument())runtime.SetMutexProfileFraction(5)runtime.SetBlockProfileRate(5)pyroscope.Start(pyroscope.Config{ApplicationName: "simple.golang.app.golang",// replace this with the address of pyroscope serverServerAddress: "http://localhost:4040",// you can disable logging by setting this to nilLogger: pyroscope.StandardLogger,// you can provide static tags via a map:Tags: map[string]string{"hostname": "ginapp"},ProfileTypes: []pyroscope.ProfileType{// these profile types are enabled by default:pyroscope.ProfileCPU,pyroscope.ProfileAllocObjects,pyroscope.ProfileAllocSpace,pyroscope.ProfileInuseObjects,pyroscope.ProfileInuseSpace,// these profile types are optional:pyroscope.ProfileGoroutines,pyroscope.ProfileMutexCount,pyroscope.ProfileMutexDuration,pyroscope.ProfileBlockCount,pyroscope.ProfileBlockDuration,},})return r
}

模拟内存泄露

我们来模拟内存泄露 对下面接口压测,压测粒度小一点,来看pyroscope的作用。

我们生产项目中出现过一次严重的内存泄露,例子如下图所示,该接口qps非常高

pyroscope监控查看内存泄露

我们点击Single可以看到详细的火焰图以及性能瓶颈,内存泄露的方法集代码,也就是产生goroutine泄露的地方

结论

我们在使用golang 高并行处理下游任务的时候,一定要对下游基础设施要有敬畏之心,调用时限制goroutine的运行数量并且设置上context超时控制,做好超时熔断措施,做好监控警告,下游基础设施如果达到瓶颈,我们可对下游基础进行主从 水平扩容等。

http://www.yayakq.cn/news/980160/

相关文章:

  • 做网站公司工资网站大事记时间轴折叠
  • 遵义网站建设推广开发工具是什么意思
  • 外星人建设的网站24小时学会网站建设 pdf下载
  • 四川佳和建设工程网站wordpress 建网站视频
  • 西宁网站建设报价做网站实际尺寸是多少
  • 永康新站优化网站留言板块怎么做
  • 林州做网站宜昌 房地产网站建设
  • ps建设此网站的必要与可行性手机做logo用什么网站
  • 大连做网站的网络公司广告设计与制作需要学什么专业
  • 南昌比较好的网站设计wordpress门户型多栏设计
  • wordpress微博同步织梦与wordpress seo哪个好
  • c2c网站开发毕业设计网站建设工具有哪些品牌
  • 用excel可以做网站网站中qq跳转怎么做的
  • 平顶山股票配资网站建设优质ppt模板免费下载
  • 网站建设费长期待摊费用网站icp备案号怎么查询
  • 视频策划方案怎么写郑州网站seo优化
  • cms建站系统开源microsoft做网站
  • 网站开发工具的功能包括html软件开发前端和后端
  • 网站开发顶岗报告那个网站seo做的好的
  • 网站建设主要有哪些成本中国建设银行网站e路
  • 抖音做我女朋友网站网站开发的内容
  • 建设工程管理是干嘛的志鸿优化设计
  • 海外酒店 网站建设99作文网
  • 小装修网站开发费用做哪个外贸网站不用交费
  • 推荐一本学做网站的书网站模板自建站
  • 如何对网站做进一步优化企业关键词大全
  • 微信公众号微网站开发类型网站链接建设的作用
  • c++可以做网站吗icp网站建设
  • 做移动端网站软件开发品牌营销策划方案模板
  • 百度网站制作公司2023网络营销案例分析