-
Notifications
You must be signed in to change notification settings - Fork 51
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
14 additions
and
70 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,8 @@ | ||
--- | ||
title : "社区项目" | ||
title : "内核项目" | ||
date : "2020-05-29T13:47:08+02:00" | ||
--- | ||
|
||
> 本页面所有项目参与开源软件供应链点亮计划暑期 2021 项目活动,如您参与,请先仔细阅读[学生指南](https://summer.iscas.ac.cn/help/student/)。 | ||
## 基于eBPF的网络性能监控与异常检测 | ||
|
||
- 项目ID: 210520870 | ||
|
@@ -15,9 +13,6 @@ date : "2020-05-29T13:47:08+02:00" | |
|
||
随着网络规模的不断扩大,网络性能异常的问题越来越突出,网络性能的监控与异常检测尤为重要。网络故障或网络入侵等通常会引起网络性能异常,网络异常检测是维护网络正常运行、确保网络安全的一个重要手段。异常检测首先建立系统、网络和程序的正常模式,在后续检测过程,把偏离该模式的行为判定为网络异常事件或行为。传统的网络性能一般通过网络测量、 SNMP 或系统日志的方式计算得到,本课题要求基于eBPF技术进行获取网络性能数据。首先,分析Linux内核源代码,找出网络性能指标的监控点,使用eBPF技术提取内核网络性能数据,并进行可视化展示。其次,选择合适的算法检测网络性能的异常状况。异常检测可以分为固定阈值检测或自适应检测。目前采用的异常检测方法和基于固定阈值过滤的策略,其基本思想是对每种性能值设定一个阈值,性能数据超过阈值便被认定为异常事件。自适应异常检测算法,通常可以分为 3 种类型:基于统计特征的算法 ,基于机器学习的算法和基于数据挖掘的算法。最后,对接到社区项目LMP中,并能够成功运行。 | ||
|
||
- 项目社区导师:陈莉君 | ||
- 导师联系方式:<[email protected]> | ||
|
||
## Linux内核下系统内存及进程内存相关信息提取及预测 | ||
|
||
- 项目ID: 210520871 | ||
|
@@ -28,9 +23,6 @@ date : "2020-05-29T13:47:08+02:00" | |
|
||
首先:本题需要提取下列4个指标: 全系统的内存水位变化 按内存段提取进程的内存用量 按进程提取页换入信息 按进程提取巨页缺页错误相关信息 其次:要求从Linux内核中实时提取到相关数据后,经过处理,可以在网页前端展示系统当前的内存情况,并且需要将该功能实现为社区项目LMP的插件,并成功对接到LMP中 最后:需要选择一个合适的预测算法,根据当前内存指标情况,给出下个阶段可能的指标大小,其中指标数据需要存放在LMP的数据存储模块中,并且需要将该模型对接到社区项目LMP中,并能够成功运行。 | ||
|
||
- 项目社区导师:陈莉君 | ||
- 导师联系方式:<[email protected]> | ||
|
||
## LMP下数据处理的支持 | ||
|
||
- 项目ID: 210520872 | ||
|
@@ -41,9 +33,6 @@ date : "2020-05-29T13:47:08+02:00" | |
|
||
LMP是一个基于BCC(BPF Compiler Collection)的Linux系统性能数据实时展示的web工具,是Linux内核之旅社区项目。LMP项目正在规划数据处理功能,即数据采集模块提取到性能数据后,会将数据保存到数据存储模块,但是这些数据是原始数据,并不能直接交给机器学习模型处理,本题目需要实现数据存储模块中数据的预处理功能,例如数据清洗、数据转换、数据标准化等,并且需要采用不同方式来实现以上功能,所有功能需要对接到LMP项目中,并且可以正常使用。 | ||
|
||
- 项目社区导师:陈莉君 | ||
- 导师联系方式:<[email protected]> | ||
|
||
## HTTP、DNS网络态势预测 | ||
|
||
- 项目ID: 210520877 | ||
|
@@ -53,9 +42,6 @@ date : "2020-05-29T13:47:08+02:00" | |
- 项目描述 | ||
LMP是一个基于BCC(BPF Compiler Collection)的Linux系统性能数据实时展示的web工具,是Linux内核之旅社区项目。eBPF技术的出现使得我们可以更为精确地提取网络指标,因此本题目要求使用eBPF技术实现HTTP、DNS的性能监控,不限于传统的网络指标,需要探索Linux内核中可以利用的HTTP、DNS数据,要求至少从以下6个处理维度中选取4个维度对HTTP、DNS性能进行刻画展示:1、HTTP请求;2、HTTP响应;3、HTTP延时;4、DNS请求5、DNS响应6、DNS延时,从而达到探索Linux内核的目的。所有指标需要以插件形式成功对接到LMP项目之中。 | ||
|
||
- 项目社区导师:刘钊远 | ||
- 导师联系方式:<[email protected]> | ||
|
||
## LMP下数据存储模块的优化 | ||
- 项目ID: 210520878 | ||
- 难 度:低 | ||
|
@@ -64,9 +50,6 @@ date : "2020-05-29T13:47:08+02:00" | |
- 项目描述: | ||
LMP是一个基于BCC(BPF Compiler Collection)的Linux系统性能数据实时展示的web工具,是Linux内核之旅社区项目。目前LMP项目中,插件提取的性能数据全部存储于influxdb中,本题目要求将目前项目中的数据存储模块中数据库换为ES数据库,并可正常支持项目目前的所有功能,并需要提供详细的文档说明。 | ||
|
||
- 项目社区导师:刘钊远 | ||
- 导师联系方式:<[email protected]> | ||
|
||
## LMP下应用程序进程线程的动态捕获 | ||
- 项目ID: 210520879 | ||
- 难 度:低 | ||
|
@@ -75,9 +58,6 @@ date : "2020-05-29T13:47:08+02:00" | |
|
||
LMP是一个基于BCC(BPF Compiler Collection)的Linux系统性能数据实时展示的web工具,是Linux内核之旅社区项目。本题目要求利用eBPF技术实现应用程序进程线程的动态捕获,通过在内核中找到进程/线程的入口函数和出口函数,动态捕获应用程序在运行过程中产生的进程或者线程,并且需要成功对接到LMP项目中,且捕获到的PID等信息可以为其余插件服务。 | ||
|
||
- 项目社区导师:刘钊远 | ||
- 导师联系方式:<[email protected]> | ||
|
||
## 通过预选重要内核参数实现更快的IO性能调优 | ||
- 项目ID: 210520873 | ||
|
||
|
@@ -89,10 +69,6 @@ date : "2020-05-29T13:47:08+02:00" | |
|
||
IO子系统拥有许多能够显著影响Linux系统行为的内核参数,调整这些参数可以显著提高性能。由于IO系统可调节参数较多,自动调优框架会花费大量时间探索庞大的配置空间,并且需要随着工作负载的变化而重复这一过程。 研究表明,有些参数相比其他参数对性能的影响更大,因此关注数量较少的更重要的参数可以加快自动调整系统的速度,因为需要探索的参数空间较小。 本题目要求设计并实现一个框架,首先能够对IO子系统全部可调节参数形成的参数空间进行合理降维,依据降维后的参数空间作为当前系统配置,运行工作负载并记录该点的性能指标(例如吞吐量、延时),输出配置空间中的点和对应的性能指标形成数据集。 然后提出重要性指标,通过机器学习方法预选出重要参数并进行重要性排序,能够使用前端页面展示当前IO子系统的Top5重要参数。 最后,选手可自行选择离线训练或者在线训练的方式预选重要参数,离线训练时间应尽可能短,预选参数达到的性能尽可能高,参数空间覆盖面应尽可能广。 | ||
|
||
- 项目社区导师:许振文 | ||
|
||
- 导师联系方式:<[email protected]> | ||
|
||
## Linux内核TCP性能分析工具 | ||
- 项目ID: 210520874 | ||
|
||
|
@@ -104,10 +80,6 @@ date : "2020-05-29T13:47:08+02:00" | |
|
||
LMP(Linux microscope)是Linux内核之旅社区开发的一款基于BCC(BPF Compiler Collection)的Linux系统性能数据实时展示的web工具,是Linux内核之旅社区项目。TCP虽然作为可靠的传输层网络协议,但在最初设计的时候并没有把所有的应用场景考虑到,大型网络相关项目开发时往往会考虑优化TCP协议性能,这就需要提供TCP协议性能分析工具提供运维测试,eBPF技术的出现使得我们从内核角度去看待网络性能,因此本题目要求使用eBPF技术实现TCP层的性能监控,不限于传统的网络指标,需要探索Linux内核中TCP层有哪些可以利用的数据,要求至少从Linux内核中以下5个处理维度中选取4个维度对TCP性能进行刻画展示:1、数据包连接、传输情况;2、丢包或重传;3、拥塞控制;4、Conncet(三次握手)连接延迟、5、HTTP处理,并且需要采用BCC方式开发,并成功对接到社区LMP项目中。 | ||
|
||
- 项目社区导师:许振文 | ||
|
||
- 导师联系方式:<[email protected]> | ||
|
||
## LMP(Linux microscope)项目插件添加 | ||
- 项目ID: 210520875 | ||
|
||
|
@@ -119,10 +91,6 @@ date : "2020-05-29T13:47:08+02:00" | |
|
||
LMP(Linux microscope)是Linux内核之旅社区开发的一款基于BCC(BPF Compiler Collection)的Linux系统性能数据实时展示的web工具,与常规Linux系统性能数据展示工具不同,该项目是一种内核态监控方案,目前在ubuntu18.04上测试通过,内核版本4.15.0。LMP数据提取模块支持多种插件类型,包括BCC插件、CBPF插件、SHELL插件等。目前项目主体架构开发已经完成,但bcc插件数量较少,使得LMP无法发挥出其真正能力,故需要向LMP中添加插件,丰富插件库,更好的支撑项目发展。在BCC现有工具中,对接包括scheduler、Virtual Memory、Sockets、TCP/UDP、VFS、File Systems、Volume Manager、Block Device等子系统的性能监测工具到LMP系统之中。 | ||
|
||
- 项目社区导师:许振文 | ||
|
||
- 导师联系方式:<[email protected]> | ||
|
||
## LMP项目前端网页优化 | ||
|
||
- 项目ID: 210520867 | ||
|
@@ -134,10 +102,6 @@ date : "2020-05-29T13:47:08+02:00" | |
- 项目描述: | ||
|
||
LMP是一个基于BCC(BPF Compiler Collection)的Linux系统性能数据实时展示的web工具,是Linux内核之旅社区项目。LMP项目目前需要优化前端页面,本题目要求采用vue框架,配合后端逻辑实现前端指标展示、指标选取、指标状态展示和性能数据可视化展示功能,要求功能完备,页面美观。 | ||
|
||
- 项目社区导师:陈继峰 | ||
|
||
- 导师联系方式:<[email protected]> | ||
|
||
## 基于eBPF的DDos攻击检测 | ||
- 项目ID: 210520868 | ||
|
@@ -150,10 +114,6 @@ date : "2020-05-29T13:47:08+02:00" | |
|
||
网络安全问题一直是人们最关注的问题之一。ddos攻击仍是最常见、最常用的的一种攻击手段。 由于其使用简单、攻击效果明显能够快速的消耗系统资源,使得正常的服务请求不能够正常访问。因此,如果能够追踪不同的ddos攻击方式在linux系统攻击的过程。提取ddos在攻击过程中表现出的不同的一些行为特征和指标数据,进行检测分析,对系统防御具有重要的意义。eBPF技术在系统追踪、观测、性能调优、安全和网络领域发挥着重要的角色。eBPF技术的出现对ddos攻击的过程进行跟踪观测成为了可能。因此本题目要求通过eBPF技术提取ddos攻击在linux系统的指标数据。设计出相应的检测算法,算法要能够进行ddos攻击的溯源,找到攻击的源头。最后,可以使用xdp技术对攻击的源头进行防御,数据提取功能和检测算法需要对接到LMP项目中。 | ||
|
||
- 项目社区导师:陈继峰 | ||
|
||
- 导师联系方式:<[email protected]> | ||
|
||
## LMP项目下插件API的优化 | ||
|
||
- 项目ID: 210520869 | ||
|
@@ -166,10 +126,6 @@ date : "2020-05-29T13:47:08+02:00" | |
|
||
LMP是一个基于BCC(BPF Compiler Collection)的Linux系统性能数据实时展示的web工具,是Linux内核之旅社区项目。目前LMP项目中支持接入BCC类型的插件,每一个插件需要调用项目提供的API接口才能将性能数据写入到influxdb数据库。本题目要求优化API接口和插件管理,设计出一套较为完善和稳定的API接口,并优化所有的插件管理,例如目录管理等。 | ||
|
||
- 项目社区导师:陈继峰 | ||
|
||
- 导师联系方式:<[email protected]> | ||
|
||
## NUMA节点的CPU UNCORE共享资源的争用感知与评估 | ||
|
||
- 项目ID: 210520848 | ||
|
@@ -182,10 +138,6 @@ date : "2020-05-29T13:47:08+02:00" | |
|
||
NUMA架构是目前商用服务器使用的一种主流架构,其分布式内存设计提高了多处理器系统的可扩展性。但是,NUMA下各种共享资源的争用却影响着应用程序的性能。共享资源竞争主要发生在节点内处理器的UNCORE部分,其包含了三种主要的竞争资源:LLC( Last Level Cache)、 QPI链路和内存控制器(IMC),这三种访存性能事件可以反映节点的访存压力情况。因此,感知NUMA内节点的访存压力情况,对于指导多线程应用程序的优化具有重要作用。本题目首先要求自己设计并实现一种框架,在内核态下从Intel处理器的PMU中读取UNCORE的三种访存性能事件类型(LLC、QPI、IMC)的计数值,并在用户态进行展示。三种类型下具体的访存性能事件的选取由自己选定,所选取的性能事件需要能反映出当前节点的访存压力情况。其次,用户态程序需要依据性能事件计数值评估每个节点的访存压力,并依据压力由高到低将节点进行排序。最后,要求所实现框架能够成功运行。 | ||
|
||
- 项目社区导师:赵晨雨 | ||
|
||
- 导师联系方式:<[email protected]> | ||
|
||
## LMP项目下插件和数据提取功能的优化 | ||
- 项目ID: 210520864 | ||
|
||
|
@@ -197,10 +149,6 @@ date : "2020-05-29T13:47:08+02:00" | |
|
||
LMP是一个基于BCC(BPF Compiler Collection)的Linux系统性能数据实时展示的web工具,是Linux内核之旅社区项目。目前LMP项目中,插件在执行过程中会直接将性能数据存放到数据存储模块中,因为eBPF的特性,在磁盘IO等场景会出现数据提取和存储死循环的问题,现需要将数据提取和数据存储隔离为两个服务,该功能方案较多,需要提出不同的方案并比较优劣,选取最佳方案实现,在此过程中可以优化LMP插件API。 | ||
|
||
- 项目社区导师:赵晨雨 | ||
|
||
- 导师联系方式:<[email protected]> | ||
|
||
## Linux内核下CPU cache统计及预测 | ||
- 项目ID: 210520865 | ||
|
||
|
@@ -210,8 +158,4 @@ LMP是一个基于BCC(BPF Compiler Collection)的Linux系统性能数据实时 | |
|
||
- 项目描述: | ||
|
||
缓存的引入,平衡了CPU和内存的处理速度。但随即带来的缓存争用,无疑影响了CPU以及其上运行进程的性能。因此,了解缓存的分布情况,对缓解缓存争用,从而实现CPU利用率最大化和负载均衡等目标,都有着巨大的指导意义。本题首先要求从Linux内核中实时提取到CPU cache相关数据后,经过处理,可以在网页前端展示系统当前的缓存分布情况,并且需要将该功能实现为社区项目LMP的插件,并成功对接到LMP中;其次需要选择一个合适的预测算法,根据当前缓存分布情况,给出下个阶段可能的缓存分布,其中性能数据需要存放在LMP的数据存储模块中,并且需要将该模型对接到社区项目LMP中,并能够成功运行。 | ||
|
||
- 项目社区导师:赵晨雨 | ||
|
||
- 导师联系方式:<[email protected]> | ||
缓存的引入,平衡了CPU和内存的处理速度。但随即带来的缓存争用,无疑影响了CPU以及其上运行进程的性能。因此,了解缓存的分布情况,对缓解缓存争用,从而实现CPU利用率最大化和负载均衡等目标,都有着巨大的指导意义。本题首先要求从Linux内核中实时提取到CPU cache相关数据后,经过处理,可以在网页前端展示系统当前的缓存分布情况,并且需要将该功能实现为社区项目LMP的插件,并成功对接到LMP中;其次需要选择一个合适的预测算法,根据当前缓存分布情况,给出下个阶段可能的缓存分布,其中性能数据需要存放在LMP的数据存储模块中,并且需要将该模型对接到社区项目LMP中,并能够成功运行。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,13 @@ | ||
weight: 9 | ||
title: "暑期2021开源活动" | ||
url: "https://www.bilibili.com/video/BV12y4y1W75J" | ||
description: > | ||
<ul class="list-style-none"> | ||
<li>暑期2021“大咖说开源”陈莉君老师主讲</li> | ||
<li>系统性能优化的路有多长</li> | ||
<li>性能就是“攻城略地”的最佳武器</li> | ||
<li>具备系统的性能优化方法论</li> | ||
<li>Linux内核之旅开源社区项目lmp</li> | ||
</ul> | ||
# weight: 9 | ||
# title: "暑期2021开源活动" | ||
# url: "https://www.bilibili.com/video/BV12y4y1W75J" | ||
# description: > | ||
# <ul class="list-style-none"> | ||
# <li>暑期2021“大咖说开源”陈莉君老师主讲</li> | ||
# <li>系统性能优化的路有多长</li> | ||
# <li>性能就是“攻城略地”的最佳武器</li> | ||
# <li>具备系统的性能优化方法论</li> | ||
# <li>Linux内核之旅开源社区项目lmp</li> | ||
# </ul> | ||
|
||
image: "img/carousel/summer2021.png" | ||
# image: "img/carousel/summer2021.png" |