这个仓库主要记录准备OS竞赛中收集的书籍,参考的论文和所记下的笔记等。这些资料主要包括ebpf性能监测,Linux网络,文件系统的配置调优,微服务系统的异常检测和故障定位、K8s集群等主题,是了解相关领域的一份不错的总结。
截止至2025-9-8,下面是各种资源列表
| 名称 | 说明 |
|---|---|
| 循序渐进Linux(第2版) | 基础知识、服务器搭建、系统管理、性能调优、虚拟化与集群应用 |
| Learning eBPF Programming the Linux Kernel for Enhanced Observability, Networking, and Security | 介绍ebpf原理,以及介绍eBPF如何增强Linux内核的可观测性、网络和安全性,主要偏理论 |
| Linux性能优化大师 | 深入讲解Linux性能优化技巧 |
| 12-Linux性能优化实战 | 实战指南,提供具体的性能优化案例和方法 |
| Wireshark网络分析的艺术 | 网络分析工具Wireshark的使用艺术 |
| 性能之巅:洞悉系统、企业与云计算 | 全面解析系统、企业与云计算的性能问题 |
| Kubernetes in Action中文版 | Kubernetes在实际操作中的应用指南 |
| Linux程序设计(第4版) | Linux程序设计的基础和高级概念 |
| 文件系统技术内幕 | 探讨文件系统的内部工作原理和技术细节 |
| UNIX环境高级编程(第3版) | UNIX环境下的高级编程技巧和实践 |
| 深入理解LINUX网络技术内幕 | 对Linux网络技术的深入理解和剖析 |
| BPF之巅 洞悉Linux系统和应用性能 | 利用BPF技术深入理解Linux系统和应用性能,可以看作Learning eBPF的进阶篇,给出许多实践案例 |
| 深入剖析Kubernetes | 对Kubernetes的深入剖析和理解 |
| 名称 | 简要概括 | 主要方法 | 关键成果 |
|---|---|---|---|
| Automatic Kernel Offload Using BPF | 提出了一个自动化方案来决定应用程序功能是否以及如何被卸载到内核,以提高系统的效率和性能。 | 通过静态分析和动态分析相结合的方式,自动识别可以安全卸载到内核的应用程序组件,并生成相应的eBPF程序。使用程序分析和代码生成技术来自动化整个卸载过程。 | 实现了应用程序功能的自动内核卸载,显著提升了系统性能。同时识别了实施该方案所涉及的技术挑战,包括内存安全、并发控制和性能优化等方面。 |
| Real-Time Intrusion Detection and Prevention with Neural Network in Kernel using eBPF | 基于eBPF的实时入侵检测与预防系统,将神经网络计算通过eBPF下放到内核中执行。 | 重新设计了神经网络推理机制以解决eBPF的限制,提出了线程安全的参数热更新机制,无需显式使用自旋锁。使用eBPF程序在内核空间直接执行神经网络推理。 | 实现了在内核空间的高效神经网络推理,解决了传统入侵检测方法数据采集效率低、安全性能与性能平衡不足等问题。 |
| Fast In-kernel Traffic Sketching in eBPF | 基于eBPF的内核流量素描技术,用于高效网络监控。 | 通过在内核空间直接进行流量统计和分析,避免了用户态和内核态之间的数据拷贝开销。支持多种素描算法,包括Count-Min Sketch、HyperLogLog等。 | 显著提高了网络监控的性能,能够实时处理高速网络流量,为网络性能分析提供了高效的工具。 |
| Wasm-bpf: Streamlining eBPF Deployment in Cloud Environments with WebAssembly | 提出了"Universal BPF(WASM-BPF)"的新方法,用于在云环境中简化eBPF程序的部署。 | 通过将eBPF程序打包为WebAssembly模块并整合到容器工具链中,实现了跨平台兼容性和动态插件管理。支持多种编程语言编写eBPF程序,提供统一的运行时环境。 | 解决了传统部署方法的不足,实现了eBPF程序的跨平台部署和动态管理,为云环境中的eBPF应用提供了更好的支持。 |
| XRP: In-Kernel Storage Functions with eBPF | 介绍了一种名为XRP的框架,它允许应用程序在NVMe驱动程序中的eBPF钩子中执行用户定义的存储函数。 | 通过将一小部分内核状态传播到其NVMe驱动程序钩子中,绕过Linux内核存储堆栈的大部分开销。使用eBPF程序在存储驱动层面直接处理存储请求。 | 显著提高了存储访问的吞吐量和延迟,特别适用于需要高性能存储访问的应用程序,如数据库和文件系统。 |
| 名称 | 简要概括 | 主要方法 | 关键成果 |
|---|---|---|---|
| Automated Reasoning and Detection of Specious Configuration with Symbolic Execution | 基于符号执行技术的自动配置推理和检测系统,能够自动分析大型系统中的配置参数。 | 通过符号执行技术探索配置空间的所有可能路径,发现潜在的配置冲突和错误。使用程序分析和约束求解技术来自动推理配置的正确性。 | 能够识别可能导致系统异常或性能问题的配置组合,为系统管理员提供可靠的配置建议,特别适用于复杂的分布式系统和云环境。 |
| Autotuning Configurations in Distributed Systems for Performance Improvements Using Evolutionary Strategies | 基于进化策略的分布式系统配置自动调优方法,能够自动调整各种系统参数。 | 比较了协方差矩阵适应(CMA)算法与智能爬山(SHC)算法,使用进化策略来搜索最优配置。通过遗传算法和进化计算技术优化配置参数。 | 证明了CMA算法在寻找最优配置方面优于SHC算法,能够自动调整负载均衡、缓存策略、网络配置等参数,显著提升系统整体性能。 |
| CAPES: Unsupervised Storage Performance Tuning using Neural Network-based Deep Reinforcement Learning | 基于深度强化学习的无监督存储性能调优系统,无需人工干预即可找到最佳参数组合。 | 使用神经网络和深度强化学习技术来自动调整存储系统的配置参数。通过Q-learning和策略梯度方法学习最优配置策略。 | 能够在生产环境中持续收集性能数据并提供实时配置调整建议,相比传统方法能够处理更复杂的参数空间,并适应动态变化的工作负载。 |
| Carver: Finding Important Parameters for Storage System Tuning | 基于统计方法的存储系统重要参数识别工具,帮助管理员专注于最重要的参数。 | 使用降维技术和统计分析来识别对存储系统性能影响最大的配置参数。通过主成分分析和相关性分析来筛选关键参数。 | 能够帮助系统管理员专注于最重要的参数,减少调优的复杂度和时间成本,特别适用于具有大量配置选项的现代存储系统。 |
| Performance Improvement of Distributed Systems by Autotuning of the Configuration Parameters | 基于有序优化和反向传播神经网络的分布式系统配置参数自动调优方法。 | 首次将有序优化策略应用于分布式系统性能优化,结合反向传播神经网络来自动调整配置参数。使用梯度下降和优化算法来搜索最优配置。 | 在具有三层服务器的真实分布式系统测试中,以合理的性能成本平均减少了40%的测试时间,证明了该方法在分布式系统性能提升方面的有效性。 |
| Towards Better Understanding of Black-box Auto-Tuning: A Comparative Analysis for Storage Systems | 存储系统黑盒自动调优方法的比较分析研究,为选择合适的自动调优方法提供指导。 | 提出了多种黑盒自动调优方法,并通过大规模实验进行了比较分析。使用实验设计和统计分析方法来评估不同技术的性能。 | 实验使用了近25,000个独特配置和超过450,000个数据点,结果表明不同硬件、软件和工作负载会导致最优配置不同,为选择合适的自动调优方法提供了重要指导。 |
| 名称 | 简要概括 | 主要方法 | 关键成果 |
|---|---|---|---|
| Evolution of Aegis: Fault Diagnosis for AI Model Training Service in Production | 阿里云构建的面向AI模型训练服务的生产环境故障诊断与恢复系统。 | 采用多层次的监控和分析机制,结合机器学习技术来预测和预防潜在的故障。使用深度学习模型分析训练过程中的异常模式。 | 能够自动检测和诊断训练过程中的各种故障,包括硬件故障、软件异常、资源不足等问题,确保AI训练任务的稳定执行。 |
| ART: A Unified Unsupervised Framework for Incident Management in Microservice Systems | 微服务系统无监督学习故障流程解决方案,提供统一的故障管理方法。 | 通过机器学习技术从历史故障数据中学习,自动识别故障模式,分析故障传播路径。使用无监督学习算法进行异常检测和模式识别。 | 能够提供智能的故障恢复建议,不断提高故障诊断和处理的准确性,为微服务系统提供可靠的故障管理能力。 |
| CaT: Content-aware Tracing and Analysis for Distributed Systems | 基于内容感知的分布式系统追踪和分析技术,能够动态调整追踪策略。 | 根据系统内容的变化动态调整追踪策略,使用内容感知算法来分析数据流模式。通过机器学习技术识别异常模式。 | 特别适用于处理大量数据的分布式系统,能够识别数据流中的异常模式,并提供针对性的优化建议。 |
| Causal Inference-Based Root Cause Analysis for Online Service Systems with Intervention Recognition | 基于因果推理的在线服务系统根因分析方法,具有干预识别能力。 | 通过分析系统组件之间的因果关系,使用因果推理算法来定位故障根本原因。能够识别和区分不同类型的干预措施。 | 能够准确定位故障的根本原因,评估各种修复策略的有效性,为运维人员提供科学的决策支持。 |
| Electrode: Accelerating Distributed Protocols with eBPF | 使用eBPF技术加速分布式协议执行的系统。 | 通过将分布式协议的关键路径下放到内核空间执行,使用eBPF程序优化协议处理流程。在内核空间直接处理网络协议。 | 显著提高了协议处理的性能,特别适用于需要高性能网络通信的分布式应用,能够减少用户态和内核态之间的切换开销。 |
| Failure Diagnosis in Microservice Systems: A Comprehensive Survey and Analysis | 微服务系统故障诊断领域的全面综述和分析。 | 系统性地回顾了微服务系统故障诊断的各种方法和技术,包括基于日志的分析、基于指标监控的方法、基于追踪的技术等。使用文献调研和比较分析方法。 | 分析了各种方法的优缺点,并提出了未来研究的发展方向,为相关领域的研究人员提供了重要的参考和指导。 |
| Falcon: A Practical Log-Based Analysis Tool for Distributed Systems | 基于日志的分布式系统分析工具,能够组合多个日志源并生成一致的空间时间图。 | 设计了一个模块化的架构,引入了新颖的发生之前符号表示法,并依赖于现成的约束求解器来获得一致的事件顺序。使用图论和约束求解技术分析日志事件。 | 能够无缝地组合多个不同的日志源,保持事件因果关系的一致性,通过Apache Zookeeper等案例研究证明了其分析复杂分布式协议的能力。 |
| Detecting Failures in Distributed Systems with the FALCON Spy Network | 基于FALCON间谍网络的分布式系统故障检测方法,提供细粒度的系统监控。 | 通过部署轻量级的监控代理(间谍节点)来收集系统状态信息,使用网络分析技术来检测和定位故障。采用分布式监控架构和网络拓扑分析。 | 能够提供细粒度的系统监控,特别适用于大规模分布式环境的故障诊断,实现了高效的故障检测和定位。 |
| LatentScope: A Latent Variable Model Approach to Large-Scale Representative Discovery from Web-Scale Logs | 基于潜在变量模型的大规模Web日志代表性发现方法,能够处理PB级别的日志数据。 | 使用潜在变量模型来分析海量的Web日志数据,自动发现日志中的代表性模式和异常情况。采用概率图模型和机器学习技术。 | 能够处理PB级别的日志数据,为系统管理员提供有价值的洞察,帮助识别潜在的系统问题和优化机会。 |
| LogShrink: Effective Log Compression by Leveraging Commonality and Variability of Log Data | 基于日志数据共性和变异性的有效日志压缩方法,能够显著减少存储空间。 | 通过分析日志消息中的共性和变异性模式来实现高效的压缩,使用最长公共子序列算法和熵技术来识别日志中的重复模式。采用数据压缩和模式识别技术。 | 能够显著减少日志存储空间,同时保持日志的可读性和可分析性,为大规模日志管理提供了有效的解决方案。 |
| MicroRank: End-to-End Latency Issue Localization with Extended Spectrum Analysis in Microservice Environments | 基于扩展频谱分析的微服务环境端到端延迟问题定位方法。 | 首先区分哪些跟踪是异常的,然后使用PageRank Scorer模块将正常和异常跟踪信息作为输入,并根据扩展频谱技术对不同跟踪的重要性进行差异分析。使用图分析和频谱分析技术。 | 特别适用于复杂的微服务架构中的性能问题诊断,能够更有效地定位根本原因,提供准确的延迟问题分析。 |
| Nezha: Interpretable Fine-Grained Root Causes Analysis for Microservices on Multi-modal Observability Data | 基于多模态可观测数据的微服务细粒度根因分析方法,能够在代码区域和资源类型级别上定位故障。 | 将异构的多模态数据转换为同质化的事件表示形式,并通过构建和挖掘事件图来提取事件模式。使用图挖掘和模式识别技术。 | 能够以可解释的方式定位故障的根本原因,通过比较故障发生前后的事件模式,为微服务系统提供精确的根因分析。 |
| Panorama: Capturing and Enhancing In Situ System Observability for Failure Detection | 通过增强系统内可观测性进行故障检测的系统,能够提供实时的系统状态监控。 | 通过利用系统组件之间的交互来增强系统的可观察性,提供系统性渠道和分析工具,将组件转变为逻辑观察者。使用系统监控和异常检测技术。 | 能够提供实时的系统状态监控,帮助快速识别和响应系统异常,实现了系统组件的智能监控和故障报告。 |
| TrinityRCL: Multi-Granular and Code-Level Root Cause Localization Using Multiple Types of Telemetry Data in Microservice Systems | 基于多种遥测数据的微服务系统多粒度代码级根因定位方法,能够精确定位到具体的代码行。 | 利用三种类型的监控数据构建因果图,实现对应用程序级、服务级、主机级和指标级等多个层次的异常根本原因分析。使用图分析和因果推理技术。 | 具有独特的代码级别定位能力,能够精确定位到具体的代码行,为开发人员提供精确的修复指导。 |
| Understanding, Detecting and Localizing Partial Failures in Large System Software | 大型系统软件中部分故障的理解、检测和定位方法,已成功应用于六个大型分布式系统。 | 提出了OmegaGen静态分析工具,通过使用新颖的程序简化技术自动为给定程序生成定制的看门狗。使用静态分析和程序分析技术。 | 能够识别程序中的关键路径和潜在故障点,并生成相应的监控代码,证明了其在实际环境中的有效性。 |
| vNetTracer: Network-Centric Distributed Tracing for Microservices | 面向微服务的网络中心分布式追踪系统,专注于网络层面的分布式追踪。 | 专注于网络层面的分布式追踪,能够捕获和分析微服务之间的网络通信模式。使用网络监控和流量分析技术。 | 特别适用于网络密集型应用,能够提供详细的网络性能分析和故障诊断信息,为微服务系统提供网络层面的监控能力。 |
| X-ray: Automating Root-Cause Diagnosis of Performance Anomalies in Production Software | 生产软件性能异常根因诊断的自动化方法,能够准确定位性能问题的根本原因。 | 首先将性能成本归因于每个基本块,然后使用动态信息流跟踪来估计由于每个潜在根本原因而执行块的可能性。使用程序分析和性能分析方法。 | 能够通过将每个区块的成本乘以所有基本区块的特定原因可能性相加来总结每个潜在根本原因的总体成本,还可以区别地执行绩效总结,以解释两项类似活动之间的绩效差异。 |
| X-trace: A Pervasive Network Tracing Framework | 普及式网络追踪框架,提供全面的网络追踪解决方案。 | 能够跨多个网络层次和协议进行追踪,使用分布式追踪和网络监控技术。采用端到端的追踪方法。 | 特别适用于复杂的网络环境,能够提供端到端的网络性能分析和故障诊断能力,为网络问题诊断提供了全面的解决方案。 |
| One-Size-Fits-None: Understanding and Enhancing Slow-Fault Tolerance in Modern Distributed Systems | 现代分布式系统中慢故障容忍性的理解和增强方法,提出了轻量级库ADR来增强系统适应性。 | 探讨了现代分布式软件中慢故障容忍性的特点和现有实践,提出了一个轻量级库ADR来增强系统的适应性。使用系统分析和容错技术。 | 针对慢故障(不会立即导致系统崩溃,但会逐渐影响系统性能的故障类型)提供了有效的检测和处理方法,这类故障往往难以检测和处理。 |
| 名称 | 简要概括 | 主要方法 | 关键成果 |
|---|---|---|---|
| CHEOPS24-TrackIOps: Real-Time NFS Performance Metrics Extractor | 基于eBPF的实时NFS性能指标提取器,专门针对NFS文件系统设计。 | 通过eBPF技术在内核空间直接收集性能数据,避免了用户态和内核态之间的数据拷贝开销。使用内核监控和性能分析技术。 | 能够实时监控和提取各种性能指标,包括I/O吞吐量、延迟、错误率等,提供了高精度的性能监控能力。 |
| DeepFlow: Network-Centric Distributed Tracing for Microservices | 面向微服务的网络中心分布式追踪技术,提供开箱即用的追踪功能。 | 通过网络中心追踪平面和隐式上下文传播,使用网络监控和分布式追踪技术。采用零侵入的监控方法。 | 消除了基础设施中的盲点,能够以低成本捕获网络指标并增强不同组件和层之间的相关性,特别适用于复杂的微服务架构。 |
| EZIOTracer: Unifying Kernel and User Space I/O Tracing for Data-Intensive Applications | 统一内核和用户空间I/O跟踪的数据密集型应用程序监控工具。 | 提供了一种统一的方法来监控和跟踪I/O操作,无论是在内核空间还是用户空间执行。使用I/O监控和性能分析技术。 | 特别适用于数据密集型应用,能够提供详细的I/O性能分析和瓶颈识别,帮助优化应用程序的I/O性能。 |
| Nahida: In-Band Distributed Tracing with eBPF | 基于eBPF的带内分布式追踪技术,可以在不侵入应用程序的情况下追踪完整的请求执行路径。 | 基于eBPF技术,使用内核监控和分布式追踪技术。采用非侵入式的监控方法。 | 可以处理多线程应用程序,并且引入的开销很小,特别适用于生产环境中的性能监控,解决了现有分布式跟踪系统的限制。 |
| Unsupervised Detection of Microservice Trace Anomalies through Service-Level Deep Bayesian Networks | 基于服务级深度贝叶斯网络的微服务跟踪异常无监督检测系统。 | 使用深度贝叶斯网络和后验流设计,通过机器学习自动学习正常的调用模式,并在线上实时检测新的异常情况。采用无监督学习技术。 | 能够识别微服务调用链中的异常模式,包括性能异常、调用频率异常、错误率异常等,为微服务系统的稳定运行提供重要保障。 |
| Performance Metrics Anomaly Detection | 性能指标异常检测技术,专注于监控和分析各种系统性能指标。 | 通过时间序列分析、统计学习和机器学习等方法,使用异常检测和模式识别技术。采用多维度分析方法。 | 能够检测出性能指标的异常变化,包括突然的性能下降、异常的性能峰值等,为系统管理员提供及时的预警信息。 |
| Neural Network-Based Container Anomaly Detection Algorithm | 基于神经网络的容器异常检测算法,专门针对容器化环境设计。 | 通过深度学习技术学习容器的正常行为模式,并识别出偏离正常模式的异常行为。使用深度学习和行为分析技术。 | 能够检测容器运行时的各种异常情况,包括资源使用异常、行为模式异常、安全威胁等,为容器化系统的安全运行提供保障。 |
| 名称 | 简要概括 | 主要方法 | 关键成果 |
|---|---|---|---|
| OpsEval: A Comprehensive Evaluation Framework for AIOps Systems | AIOps系统的综合评估框架,提供标准化的评估平台。 | 涵盖了多个评估维度,包括故障检测准确性、根因分析能力、自动化程度、系统开销等。使用标准化的评估指标和测试方法。 | 通过统一的评估标准,能够帮助研究人员和工程师选择最适合其需求的AIOps解决方案,为AIOps领域提供了重要的评估工具。 |
| ReAct: Reasoning and Acting in Language Models for AIOps | 基于ReAct框架的AIOps解决方案,将推理和行动结合到语言模型中。 | 将推理(Reasoning)和行动(Acting)结合到语言模型中,通过结合大语言模型的强大理解能力和自动化工具的执行能力。使用自然语言处理和自动化技术。 | 能够理解复杂的运维场景,生成合理的推理过程,并执行相应的自动化操作,为AIOps领域带来了新的可能性。 |
| 名称 | 简要概括 | 主要方法 | 关键成果 |
|---|---|---|---|
| Computing Load Aware and Long-View Load Balancing for Cluster Storage Systems | 集群存储系统的计算负载感知和长期视角负载平衡方法,提出了成本高效的CALV方法。 | 通过在不同的时间周期内将贡献更多计算工作量的数据块迁移到更过载的服务器上,并将贡献较少计算工作量的数据块迁移到更未加载的服务器上。使用负载均衡和资源调度技术。 | 能够实现更均衡的资源利用和更好的系统性能,不仅能够感知计算负载,还能够在长时间内实现负载平衡。 |
| NVM File System: Performance and Protection in User-Space NVM File Systems | 用户空间NVM文件系统的性能和保护机制研究,建立了基于coffer的NVM文件系统架构。 | 通过优化内存访问模式和提供更好的数据保护机制,使用NVM文件系统技术和内存管理技术。采用用户空间文件系统设计。 | 能够充分发挥NVM(非易失性内存)的性能优势,同时确保数据的安全性和一致性,促进高效灵活的用户空间NVM文件系统库的发展。 |
笔记列表如下:
| 名称 | 说明 |
|---|---|
| ebpf note | ebpf技术实现笔记 |
| NFS故障案例by秘塔 | NFS文件系统的故障案例分析 |
| 故障诊断 | 故障诊断相关的笔记 |
相关博客记录如下:
| 链接 | 说明 |
|---|---|
| https://blog.ayaka.space/2024/01/Notes-CSE-dfs/ | 分布式文件系统设计,以NFS和GFS为例 |
文档目录如下:
.
├── README.md
├── books // 参考书籍
├── ebpf // ebpf相关论文
├── notes // 自制笔记
├── 其他 //其他未归类论文
├── 性能监控 // 性能监控相关论文
├── 故障诊断 // 故障诊断相关论文
└── 配置调优 // 配置调优相关论文