V
主页
京东 11.11 红包
【案例分享】使用profiler对比不同版本的行为,及早发现“隐藏”问题;顺便记一次吐血做完的kernel bisect!
发布人
这期视频跟大家分享个使用profiler的案例,顺便再为这个简单的profiler打个广告(https://github.com/zq-david-wang/linux-tools/tree/main/perf/profiler): linux kernel 6.6.0 vs 6.7.0-rc1 在fio的负载下, profiling数据发生明显变化。 在6.6.0和6.7.0-rc1之间有将近16k的commit,bisect了14+次, 1. 编译kernel (跳动比较大的时候要编译1个小时左右....) 2. 安装kernel 3. 重启 4. 10分钟 fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test --bs=4k --iodepth=64 --size=1G --readwrite=randrw --runtime=600 --numjobs=4 --time_based=1 终于定位到first bad commit: [f06cc667f79909e9175460b167c277b7c64d3df0] perf: Optimize perf_cgroup_switch() 直接测试6.7.0-rc1 和 6.7.0-rc1+revert f06cc667f79, 可以确定f06cc667f79的确是产生差异的commit。 非常巧合的发现 1. 我突然想要作profiling 2. fio测试触发大量的上下文切换 3. 我的profiler使用cgroup 4. 这个在6.7.0加入的perf改动f06cc667f79就是针对cgroup和上下文切换!!!! 这个世界有点巧合的不大真实,o(∩∩)o...哈哈 目前的结论是:regression!profiling在6.7.0上压测cgroup+IO,会丢失10%~20%的samples 等待社区的反馈 https://lore.kernel.org/lkml/449fb8d2.27fb.18bcc190021.Coremail.00107082@163.com/T/#u
打开封面
下载高清视频
观看高清视频
视频下载器
利用Linux Kernel的perf功能和ebpf的辅助,我要写个自己的profiler 之 第一章:callstack的采集以及如何从函数地址定位到函数名
仅利用Linux kernel的perf, 外加readelf工具,自己写一个cpu profiler之第三章:我要投诉~!ebpf有虚假/过度宣传的嫌疑哈~
【linux】kernel学习笔记系列:cgroup cpu throttle的逻辑初步分析
仅用Linux kernel perf提供的功能,C++实现的轻量级CPU Profiler源码发布~!
【经验分享】ipset swap性能问题分析:kernel 6.7.0的ipset_swap慢了+1000倍!!但是profiler采样又采不到..
【Linux】kernel 6.10第一个正式版本发布:瞎搀和比较多的一个版本,nvidia驱动依然很会触发kernel warn
激动的心颤抖的手,提交人生第一个linux kernel补丁:uprobe的ebpf handler会收到不匹配的事件
【经验分享】使用profiler分析性能变化,快速定位问题,减少bisect的范围: linux mmap/munmap性能变差很多!!
linux kernel 6.6第一个正式版本“勉强”发布:个人体感平平无奇的一个版本
【Linux】Kernel 6.11征程开启!改动不是太大,sched_ext终究还是没能在这个版本集成进来,不过这个版本我的一个鸡肋patch进来了啦!!
【Linux】kernel 6.11第一个正式版本发布:这个版本阶段瞎搀和了好多;sched_ext大概率会在下个版本进来,的吧?
为提升算法/数学水平这周我都做了啥系列[2022-10-02],Algorithms by Jeff Erickson
【linux】kernel学习笔记系列:CPU load balance入门,尝试调整load balance的频率
【Linux】kernel 6.12-rc2发布:bcachefs又有摩擦,开发模式需要在mainline kernel社区中继续磨合
linux kernel 6.4新增eBPF类型BPF_PROG_TYPE_NETFILTER初探一:基本的使用方法
【linux】bcachefs初体验(kernel 6.9.0-rc4):性能很差,感觉“非常”不适合个人用户使用...
使用ebpf跟踪(tracing)kernel的第二个优势:在kernel内部完成“简单”的数据统计
[浅谈linux系统监控] 经验变成"错误经验"的案例分享:nr_kernel_stack已经不是以前那个nr_kernel_stack,而且..已经变了5年多
利用Linux kernel的perf,ebpf和readelf,我要写个自己的profiler,第二章: 基本功能呈现
使用Linux kernel ip tunnels功能,仅需2步即可打通各个节点之间的容器网络通讯
【Linux】kernel 6.11-rc2发布: 我的Reported-by贡献+1; nvidia驱动更新
linux kernel 6.5新接口cachestat初探:利用文件的cache统计信息作针对性的性能优化!关注数据后台性能,cachestat不容错过!
【linux】kernel学习笔记系列:如何在cgroup的内核文件系统里增加一个节点
使用cpu profiler分析环境差异造成的应用的性能差异之 seccomp tracer和overlay fs对高IO应用的性能影响
【浅聊linux系统监控】监控/分析节点的网络链接行为
Linux kernel网络数据包的调度管理入门,AKA. Traffic Control: 来个简单的bpf程序来针对指定IP模拟网络延时
【Linux】kernel 6.11-rc5发布:庆祝LINUX系统问世33周年!!!!!
Linux kernel 6.x试用,没有惊喜也没有惊吓 (nvidia linux显卡驱动520版本跟6.1是匹配的)
【Linux】kernel 6.8正式发布:没有扑捉到亮点的一个版本;不过在git日志里能看到自己的ID,也算是前进了一小步吧^_^
【Linux】kernel 6.12征程开启:问题不少,但是能用,^_^,我又有鸡肋patch进来了哈
使用Linux seccomp接口,换个姿势来限制进程对kernel的系统调用~来写写(c)bpf的汇编代码吧
使用Linux kernel cgroup(v2) bpf 和netem来捣捣乱:只针对某组进程增加网络延时的模拟而不影响其他应用
使用Linux kernel kprobe某些“可疑”的内核函数来触发profiler的数据采集,反向定位哪个应用/模块可能存在性能隐患
【浅聊linux系统监控】开篇:cpu的监控数据源(以及prometheus体系在“传统”系统中的安装使用)
【经验分享】Linux容器网络问题排查之ipvs版本的我自己想访问我自己
【linux】kernel 6.9正式发布:又是一个体感平平无奇不怎么有意思的版本...
Linux Kernel 6.5第一个正式版本发布
linux kernel 6.5征程正式开启!6.5.0-rc1发布:一个新的syscall加入,内存slab->slub, nvidia驱动又得调整!
使用linux kernel perf接口在kprobe的断点上采集数据入门篇:采集任意kernel函数的调用参数
【经验分享】Linux容器网络问题排查之我自己想访问我自己