开源之夏是由“开源软件供应链照亮计划”发起并常年支持的一项暑假开源活动,借以鼓励在校中学生积极参与开源软件的开发维护,推动优秀开源软件社区的蓬勃发展,培养和开掘更多优秀的开发者。
选题
01
基于eBPF的无侵入式网路剖析工具(整合)
导师:helight
支持语言:英文
项目难度:进阶
导师联系邮箱:
技术领域标签:C、Bash、Codereview、Datastructures、Linux
题目描述
目标是剖析主机食指定进程或则服务网路情况。例如当处于流量高峰时间段时,服务可能会步入高负载状态。另外还有服务的一些并发量,调用延时,应用层和网路层的剖析。本课题要求才能在通常主机环境下都可以进行应用层合同和网路层剖析redhat linux,应用层合同剖析主要目标是剖析http合同(1.1,2,3);网路层合同主要剖析tcp/ip层。本题目要求在LMP现有子项目(),并将借鉴中的部份实现,基础之上继续迭代,并合并LMP下现有网路性能检测功能。
项目产出项目技术要求
选题
02
基于eBPF的无侵入式微服务恳求流量判断与重定向
导师:LinkinPF
支持语言:英文
项目难度:进阶
导师联系邮箱:
技术标签:C、Bash、Codequality、Codereview、Database
题目描述
在微服务系统中,当处于流量高峰时间段时,整个微服务集群会步入高负载状态。非常是当负载超过集群的最大承受能力时,都会造成特定节点的负载过低,因而未能处理后续的恳求。在微服务场景中,存在着服务实例的级联调用关系,一旦下游服务实例的节点失效,都会造成上游服务实例步入等待或崩溃的状态,因而就须要提早对可能失效的恳求进行拒绝,实现快速失败。目前,对恳求进行快速失败的过程须要通过侵入式手段sidecar来实现,或则使用iptables进行操作红旗linux系统下载,但这种方法多存在着性能和可操作性的问题,所以须要通过Linux内核的eBPF技术实现高效的恳求流量重定向判断,从而保证流量指向可用的服务实例。本题目要求在LMP现有sidecar子项目(github:linuxkerneltravel/lmp/tree/develop/eBPF_Supermarket/sidecar)基础之上继续迭代,并合并LMP下现有容器网路性能检测功能。
项目产出项目技术要求
选题
03
基于eBPF的Linux系统性能检测工具-进程画像
导师:陈继峰
支持语言:英文
项目难度:进阶
导师联系邮箱:
技术标签:c、Bash、Codereview、Datastructures、C++
题目描述
本题目要求参赛者完成一个Linux进程生命周期画像工具,通过该工具可以清晰展示出一个进程从创建到中止的完整生命周期。并须要额外展示进程生命周期中两大类信息,比如进程/线程持有锁的区间画像、进程/线程上下文切换缘由的标明、线程之间依赖关系(线程)、进程关联调用栈信息标明等,具体展示信息类别可以和社区导师商榷后确认。另外题目要求基于社区今年题目(github:linuxkerneltravel/lmp/tree/develop/eBPF_Supermarket/CPU_Subsystem)的基础之上,开发者须要在保留原有功能的前提下,加入更多的可视化元素和交互方法,致使整个画像愈发直观、易于理解。
项目产出项目技术要求
选题
04
使用Prometheus和Grafana建立Linux内核监控平台(基于eBPF程序采集内核数据)
导师:玖月
支持语言:英文
项目难度:进阶
导师联系邮箱:
技术标签:CSS、HTML、Git、HTTP、Linux、Markdown、Ubuntu
题目描述
目前LMP中维护了十多个eBPF工具,请使用Prometheus搜集和处理eBPF所采集的内核数据(比如:CPU使用率、内存使用率和c盘I/O等),可以参考使用opentelemetry设计思路,设计统一储存数据格式和储存方案,并使用Grafana将内核数据使用图表进行可视化展示,便捷进行内核数据剖析。
和相关eBPF程序开发朋友沟通eBPF程序的运行、数据采集和可视化图表等开发与使用流程,确定相关流程规范linux 内核视频,并编撰用户使用文档。
LMP链接:/linuxkerneltravel/lmp/tree/develop/eBPF_Supermarket
项目产出项目技术要求
选题
05
使用eBPF优化FUSEread方式性能
导师:陈老师
支持语言:英文
项目难度:进阶
导师联系邮箱:
技术标签:Codereview、Codequality、C++、DatastructuresC
题目描述:
FUSE(FilesysteminUserspace)是一个常用的用户空间文件系统框架,它容许用户空间程序实现自己的文件系统,但是可以通过内核的VFS(VirtualFileSystem)插口进行挂载和管理。并且,FUSE存在性能困局,其中之一就是在文件读取时存在显存拷贝,非常是在大量的小文件读取场景。
eBPF(ExtendedBerkeleyPacketFilter)是Linux内核提供的一种强悍的动态追踪和过滤技术,它可以使用户空间程序在不更改内核代码的情况下,对内核执行的系统调用、网络数据包等进行监控和处理。近些年来,eBPF早已成为了Linux系统中优化性能和安全的重要工具之一。
本题目致力探求使用eBPF技术优化FUSE文件系统的read性能,并在某一个场景下验证,比如大量小文件拷贝场景等,可与社区导师商榷后确定。
项目产出项目技术要求(起码2条)
选题
06
基于eBPF的调用栈统计工具
导师:刘老师
支持语言:英文
项目难度:进阶
邮箱:
技术标签:C、Codereview、Datastructures、Git、Linux
题目描述:
调用栈(CallStack)是程序运行时跟踪函数调用的一种机制。通过剖析调用栈,我们可以了解到程序的执行路径、函数之间的关系以及函数调用的次数等信息,对于程序优化、故障排查等都具有重要意义。调用栈信息庞大的缺点但是,调用栈信息常常十分庞大,尤其是在复杂的应用场景下,剖析和处理的效率十分低下,甚至难以完成。因而,针对调用栈的高效统计和剖析工具变得尤为重要。
对于调用栈的剖析,perf工具提供了多种排序、过滤等功能,可以帮助用户快速定位性能问题。本题目须要开发人员首先开发基于eBPF的调用栈统计工具,具体功能可以和社区导师结合实际环境下的场景确认,再度基础之上尝试多种调用栈剖析方案并落地实现,比如通过ebpf获取调用堆栈并借助map机制构建一个哈希表linux 内核视频,记录每位函数的调用次数、执行时间等信息,通过用户态程序从缓冲区中读取数据并进行剖析和展示;也可以尝试在用户空间进行调用栈统计剖析。同时要求该工具具有高效、精确、可扩充等特征,才能在生产环境下快速定位性能问题。
项目产出项目技术要求(起码2条)
关于Linux内核之旅
目前Linux内核之旅之下有五大蓝筹股和一个开源项目,欢迎诸位有志之士加入我们贡献力量。
Linux内核之旅陌陌公众号平台:传播媒介
公众号二维码
Linux内核之旅开源社区网站:文章内容输出平台
Linux内核之旅开源社区地址:
参与社区投稿形式:
Linux内核之旅开源社区的GitHub平台:协作平台
代码分享和学习的GitHub地址:
学堂在线mooc:Linux内核课程输出平台
陈莉君老师的内核mooc学习报考:
Linux内核视频网站:内核学习视频分享平台
陈老师详尽的课堂视频地址:
开源项目:LMP(Linuxmicroscope)
LMP是基于BCC(BPFCompilerCollection)实时展示Linux系统性能数据的Web工具,它使用BPF(BerkeleyPacketFilter),亦称为eBPF。目前LMP在ubuntu18.04上测试,内核版本为4.15.0。
库房:
END
本文原创地址://q13zd.cn/kyzxjyedwqrs.html编辑:刘遄,审核员:暂无