《5.基于eBPF的程序摄像头—Trace Profiling的设想.pdf》由会员分享,可在线阅读,更多相关《5.基于eBPF的程序摄像头—Trace Profiling的设想.pdf(27页珍藏版)》请在三个皮匠报告上搜索。
1、首届中国首届中国eBPFeBPF研讨会研讨会基于基于eBPFeBPF的程序摄像头的程序摄像头Trace-ProfilingTrace-Profiling的的设想设想主讲人:苌程主讲人:苌程2022-11-122022-11-12首届中国首届中国eBPFeBPF研讨会研讨会苌程的自我介绍2010年浙江大学SEL实验室带队老师2016年谐云科技联合创始人兼CTO2022年创建Kindling开源项目首届中国首届中国eBPFeBPF研讨会研讨会目录目录0101云原生环境可观测性挑战云原生环境可观测性挑战0202老刑侦的破案经验与光学摄像头老刑侦的破案经验与光学摄像头0303基于基于eBPFeBPF的
2、程序摄像头构想的程序摄像头构想0404eBPFeBPF程序摄像头预期效果程序摄像头预期效果使用场景使用场景介绍介绍首届中国首届中国eBPFeBPF研讨会研讨会云原生环境可观测性挑战云原生环境可观测性挑战0101首届中国首届中国eBPFeBPF研讨会研讨会当前可观测性手段的不足当前可观测性手段的不足BCD为什么执行时间都达到了200ms以上?log?Trace?Metric?首届中国首届中国eBPFeBPF研讨会研讨会可观测性挑战:节点异常根因定位困难可观测性挑战:节点异常根因定位困难 系统层指标无法感知业务健康程度 Metric、Logging、Trace融合关联有难度首届中国首届中国eBPF
3、eBPF研讨会研讨会当前可观测性提供都是程序执行留痕当前可观测性提供都是程序执行留痕用户代码log与Trace能够部分解决用户代码层面的问题类jstack的线程剖析能够部分发现用户代码与类库代码现场metric可以覆盖从用户代码到系统调用库类库代码JVM代码glibc库系统调用这些代码为什么慢?为什么之前不慢?当前可观测性工具没有办法去发现这层的问题一般没有问题,有问题多半也是使用不当造成的首届中国首届中国eBPFeBPF研讨会研讨会老刑侦的破案经验老刑侦的破案经验与光学摄像头与光学摄像头纸上得来终觉浅,绝知此事要躬行。纸上得来终觉浅,绝知此事要躬行。0202首届中国首届中国eBPFeBPF研
4、讨会研讨会足迹衍生出来的知识足迹衍生出来的知识 根据经验:大部分人的脚印和身高的比大约是1:7 夏秋之夜,上半夜留下的脚印,上面往往有昆虫爬过的痕迹。下半夜留下的脚印,由于地面比较潮,泥土易碎裂,脚印的边缘往往不很清楚。少年罪犯步子短,脚印瘦小,脚印之间的距离往往不规则,步行的路线往往弯曲。青年罪犯往往脚印大,步子跨得大,脚印之间的距离均匀,走直线。中年罪犯走路稳、慢,脚印间的距离变短。老年罪犯的步幅变得更短,足迹中脚后跟的压力比脚掌重。脚印前浅后深一般前者多是运动员、工人等体力劳动者。脚印前深后浅政府公务员、律师、教师等 职业 首届中国首届中国eBPFeBPF研讨会研讨会打怪升级是专家涨经验
5、成长打怪升级是专家涨经验成长的必经的必经之路之路首届中国首届中国eBPFeBPF研讨会研讨会中国开始推广光学摄像头之后的新闻标题中国开始推广光学摄像头之后的新闻标题首届中国首届中国eBPFeBPF研讨会研讨会基于基于eBPFeBPF的程序摄像头构想的程序摄像头构想纸上得来终觉浅,绝知此事要躬行。纸上得来终觉浅,绝知此事要躬行。0303首届中国首届中国eBPFeBPF研讨会研讨会景象/光CMOS/CCD像素信号转换程序应用层代码Kindling内核Tracepoint内核kprobe内核系统调用等转换每秒钟景色都被记录每毫秒程序执行过程都被记录光学摄像头的工作与程序摄像头类比光学摄像头的工作与程
6、序摄像头类比首届中国首届中国eBPFeBPF研讨会研讨会业界已经有的基础业界已经有的基础CPU火焰图 OffCPU火焰图 首届中国首届中国eBPFeBPF研讨会研讨会按照程序执行过程对齐OnCPU与OffCPU到线程粒度程序在操作系统上执行过程首届中国首届中国eBPFeBPF研讨会研讨会程序摄像头的放大清晰效果关联Trace、metric、log程序在操作系统上执行过程onCPU与Offcpu都是线程执行情况的体现线程执行代码Trace执行以线程为执行单位OnCPU与OffCPU以线程为执行单位所有的日志输出都可以归类到某个线程输出首届中国首届中国eBPFeBPF研讨会研讨会将OnCPU与Of
7、fCPU执行过程按照线程与Trace关联形成程序摄像头通过程序摄像头观察ElasticSearch执行Bulk插入的情况首届中国首届中国eBPFeBPF研讨会研讨会程序摄像头在可观测性的生态中的位置关联tracing、metric、logtracing与与log关联关联tracing:代码维度log:代码维度traceid输出到日志当中即能很好的关联tracing与logtracing与与metric关联关联tracing:代码维度metric:资源维度为主除了时间关联,没有关联的keyKindling解法:解法:利用利用eBPF将线程执行将线程执行代码过程转换成资源消耗过程,然后代码过程转换
8、成资源消耗过程,然后每个环节在时间段关联相关每个环节在时间段关联相关metric首届中国首届中国eBPFeBPF研讨会研讨会程序摄像头标准的技术术语Trace Profiling首届中国首届中国eBPFeBPF研讨会研讨会eBPFeBPF程序摄像头预期效程序摄像头预期效果果使用场景介绍使用场景介绍纸上得来终觉浅,绝知此事要躬行。纸上得来终觉浅,绝知此事要躬行。0404首届中国首届中国eBPFeBPF研讨会研讨会程序摄像头在可观测性领域使用场景1、TOMCAT接受请求过程2、程序执行过程中锁占比时间比较长2、并发过高,线程池不够用3、程序由于Java GC导致执行时间较长4、程序自身执行了CPU
9、开销非常大的代码5、网络依赖执行较慢想了解程序异常退出最后现场吗?哪些线程在干什么?想了解程序执行时,依赖资源(网络、存储)是否正常响应吗?想知道线上故障,是否是依赖库有bug引起的吗?想知道机器IO遇到瓶颈点,程序在干什么导致的吗?想了解一次请求慢的过程吗?如何确认CPU资源在程序执行过程中产生了竞争?想了解程序hang住时,线程分别在做啥吗?想了解程序发生锁时相关线程的日志信息吗?锁持有的堆栈和被哪个线程长期占有?想了解程序CPU突然飙高的原因吗?想了解用户请求是否受到GC的影响吗?想了解高并发访问的情况下,用户请求是否有排队吗?增加线程池是否能够解决问题?当用户请求实际执行结果与预期不符合时,想了解实际执行请求的完整日志信息吗?首届中国首届中国eBPFeBPF研讨会研讨会TOMCATTOMCAT接受请求的接受请求的过程过程首届中国首届中国eBPFeBPF研讨会研讨会程序执行过程中锁占比时间比较长首届中国首届中国eBPFeBPF研讨会研讨会程序并发过高,线程池不够用首届中国首届中国eBPFeBPF研讨会研讨会Java程序由于GC的原因被暂停执行首届中国首届中国eBPFeBPF研讨会研讨会Java程序自身代码消耗较多的CPU首届中国首届中国eBPFeBPF研讨会研讨会Thanks!2022-11-