Linux lua 性能,systemTab动态分析linux下lua性能

参考ngx-sample-lua-bt

现代linux 动态追踪技术 主要是基于 ebpf

systemtap 是 动态追踪的前端, 技术原理是 编译一个 类似c的脚本 生成 内核模块, 来监控用户空间的lua程序

对openResty的脚本改造两点,

1: 去掉nginx相关函数的 probe 探针

2:如何获取LuaState 状态机的方法 调整, 可以使用程序内部的 全局变量定义

if(\@defined(\@var("globalL", "$lua_path"))) {

L = \@var("globalL", "$lua_path")

}

对timer 采样也可以调整

timer.profile 每个CPU周期 timer.ms 是 定时毫秒

动态追踪核心:

定义probe 探针位置

定义timer 采样

在timer中判断 PID 进程ID, 来确定自己要观察的程序

timer.s 观察总时长后结束

systemtap 的堆栈格式是

一次堆栈每层 文件:行号 总共出现次数

fix-bt 之后 得到 lua 函数名字

flamegraph 的工具 stack stap 多行压缩到一行

最后生成 火焰图 分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值