Linux以其开放和自由的特性,日益受到人们的关注,并被广泛应用于科学计算、电子商务、并行运算、辅助教学、大型服务器、嵌入式应用和桌面办公等不同的领域,为我国软件产业的发展带来了契机。研究Linux内核的评测方法、评价工具和评测标准,颇具意义和实用价值,有助于 Linux国产化发展,同时也是国家电子基金项目的重要组成部分。
Linux内核是Linux操作系统最核心的部分,其性能直接决定了操作系统的性能。测试内核性能的方法是针对Linux内核五大子系统(进程调度子系统、内存管理子系统、虚拟文件子系统、进程通信子系统和网络子系统)的自身特点,测量出Linux内核完成工作量负载的响应时间、CPU时间和CPU利用率等参数,作为衡量标准。
Linux内核测试法
1.Linux测试项目(LTP)
LTP(Linux test project)套件涵盖了内核的大多数接口,如系统调用、内存、IPC、I/O、文件系统和网络。这个项目收集了各种 Linux内核测试工具和相关资料,当前包括了超过 2900个测试用例。
2.可扩展性测试平台(STP)
开放源代码开发实验室 (Open Source Development Labs, OSDL)创建了可扩展测试平台(Scalable Test Platform,STP)系统。STP 是一个自动化的测试平台, STP可以构建内核、设置测试、运行测试,并收集结果,然后进行深入地比较。
3.代码覆盖分析
代码覆盖分析在一个给定的测试运行时,分析出内核中哪些代码行被执行,提示内核的哪些部分还没有被测试到,并指出需要再编写哪些新测试来测试内核的相应部分,以使可以得到更完备的测试。
4.内核回归测试
对Linux内核执行持续多日的回归测试,创建实时的、集中的档案库,以随时获得 Linux内核的快照,内核发生改变,测试人员就可进行测试。
Linux内核架构
Linux内核主要由五大子系统组成:进程调度子系统(Process Scheduler)、内存管理子系统(Memory Manager)、虚拟文件子系统(Virtual File System)、进程通信子系统(Inter-Process Communication)和网络子系统(Network Interface),其中进程调度子系统是 Linux操作系统的核心。这五大子系统彼此紧密协作,共同对用户程序提供服务,其系统架构如下图所示。

图1. Linux内核结构
核心的子系统是进程调度子系统,所有子系统依赖它来挂起/唤醒进程。当进程被唤醒后,进程调度子系统依靠内存管理子系统来对进程的内存映射(页表)进行调整;进程间通讯子系统依靠内存管理子系统来实现共享内存通信机制,允许多个进程共享物理内存;虚拟文件子系统依靠网络接口子系统来实现网络文件系统(NFS),并且依靠内存管理子系统来实现 Ramdisk 设备;内存管理子系统依靠虚拟文件子系统来实现对换。
由此可见,测试Linux性能的关键在于测试Linux内核性能,而测试Linux内核性能又可以细化成五大子系统的测试。