点击关注公众号,回复“1024”获取2TB学习资源!

当网站上线后,流量增加或短暂功能故障,都会造成使用者体验相当不好,而这时该怎么快速找到性能的瓶颈呢?通常 CPU 达到 100% 时,有时候也很难复制及找出关键问题点。

本篇文章,我们会介绍一套工具叫 Pyroscope,让开发者可以快速找到性能瓶颈的代码。Pyroscope 目前可以支持 Python, Ruby 或 Go 的环境。本文笔者会针对 Go 环境做介绍。

什么是 Pyroscope?

Pyroscope 是一套开源的性能即时监控平台,简单的 Server 及 Agent 架构,让开发者可以轻松监控代码性能,不管你要找 10 秒或几分钟内的性能数据,都可以快速的即时呈现,开发者也不用在意装了此监控会造成任何性能上的负担。Pyroscope 背后的储存采用 Badger 这套 Key-Value 数据库,性能上是非常好的。目前只支持 3 种语言 (Python, Ruby 及 Go) 未来会预计支持 NodeJS。假设您还没引入任何性能分析工具或平台,那 Pyroscope 会是您最好的选择。

Pyroscope 架构

如果你有打算找性能分析工具平台,Pyroscope 提供了三大优势,让开发者可以放心使用

  • 低 CPU 使用率,不会影响既有平台

  • 可储存好几年的资料,并且可用 10 秒细颗粒度查看资料

  • 压缩储存资料,减少浪费硬盘空间

  • 架构只有分 Server 和 Agent,除了 Go 语言之外,Python 跟 Ruby App 都是透过 pyroscope 指令启动相关 app 来监控系统效能。

启动 Pyroscope 服务

启动方式有两种,第一是直接用 docker 指令启动。

$ docker run -it -p 4040:4040 pyroscope/pyroscope:latest server

另一种可以用 docker-compose 启动。

---
services:pyroscope:image: "pyroscope/pyroscope:latest"ports:- "4040:4040"command:- "server"

安装 Agent

在 Go 语言中使用

本篇用 Go 语言当作示例,先 import package

import "github.com/pyroscope-io/pyroscope/pkg/agent/profiler"

接著在 main.go 写入底下代码即可:

profiler.Start(profiler.Config{ApplicationName: "simple.golang.app",ServerAddress:   "http://pyroscope:4040",
})

其中 http://pyroscope 可以换成自定义的 hostname 即可,接着打开上述网址就可以看到性能监控的画面了。

在 Python 和 Ruby 语言中使用
# If using Python
$ pyroscope exec python manage.py runserver # If using Ruby
$ pyroscope exec rails server

心得

这套工具相当方便,在 Go 语言虽然可以用 pprof 快速找到问题,但是难免还是需要手动的一些地方才可以查出性能瓶颈,有了这套平台,就可以将全部 App 都进行监控,当使用者有任何问题,就可以快速透过 Pyroscope 查看哪些代码出了问题。

更多关于监控系统的推荐与介绍,请参阅公众号专栏文章(直接点击右边的文字直达专栏处):监控系统

作者:小恶魔

原文:http://t.cn/A6c0G3dm

推荐阅读 点击标题可跳转

又一款超牛逼的性能调优利器 — 火焰图

一互联网公司被警方一锅端了!这种岗位千万别干!

入职 6 个月,被裁员。。。

武大 94 年博士年薪 201 万入职华为!学霸日程表曝光

或将取代云计算!下一个技术风口来了

安排几款实用的内网穿透工具+教程

OAuth2 vs JWT,到底怎么选?

SpringCloud Gateway 详解

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。

随手在看、转发是最大的支持!

超牛逼!这款开源性能监控系统真强大~相关推荐

  1. 挺带劲!这款免费开源的监控系统真强大~

    点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 大家好,我是民工哥. 一提到监控系统,大家很快就能想到Zabbix.Prometheus等,今天,民工哥 ...

  2. 挺带劲,这款国人开源的监控系统功能真强大~

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:小黄鸭编程社区 项目简介 集监控点监控.日志监控.数 ...

  3. 还在付费使用 XShell?我选择这款超牛逼的 SSH 客户端,完全免费!

    点击关注公众号,回复"1024"获取2TB学习资源! 分享过 FinallShell 这款 SSH 客户端,也是我目前常用的 SSH 客户端工具,FinalShell 使用起来方便 ...

  4. 超牛逼!100 个开箱即用的 Shell 脚本,拿好了~

    点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的 ...

  5. 挺带劲!这款开源数据库迁移工具超牛逼

    点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 迁移数据库可以说是日常工作中的家常便饭,不过,如果一不小心把数据库搞炸了,那就麻烦大了(搞不好就得背锅了 ...

  6. 几款超牛逼的 SSH 客户端工具!好用到爆

    点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 一.Windows 想来占有量最大的操作系统,得非莫属了吧,相信 Windows 系统肯定是陪伴了很多小 ...

  7. 几款超牛逼的终端命令行工具!好用到爆

    点击关注公众号,回复"1024"获取2TB学习资源! 终端是程序员的必备工具之一,本文将介绍许多牛逼且实用的开源工具,本文仅对工具做基本介绍,不提供安装方法,因为这些工具的安装方法 ...

  8. 再见 Teamviewer!这款国产轻量级远程桌面软件超牛逼

    点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 对很多 Mac 用户来说,想用远程控制请教下大佬,太难了. 在 Windows 上一个 QQ 就能搞定的 ...

  9. 最牛逼的性能监控系统!集强大功能于一身

    点击关注公众号,Java干货及时送达 SkyWalking 是一个应用性能监控系统,特别为微服务.云原生和基于容器(Docker, Kubernetes, Mesos)体系结构而设计.除了应用指标监控 ...

最新文章

  1. 为什么Java中只有值传递?
  2. python wasm_Python-pywasm-美味尝鲜
  3. 兼容浏览器将NodeList对象转换为数组
  4. jdbc oracle存储过程,java jdbc 执行oracle存储过程
  5. 《机器学习》 周志华学习笔记第二章 模型评估与选择(课后习题)
  6. 拆分备份(还原)比较大的数据库为多个bak文件
  7. Visio的VBA初探
  8. GDB Watchpoints
  9. 程序员3年工资从7千到2万2,晒出跳槽经历!网友:厉害!
  10. loj10131 暗的连锁
  11. AcWing 1952. 金发姑娘和 N 头牛(离散化+差分)
  12. IO中的阻塞、非阻塞、同步、异步概念分析详解(通俗易懂)
  13. 公司周刊-非常6+1—营销平台小组
  14. Syncfusion的社区许可及免费电子书和白皮书
  15. 硬盘助手写入文件的正确提取
  16. 第11章 Java枚举与泛型总结
  17. 计算机专业毕业顶岗实习周记,计算机专业毕业顶岗实习周记10篇参考).doc
  18. 数商云跨境电商平台解决方案 1
  19. linux 查看dhcp dns,RHEL6 DNS+DHCP+DDNS
  20. TestFlight用法(iOS APP官方测试工具)

热门文章

  1. 中小型企业如何做好网络品牌推广?
  2. Java调用第三方http接口 单点登录 HttpClient
  3. 心形符号c语言程序,c语言心形代码及图形
  4. 深入JVM源码篇-1-如何查看JVM源码
  5. SAP ABAP强制触发PAI事件执行一次PBO
  6. 21. 理解CNI和CNI插件
  7. Windows 10安全指南
  8. Win32如何定义IP数据报的首部
  9. html5游戏引擎国内文献综述,html5论文参考文献范例借鉴
  10. 基于PHP的协同办公系统设计