37 | systemtap-toolkit和stapxx:如何用数据搞定“疑难杂症”?
温铭
该思维导图由 AI 生成,仅供参考
你好,我是温铭。
正如上节课介绍过的,作为服务端开发工程师,我们并不会对动态调试的工具集做深入的学习,大都是停留在使用的这个层面上,最多去编写一些简单的 stap 脚本。更底层的,比如 CPU 缓存、体系结构、编译器等,那就是性能工程师的领域了。
在 OpenResty 中有两个开源项目:openresty-systemtap-toolkit 和 stapxx 。它们是基于 Systemtap 封装好的工具集,用于 Nginx 和 OpenResty 的实时分析和诊断。它们可以覆盖 on CPU、off CPU、共享字典、垃圾回收、请求延迟、内存池、连接池、文件访问等常用的功能和调试场景。
在今天这节课中,我会带你浏览下这些工具和对应的使用方法,目的是帮你在遇到 Nginx 和 OpenResty 的疑难杂症时,可以快速找到定位问题的工具。在 OpenResty 的世界中,学会使用这些工具是你进阶的必经之路,也是和其他开发者沟通的非常有效的方式——毕竟,工具产生的数据,会比你用文字描述更加准确和详尽。
不过,需要特别注意的是,OpenResty 的最新版本 1.15.8 默认开启了 LuaJIT GC64 模式,但是 openresty-systemtap-toolkit 和 stapxx 并没有跟着做对应的修改,这就会导致里面的工具都无法正常使用。所以,你最好在 OpenResty 旧的 1.13 版本中来使用这些工具。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了OpenResty中两个基于Systemtap封装的开源项目:`openresty-systemtap-toolkit`和`stapxx`,并详细阐述了它们在Nginx和OpenResty的实时分析和诊断中的重要性。文章首先介绍了`ngx-lua-shdict`工具,用于分析Nginx的共享内存字典,并展示了其使用方法和实现原理。接着详细介绍了如何使用`sample-bt`和`sample-bt-off-cpu`来生成C级别和Lua级别的on CPU和off CPU火焰图,以及使用`epoll-loop-blocking-distr`分析延迟。此外,还介绍了`ngx-single-req-latency`工具,用于跟踪单个请求在OpenResty中各个阶段的耗时。文章强调了这些工具在解决Nginx和OpenResty的疑难杂症时的重要性,以及在使用开源项目时需要注意的一些问题。整体而言,本文为读者提供了一些高级技术工具的使用方法和原理,有助于他们在实际工作中快速定位和解决问题。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《OpenResty 从入门到实战》,新⼈⾸单¥59
《OpenResty 从入门到实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(8)
- 最新
- 精选
- manatee老师想请问下如果升级了最新的1.15.8版本,如何使用火焰图呢
作者回复: 编译的时候,把LuaJIT 的 64 位支持去掉
2019-08-2121 - HelloBug老师,对工作进程进行采样的时候,是否会对工作进程的性能产生可见的影响?
作者回复: 性能影响大概在 5% 以内。但是使用 systemtap 可能会对系统造成其他影响,我们之前遇到过采样脚本影响网络的事情。所以在生产环境采样还是要谨慎。
2019-09-03 - helloworldlocal require = require -- 老师, 代码文件开始需要加这条吗,我看有人这么干的。
作者回复: 如果你用了 luacheck 等代码风格的检测工具,是要这么做的,避免全局变量。
2019-08-19 - 罐头瓶子这个可以做一些更加深入的一些介绍么?
作者回复: 篇幅有限,这种优化工具需要合适的场景才更有代入感:) 你看下后面视频课里面的示例是否详细一些?
2019-08-192 - tenglonsen温老师,我现在有用openresty作为mysql的中间件来用,然而我们数据库中的数据存在很多大字段,业务方会通过http接口拉取大量数据,这样nginx的worker进程跑着跑着内存就到3G+去了,通过火焰图看出大部分CPU时间是在mysql.lua文件中,目前找了很久,没有好的思路去定位这个内存问题,只能每天定时重启一下。。。请问一下这个问题有什么好的定位方法没,或者说是不是openresty不适合这种大量数据的使用场景呢?2019-10-282
- Geek_584aa7除了这两款工具结合使用排查性能问题,还有其他开源工具吗?如果系统不是基于openresty但是也是基于ngnix+lua实现的,也能用您说的这两款工具结合排查性能问题吗?2021-09-291
- 贺钧威openresty xray 会不会比这些工具更好用?https://openresty.com/en/xray/2020-03-221
- 许童童老师来点图片,一图胜千言啊。2019-08-19
收起评论