Documents/kernel team tasks

出自淘宝内核组

跳转到: 导航, 搜索

目录

涉及工作领域

我们的工作领域,具有很现实的针对性,主要是为淘宝电子商务交易系统中上万台服务器所运行的Linux系统提供性能、稳定性的改进和提升。这套支持全球最大电子商务交易平台的基础架构,由十几个大的子系统模块(上百个更小的子系统)组成,应用和工作负载种类非常丰富。让这样一个线上交易系统稳定、高效的运行,是我们主要的工作内容之一。我们在内核维护和开发领域的主要需求和灵感的来源是基于淘宝实际的工作负载和需求,而我们工作的结果也是由淘宝的工作负载和实际运行效果来验证的。


文件系统和块I/O层

淘宝的大量应用是I/O密集型,例如CDN,Hadoop,TFS等。为了提高磁盘I/O性能,我们在线上应用中开始采用Ext4文件系统,并与开源社区一起合作持续改进Ext4的质量和性能;同时解决块I/O层在实际工作负载运行下的功能、性能、稳定性问题。

内存管理和资源隔离

随着淘宝的在线交易系统的不断改进,QOS和资源隔离的应用需求已经越来越多,因此在内存、网络I/O、磁盘I/O等资源的管理和隔离上的工作,也是淘宝重点关注的领域。我们会以淘宝的需求为前提,与社区在内存管理和资源隔离等方面开展合作。

虚拟化技术

淘宝内部基础架构,在弹性部署方面有非常强烈的需求,同时相当数量的业务对于业务请求的响应时间和处理数量也有很苛刻的要求。我们基于虚拟化技术,在构建一套可扩展、易管理的大规模分布式的弹性基础架构运行环境。目前已经有一部分工作在实际业务线上运行,在基于开源软件的分布式存储系统、网络和磁盘I/O性能优化、QOS等方面还有大量的工作要做。

网络

淘宝的在线交易基础架构是一个大规模的分布式系统,有上万台Linux服务器,网络通信的响应时间和吞吐量是非常关键的业务性能指标。我们在确保网络子系统稳定的前提下,会借鉴业内的研发成果,将一些新的网络优化的想法引入到这个基础架构上来,并通过实际业务负载来验证。我们的工作涉及到网卡驱动、网络协议栈、应用优化等方面。

性能计数

优化性能的前提是量化的分析性能瓶颈所在。我们增加了关于page cache命中率,进程切换,元数据访问量统计,磁盘块访问频次等功能和工具。这些工具提供的性能数据,为我们优化内核性能提供了实际的数据支撑。我们还在根据业务应用的需求,继续在内核和用户态增加各种类型的性能计数点,不断的了解这些应用的运行模式,发掘性能优化点。

内核维护

随着内核开发维护工作的不断进行,我们会有越来越多的patch生成。将这些patch反馈到社区和上游操作系统厂商,可以降低在升级内核版本时更新大量patch的工作量。同时我们也在不断的改进内部的内核构建系统,将我对内核的各种patch及时的通过自动测试和线上测试,并最终通过线上升级系统分发到各个服务器上。这一整套内核维护的系统和流程,也是我们不断改进的工作重点。

将要涉及的领域

随着线上交易基础架构规模的不断增长,我们对内核和系统的性能分析以及在硬件系统的可扩展性上,也会投入越来越多的关注。

性能分析和可扩展性

不断增强内核在性能分析(针对内核本身以及应用程序进程)方面的能力,以及针对many core,NUMA,大量SSD安装的集群系统上确保系统的性能,都是很具有挑战性的课题,而将这些成功成功在实际的线上系统中发挥实际价值,也是非常有价值的工作。

内核调试和跟踪

对于运行时内核的调试和跟踪,以及对oops信息的后期分析,对于确保大规模部署的内核质量,是非常重要的基础工作。在考察和使用诸如KGTP(Kernel GDB Trace Point)这样的功能之外,我们也在持续的评价和测试各种可能会对我们内核维护工作有帮助的调试和跟踪手段。

个人工具