开源之夏:基于 eBPF 的无侵入式网络分析工具,助力开源软件发展

wufei123 2024-06-04 阅读:28 评论:0
开源之夏是由“开源软件供应链照亮计划”发起并常年支持的一项暑假开源活动,借以鼓励在校中学生积极参与开源软件的开发维护,推动优秀开源软件社区的蓬勃发展,培养和开掘更多优秀的开发者。 选题 01 基于eBPF的无侵入式网路剖析工具(整合) 导师...

开源之夏是由“开源软件供应链照亮计划”发起并常年支持的一项暑假开源活动,借以鼓励在校中学生积极参与开源软件的开发维护,推动优秀开源软件社区的蓬勃发展,培养和开掘更多优秀的开发者。

选题

01

基于eBPF的无侵入式网路剖析工具(整合)

导师:helight

支持语言:英文

项目难度:进阶

导师联系邮箱:

技术领域标签:C、Bash、Codereview、Datastructures、Linux

题目描述

目标是剖析主机食指定进程或则服务网路情况。例如当处于流量高峰时间段时,服务可能会步入高负载状态。另外还有服务的一些并发量,调用延时,应用层和网路层的剖析。本课题要求才能在通常主机环境下都可以进行应用层合同和网路层剖析,应用层合同剖析主要目标是剖析http合同(1.1,2linux操作系统课程设计报告,3);网路层合同主要剖析tcp/ip层。本题目要求在LMP现有子项目(),并将借鉴中的部份实现,基础之上继续迭代,并合并LMP下现有网路性能检测功能。

项目产出项目技术要求

选题

02

linux操作系统课程设计报告_linux课程设计_linux课程设计实验报告

基于eBPF的无侵入式微服务恳求流量判断与重定向

导师:LinkinPF

支持语言:英文

项目难度:进阶

导师联系邮箱:

技术标签:C、Bash、Codequality、Codereview、Database

题目描述

在微服务系统中,当处于流量高峰时间段时,整个微服务集群会步入高负载状态。非常是当负载超过集群的最大承受能力时,都会造成特定节点的负载过低,因而未能处理后续的恳求。在微服务场景中,存在着服务实例的级联调用关系,一旦下游服务实例的节点失效,都会造成上游服务实例步入等待或崩溃的状态,因而就须要提早对可能失效的恳求进行拒绝,实现快速失败。目前,对恳求进行快速失败的过程须要通过侵入式手段sidecar来实现,或则使用iptables进行操作,但这种方法多存在着性能和可操作性的问题,所以须要通过Linux内核的eBPF技术实现高效的恳求流量重定向判断,从而保证流量指向可用的服务实例。本题目要求在LMP现有sidecar子项目(github:linuxkerneltravel/lmp/tree/develop/eBPF_Supermarket/sidecar)基础之上继续迭代,并合并LMP下现有容器网路性能检测功能。

项目产出项目技术要求

选题

03

基于eBPF的Linux系统性能检测工具-进程画像

导师:陈继峰

支持语言:英文

项目难度:进阶

linux操作系统课程设计报告_linux课程设计_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将内核数据使用图表进行可视化展示,便捷进行内核数据剖析。

linux课程设计实验报告_linux课程设计_linux操作系统课程设计报告

和相关eBPF程序开发朋友沟通eBPF程序的运行、数据采集和可视化图表等开发与使用流程,确定相关流程规范,并编撰用户使用文档。

LMP链接:/linuxkerneltravel/lmp/tree/develop/eBPF_Supermarket

项目产出项目技术要求

选题

05

使用eBPF优化FUSEread方式性能

导师:陈老师

支持语言:英文

项目难度:进阶

导师联系邮箱:

技术标签:Codereview、Codequality、C++、DatastructuresC

题目描述:

FUSE(FilesysteminUserspace)是一个常用的用户空间文件系统框架,它容许用户空间程序实现自己的文件系统,但是可以通过内核的VFS(VirtualFileSystem)插口进行挂载和管理。并且,FUSE存在性能困局,其中之一就是在文件读取时存在显存拷贝,非常是在大量的小文件读取场景。

eBPF(ExtendedBerkeleyPacketFilter)是Linux内核提供的一种强悍的动态追踪和过滤技术,它可以使用户空间程序在不更改内核代码的情况下,对内核执行的系统调用、网络数据包等进行监控和处理。近些年来linux 命令,eBPF早已成为了Linux系统中优化性能和安全的重要工具之一。

本题目致力探求使用eBPF技术优化FUSE文件系统的read性能,并在某一个场景下验证,比如大量小文件拷贝场景等,可与社区导师商榷后确定。

linux课程设计实验报告_linux课程设计_linux操作系统课程设计报告

项目产出项目技术要求(起码2条)

选题

06

基于eBPF的调用栈统计工具

导师:刘老师

支持语言:英文

项目难度:进阶

邮箱:

技术标签:C、Codereview、Datastructures、Git、Linux

题目描述:

调用栈(CallStack)是程序运行时跟踪函数调用的一种机制。通过剖析调用栈,我们可以了解到程序的执行路径、函数之间的关系以及函数调用的次数等信息,对于程序优化、故障排查等都具有重要意义。调用栈信息庞大的缺点但是linux 分区,调用栈信息常常十分庞大,尤其是在复杂的应用场景下,剖析和处理的效率十分低下,甚至难以完成。因而,针对调用栈的高效统计和剖析工具变得尤为重要。

对于调用栈的剖析,perf工具提供了多种排序、过滤等功能,可以帮助用户快速定位性能问题。本题目须要开发人员首先开发基于eBPF的调用栈统计工具,具体功能可以和社区导师结合实际环境下的场景确认,再度基础之上尝试多种调用栈剖析方案并落地实现,比如通过ebpf获取调用堆栈并借助map机制构建一个哈希表linux操作系统课程设计报告,记录每位函数的调用次数、执行时间等信息,通过用户态程序从缓冲区中读取数据并进行剖析和展示;也可以尝试在用户空间进行调用栈统计剖析。同时要求该工具具有高效、精确、可扩充等特征,才能在生产环境下快速定位性能问题。

项目产出项目技术要求(起码2条)

关于Linux内核之旅

目前Linux内核之旅之下有五大蓝筹股和一个开源项目,欢迎诸位有志之士加入我们贡献力量。

linux课程设计实验报告_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

以上就是开源之夏:基于 eBPF 的无侵入式网络分析工具,助力开源软件发展的详细内容,更多请关注知识资源分享宝库其它相关文章!

版权声明

本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com

分享:

扫一扫在手机阅读、分享本文

发表评论
热门文章
  • BioWare埃德蒙顿工作室面临关闭危机,龙腾世纪制作总监辞职引关注(龙腾.总监.辞职.危机.面临.....)

    BioWare埃德蒙顿工作室面临关闭危机,龙腾世纪制作总监辞职引关注(龙腾.总监.辞职.危机.面临.....)
    知名变性人制作总监corrine busche离职bioware,引发业界震荡!外媒“smash jt”独家报道称,《龙腾世纪:影幢守护者》制作总监corrine busche已离开bioware,此举不仅引发了关于个人职业发展方向的讨论,更因其可能预示着bioware埃德蒙顿工作室即将关闭而备受关注。本文将深入分析busche离职的原因及其对bioware及游戏行业的影响。 Busche的告别信:挑战与感激并存 据“Smash JT”获得的内部邮件显示,Busche离职原...
  • 闪耀暖暖靡城永恒怎么样-闪耀暖暖靡城永恒套装介绍(闪耀.暖暖.套装.介绍.....)

    闪耀暖暖靡城永恒怎么样-闪耀暖暖靡城永恒套装介绍(闪耀.暖暖.套装.介绍.....)
    闪耀暖暖钻石竞技场第十七赛季“华梦泡影”即将开启!全新闪耀性感套装【靡城永恒】震撼来袭!想知道如何获得这套精美套装吗?快来看看吧! 【靡城永恒】套装设计理念抢先看: 设计灵感源于夜色中的孤星,象征着淡然、漠视一切的灰色瞳眸。设计师希望通过这套服装,展现出在虚幻与真实交织的夜幕下,一种独特的魅力。 服装细节考究,从面料的光泽、鞋跟声响到裙摆的弧度,都力求完美还原设计初衷。 【靡城永恒】套装设计亮点: 闪耀的绸缎与金丝交织,轻盈的羽毛增添华贵感。 这套服装仿佛是从无尽的黑...
  • python怎么调用其他文件函数

    python怎么调用其他文件函数
    在 python 中调用其他文件中的函数,有两种方式:1. 使用 import 语句导入模块,然后调用 [模块名].[函数名]();2. 使用 from ... import 语句从模块导入特定函数,然后调用 [函数名]()。 如何在 Python 中调用其他文件中的函数 在 Python 中,您可以通过以下两种方式调用其他文件中的函数: 1. 使用 import 语句 优点:简单且易于使用。 缺点:会将整个模块导入到当前作用域中,可能会导致命名空间混乱。 步骤:...
  • 斗魔骑士哪个角色强势-斗魔骑士角色推荐与实力解析(骑士.角色.强势.解析.实力.....)

    斗魔骑士哪个角色强势-斗魔骑士角色推荐与实力解析(骑士.角色.强势.解析.实力.....)
    斗魔骑士角色选择及战斗策略指南 斗魔骑士游戏中,众多角色各具特色,选择适合自己的角色才能在战斗中占据优势。本文将为您详细解读如何选择强力角色,并提供团队协作及角色培养策略。 如何选择强力角色? 斗魔骑士的角色大致分为近战和远程两种类型。近战角色通常拥有高攻击力和防御力,适合冲锋陷阵;远程角色则擅长后方输出,并依靠灵活走位躲避攻击。 选择角色时,需根据个人游戏风格和喜好决定。喜欢正面硬刚的玩家可以选择战士型角色,其高生命值和防御力能承受更多伤害;偏好策略性玩法的玩家则可以选择法...
  • 奇迹暖暖诸星梦眠怎么样-奇迹暖暖诸星梦眠套装介绍(星梦.暖暖.奇迹.套装.介绍.....)

    奇迹暖暖诸星梦眠怎么样-奇迹暖暖诸星梦眠套装介绍(星梦.暖暖.奇迹.套装.介绍.....)
    奇迹暖暖全新活动“失序之圜”即将开启,参与活动即可获得精美套装——诸星梦眠!想知道这套套装的细节吗?一起来看看吧! 奇迹暖暖诸星梦眠套装详解 “失序之圜”活动主打套装——诸星梦眠,高清海报震撼公开!少女在无垠梦境中,接受星辰的邀请,馥郁芬芳,预示着命运之花即将绽放。 诸星梦眠套装包含:全新妆容“隽永之梦”、星光面饰“熠烁星光”、动态特姿连衣裙“诸星梦眠”、动态特姿发型“金色绮想”、精美特效皇冠“繁星加冕”,以及动态摆件“芳馨酣眠”、“沉云余音”、“流星低语”、“葳蕤诗篇”。...