前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源持续性能剖析平台 Pyroscope

开源持续性能剖析平台 Pyroscope

作者头像
我是阳明
发布2021-04-26 15:46:25
1.6K0
发布2021-04-26 15:46:25
举报
文章被收录于专栏:k8s技术圈k8s技术圈

性能剖析是动态代码分析的一种形式,你可以在应用运行时捕获应用的特征,然后使用这些特征信息确定如何使应用更快、更高效。但是对于线上生产环境来说很难捕获到现场,所以捕获线上 profile 的时候有一定难度,Google 在论文《Google-Wide Profiling: A Continuous Profiling Infrastructure for Data Centers》(https://research.google/pubs/pub36575/) 中介绍了内部的 Profilling 系统,简称 GWP,GWP 能够持续地对跨数据中心的基础设施进行 profilling,获取包括了栈调用,硬件事件,堆 profile,内核事件等等信息,并进行后续的数据分析,这个就是现在比较热门的持续性能剖析。

介绍

持续性能剖析是指对在生产环境中执行的应用进行性能剖析,此方法可缓解为生产环境开发准确的预测负载测试和基准的需求。与 metrics 类似,pprof 也是通过 HTTP 端点进行暴露,那么如果像 Prometheus 一样,每隔一段时间定期去抓取程序的 profiles 并存储在 TSDB 中,后续出现问题了再去查询那个时间段的 profiles,就能够很方便地定位到问题,这个就是基本的实现思路。

我们今天要介绍的 Pyroscope 就是这样的一个开源持续性能剖析平台,号称调试性能问题仅需一行代码,目前已经有 3.4k ??。

演示地址:https://demo.pyroscope.io/

下图显示了使用 pyroscope 运行的一个典型应用程序的基本架构:

特性:

  • 可以存储多个应用程序长时间的剖析数据
  • 可以一次查看长时间的数据,也可以单独查看特定的事件
  • 低 CPU 开销
  • 数据压缩效率高
  • 友好的用户界面
  • 支持 Go、Ruby、Python 以及 Linux eBPF

使用

只需要下面几条命令即可测试使用 pyroscope:

代码语言:javascript
复制
# install pyroscope
brew install pyroscope-io/brew/pyroscope

# start pyroscope server:
pyroscope server

# in a separate tab, start profiling your app:
pyroscope exec python manage.py runserver # If using Python
pyroscope exec rails server               # If using Ruby

# If using Pyroscope cloud add flags for server address and auth token
# pyroscope exec -server-address "https://your_company.pyroscope.cloud" -auth-token "ps-key-1234567890" python manage.py runserver

仓库地址:https://github.com/pyroscope-io/pyroscope

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 k8s技术圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 特性:
  • 使用
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档