Profile picture

工作经历

微软

AB Test软件工程师 2025.09 - 现在
技术栈: C#, AB Test, 大数据处理, Azure
  • 工作与微软ExP团队。
  • 负责设计、开发和维护微软的AB Test平台,支持大规模数据处理和分析;帮助Bing、Office、XBox、Microsoft AI等团队进行实验设计、数据收集和结果分析,以优化产品性能和用户体验。
分布式软件工程师 2022.04 - 2025.08
技术栈: C++, C#, 分布式, HPC, Azure, Kubernetes
  • 工作于微软Azure Batch团队。
  • 负责Azure Batch中任务调度系统的设计和开发,支撑每天超一亿任务的调度;维护和优化系统地性能和可靠性,确保其在大规模分布式环境中的高效运行。

华为

虚拟化软件工程师 2018.07 - 2022.04
技术栈: C, Linux, KVM, QEMU, Libvirt
  • 工作于2012实验室虚拟化团队。
  • 负责基于KVM、QEMU的hypervisor特性开发、问题修复、稳定性保障及性能调优;跟踪业界虚拟化的技术发展趋势,开展系统创新与研究。

项目经历

ExP

微软 - 2025~现在

ExP(Experimentation)是微软内存的AB Test平台。

  • 负责ComputeTaskManager,管理和调度AB Test中的计算任务;设计并实现了batch resubmission机制,方便客户端在AB Test中进行批量任务的重新提交,提升了系统的灵活性和用户体验;

Batch Scheduler vNext

微软 - 2022~2025

Batch Scheduler vNext是Azure Batch中Batch Scheduler组件的下一代版本,旨在提升系统的稳定性、性能和可维护性。该项目涉及重写Batch Scheduler,优化调度算法,并引入新的功能以满足不断增长的用户需求。

  • 设计并实现Policy Engine(调度算法框架)的核心架构,支持多种Policy(调度算法)的灵活配置和扩展;
  • 设计并实现Benchmark,并将其集成到CI流程中,以持续监控和优化Batch Scheduler vNext的性能;发现并修复多个性能瓶颈,提升系统吞吐约20%;
  • 作为该项目的Qulity Owner,设计并实现CI/CD流程和End to End Test框架,确保Batch Scheduler vNext的持续集成和交付质量。

Batch Scheduler vCurrent

微软 - 2022~2025

Batch Scheduler是Azure Batch中的一个重要组件,负责管理和调度大规模计算任务。

  • 负责WIJ(管理Job的生命周期)和ABS(管理Task的生命周期和调度)的特性开发,系统维护和性能优化;
  • 修复多个死锁,race condition等导致的系统稳定性问题,显著提升了系统的可靠性和用户体验;
  • 在Windows上移植一个LSAN(LeakSanitizer)的可用版本,并利用LSAN定位服务中的内存泄漏问题;修复了多个严重的内存泄漏问题(3-4小时泄露约15G内存),显著提升了系统的稳定性和性能。
Profile picture

项目经历(续)

QEMU热替换

华为 - 2021

QEMU热替换是一种在不中断虚拟机内部业务的情况下替换QEMU二进制的技术,可用于在线修复QEMU漏洞。

  • 负责设计并实现QEMU热替换功能;基于fork+exec实现热替换的整体框架;利用PIPE进行2个进程间通信,实现设备状态的序列化、反序列化和热替换期间2个进程的生命周期管理;
  • 热替换整体耗时小于1s,且热替换期间虚拟机内部业务不受影响。

ARM CPU支持custom模式

华为 - 2020

为保证虚拟机热迁移前后虚拟机内部呈现的CPU feature一致,x86平台支持custom模式,可以为Guest呈现自定义集合的CPU feature;而ARM平台不支持custom模式,无法为Guest呈现自定义集合的CPU feature。

  • 负责设计并实现在不同的ARM CPU上为Guest内部呈现相同集合的CPU feature;
  • 开发kvm、QEMU相关代码,实现了CPU feature的可配置功能;
  • 实现自动enable/disable依赖的CPU feature的功能。

A-Tune

华为 - 2019~2020

A-Tune是一款基于AI的操作系统性能调优引擎。A-Tune利用AI技术,使操作系统“懂”业务,简化IT系统调优工作的同时,让应用程序发挥出色性能。

  • 负责Hadoop、Spark、SPECJbb2015、Dubbo等组件的调优工作,实现上述应用性能分别提升30%、30%、40%、10%;
  • 重构数据采集与数据解析模块,增强上述的模块的扩展性和可配置性,并可以自动生成相应图片,便于调优人员分析并识别性能瓶颈点。

ARM实现硬件标脏

华为 - 2018~2019

虚拟机在线热迁移场景依赖内存标脏来实现内存拷贝的功能,ARM上只支持软件标脏,需要vcpu频繁trap,影响虚拟机内部业务性能。

  • 负责设计并实现基于Stage-2 DBM位的硬件标脏功能,虚拟机内部写内存时不会产生trap;
  • 热迁移过程中Guest trap次数减少30%~80%。