nchan 火焰图学习

网友投稿 645 2022-09-26

nchan 火焰图学习

nchan 火焰图学习

主要是想学习下nchan nginx 模块的生命周期阶段函数,为了方便直接基于openresty+perf 搞了一个docker 镜像 方便了解nchan 的阶段处理

docker 镜像构建

具体参考github 文档, ​​集成

FROM dalongrong/openresty-tengine:debug-njs

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk update && apk upgrade

RUN apk add --no-cache perf

已经构建好的镜像​​dalongrong/openresty-tengine:debug-njs-perf​​

参考使用

具体可以参考gihtub rongfengliang/openresty-nchan,对于容器运行核心是cap 能力的添加,比如如下,我为了方便直接添加的ALL 运行命令

sh -c " echo 0 > /proc/sys/kernel/kptr_restrict"

perf record -ag -F 99 1

docker-compose 部分配置

app:

image: dalongrong/openresty-tengine:debug-njs-perf

privileged: true

cap_add:

- ALL

ports:

- "80:80"

volumes:

- "./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf"

效果

对于生成的perf 文件,我是基于flamescope 工具分析的,很方便火焰图生成分析工具

redis event 处理

从下图可以看出,实际上作者的演讲中有提到

pubsub 指令的处理

说明

我已经共享了一个到github 可以参考 ​​,结合火焰图可以更好的了解nchan 的机制

参考资料

​​​​​​​​javascript:void(0)​​​ ​​​https://github.com/rongfengliang/openresty-perf/blob/main/nchan.perf​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:纸片人再攻一城,国漫营销能有多吸睛?
下一篇:基于typescript 开发njs 模块的一个玩法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~