资深Linux 性能优化工程师

ShanghaiFull-timePosted Jul 8, 2026

Job description

一、岗位定位

作为内核性能团队的核心骨干,你是基于eBPF技术的性能诊断专家。你具备深度参与大型eBPF性能优化项目(例如滴滴HUATUO、阿里SysAK、DeepFlow、BCC等,但不限于此)的实战经验——无论是从0到1搭建、核心模块开发,还是深度定制化二次扩展。你精通利用eBPF探针构建定制化性能监控工具,擅长从业务层异常现象(采集丢帧、调度抖动、吞吐下降等)出发,通过eBPF精准定位调度延迟、中断响应毛刺、死锁/活锁等内核性能问题的根因,并输出可落地的解决方案。

二、岗位职责

  1. 基于eBPF的性能诊断工具设计与建设(核心职责)

深度参与或主导过大型eBPF性能优化项目的研发工作——包括但不限于:从0到1架构设计、核心模块开发、或对开源/内部工具的深度定制与扩展。 基于eBPF(libbpf/BCC)构建常驻、低开销(<1% CPU,<2MB内存) 的嵌入式性能可观测性底座,支持远程动态下发探针、异常阈值自触发录制、资源紧张时自动降级。 设计跨内核子系统(调度/内存/中断/文件系统/网络)的精细化性能指标埋点体系,覆盖CPU调度延迟、中断响应耗时、锁等待时间、内存分配耗时等关键性能指标。

  1. 基于eBPF的内核性能问题深度诊断与攻坚

针对嵌入式生产环境暴露的调度延迟(Scheduling Latency)、中断响应毛刺(IRQ Latency)、死锁(Deadlock)/活锁(Livelock)导致的性能劣化、RCU Stall引发的延迟抖动、Softirq拥塞导致的吞吐下降等性能问题,以eBPF为核心手段完成从现象捕获到根因定位的全链路分析。 利用eBPF设计有针对性的诊断方案,在问题发生时精准捕获内核关键路径的延时分布与调用栈,输出深层次的根因分析(RCA)报告,并落地为内核参数调优、驱动Patch、业务逻辑规避或架构级优化方案。

三、任职要求(硬性门槛)

  1. 大型eBPF性能优化项目经验

作为核心贡献者参与过至少一个大型eBPF性能优化项目——例如(但不限于):滴滴HUATUO、阿里SysAK(System Analyse Kit)、DeepFlow、BCC等。 项目经验需体现以下能力之一: 从0到1主导设计过eBPF性能诊断工具或可观测性平台。 对现有eBPF工具进行过深度定制化开发,解决特定业务场景下的性能诊断需求。 为eBPF开源项目(libbpf/BCC等)贡献过核心功能模块。 精通eBPF技术栈(libbpf/BCC),熟悉BPF验证器、JIT编译、CO-RE机制,能编写复杂的eBPF程序处理内核关键路径(调度、中断、内存分配等)的追踪、聚合与时延分析。

  1. 以eBPF为核心手段解决实际内核性能问题的经验

过往经历中,应具备以eBPF为主要工具定位和解决内核性能问题的实际经验。具体而言: 能够从业务层性能异常现象(如延迟抖动、吞吐下降、CPU利用率异常等)出发,设计eBPF探针捕获内核行为,通过eBPF采集的数据精准定位性能瓶颈的根因。 所解决的问题应属于性能类问题(如调度延迟、中断响应耗时、锁竞争、内存回收毛刺等),而非功能性Bug或崩溃类问题。 最终交付的解决方案不局限于eBPF本身(可能涉及内核参数调优、驱动Patch、业务逻辑调整等),但诊断和定位的核心手段必须是eBPF。 具备将上述经验总结为完整案例的能力,能够清晰阐述从现象到探针设计、数据采集、根因定位、最终修复的全过程。

  1. 内核性能问题的深层理解

深刻理解以下内核性能问题的成因、eBPF诊断方法与解决方案: 调度延迟(Scheduling Latency) :CFS调度延迟的来源(vruntime计算、负载均衡、wake_up抢占)、PREEMPT_RT对调度延迟的影响、如何用eBPF(runqlat/sched_wakeup)追踪调度时延分布。 中断响应延迟(IRQ Latency) :中断上半部与下半部的耗时分布、中断线程化的影响、关中断导致的延迟放大、如何用eBPF追踪irq_handler_entry/exit耗时。 死锁(Deadlock)与活锁(Livelock)导致的性能劣化:AB-BA死锁、自旋锁与互斥锁的竞争场景、RCU Stall、优先级反转、如何用eBPF追踪锁等待时间(mutex_lock耗时)或结合lockdep诊断。 内存回收毛刺(Reclaim Stall) :kswapd与direct reclaim对实时任务的影响、如何用eBPF追踪shrink_node耗时。 Softirq拥塞:NET_RX/TIMER软中断过载导致的吞吐下降与延迟抖动、如何用eBPF追踪softirq_entry/exit耗时。

  1. 内核源码通读能力

精通C语言,熟悉ARM64/ARM32架构。 必须具备Linux内核核心模块的通读与分析能力,以下子系统至少深入理解两个,并能针对其余模块做出正确的性能推断: 进程调度(CFS/RT调度类、负载均衡、wake_up路径) 内存管理(伙伴系统、SLUB、页面回收、CMA) 中断与异常处理(GIC、/kernel/irq、线程化中断) 文件系统(VFS、EXT4日志、块层IO调度) 网络协议栈(/net/core、skb管理、软中断NET_RX_SOFTIRQ)

四、加分项(Preferred)

深入理解PREEMPT_RT实时补丁:熟悉PREEMPT_RT的核心改动(如自旋锁转为可睡眠锁、软中断线程化、RT任务调度行为变化),了解其对调度延迟、负载均衡、中断响应的影响,有在ARM嵌入式平台实际应用或调优经验者优先。 有向Linux内核社区(LKML)或eBPF开源项目(libbpf/BCC)提交过Patch(提供Commit ID)。 熟悉perf PMU硬件事件分析(Cache Miss、分支预测失败),能结合ARM Cortex-A微架构解释内核性能热点。

Description copied from Tars's careers page. Read the full posting before you apply.

More jobs at Tars

See all openings at Tars

More jobs in Shanghai

See all jobs in Shanghai