Linux桌面系统性能评价的负载测试
更新时间:2023-07-29 09:09:01 阅读量: 实用文档 文档下载
- Linux系统性能优化推荐度:
- 相关推荐
操作系统
第25卷第4期
2006年12月
大连轻工业学院学报
JournalofDalianInstituteofLightIndustry
VoI.25,No.4Dec.2006
文章编号:1005-4014(2006)04-0274-04
Linux桌面系统性能评价的负载测试
李媛媛1,蒙会民2,肖 鹏2
(1.大连交通大学软件学院,辽宁大连 116028;
2.大连轻工业学院信息科学与工程学院,辽宁大连 116034)
*
关键词:Linux桌面操作系统;性能测试;Linux内核;负载测试
摘要:本文针对Linux内核的特点,通过负载测试评价Linux桌面操作系统的性能。本文详述其测
试方法与步骤。实测几种流行的Linux桌面操作系统,分析其瓶颈和缺陷。
中图分类号:TP319 文献标识码:A
PerformanceassessmentforLinuxdesktopsystemvialoadtest
LIYuan-yuan1,MENGHui-ming2,XIAOPeng2
(1.CoIIegeofSoftware,DaIianJiaotongUniversity,DaIian116028,China;
2.SchooIofInformationScience Engineering,DaIianInstituteofLightIndustry,DaIian116034,China)
Keywords:Linuxdesktopsystem;performanceassessment;LinuxkerneI;Ioadtest
Abstract:InaccordancewiththecharacteristicsofLinuxkerneI,theperformanceassessmentforLinuxdesktopoperationsystemisimpIementedbyIoadtest.ThepaperdetaiIsthemethodandprocedure.DifferentkindsofconventionaILinuxdesktopsystemsaretestedtodeterminetheirbottIenecksandweaknesses. Linux凭借其开放和自由的特性得到迅速发展,也为我国国产操作系统的发展带来了契机。在Red-Hat,SUSE,RedFIag等众多开源厂商的努力下,
[1]Linux已经进入了桌面操作系统领域。以此为背
定的距离。原因在于现有的工具都是基于微观基准测试方法的,如Unixbench主要从CPU浮点运算能力,管道吞吐量,进程生成速度,系统调用开销等方面来测试Linux相关性能;Netperf主要是测试UnixDomainSocket性能,TCP、UDP的带宽和请求应答数;LMBENCH主要测试高速缓存、主存、网络
[3]
和磁盘之间数据传输能力。微观基准测试在实
景,探索和编写Linux桌面操作系统的性能测试方法和测试工具,具有重要的研究意义和实用价值。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能
[2]
指标进行测试。系统性能评测的层次分为机器
际应用中缺乏实用价值,原因是:
(1)Linux的应用千差万别,而反映操作系统性能的微观可测点实在太多,且依赖于系统的多种因素和应用特征,实现上困难且费时费力难以应用。
(2)微观上的硬件性能并不能真实反映操作系统的真实工作性能。
在Linux桌面操作系统的性能测试过程中,更是缺少有效的手段,也无法对性能问题进行定位,从而制约了其发展。针对以上原因,本文从宏观基准测试出发,结合负载测试提出了一种Linux桌面性能评价的具体实现,能相对简单快速的比较出不同版本Linux桌面系统的优劣和瓶颈所在。
级、算法级、程序级。其中程序级性能评测主要是使用基准测试程序(Benchmark)测试和评价系统的各种性能,它可分为微观基准测试程序(Micro-benchmark)和宏观基准测试程序(Macro-bench-mark)两大类。前者测试机器的某一特定方面的性质,如CPU速度、存储器速度、I/0速度、0S性能、网络特性等。后者是将计算机系统作为一个整体来测试其性能,它相对于某一应用类来比较不同的计算机系统,所以能快速对比系统的优劣。
有关Linux性能测试的研究主要是在国外开源社区,国内仍处于起步状态。虽然国外开源社区已存在一些Linux性能测试工具,但离实用还有一
收稿日期:2006-10-17
作者简介:李媛媛(1980~),女,助教.
*
操作系统
第4期
李媛媛等:Linux桌面系统性能评价的负载测试
275
l Linux桌面系统性能的负载测试
[2]
负载测试是确定在各种工作负载下系统
通信机制,允许多个进程共享物理内存。虚拟文件子系统依靠网络接口子系统来实现网络文件系统(NFS)。内存管理子系统依靠虚拟文件子系统来实现对换。
Linux内核性能决定了Linux的性能,针对内核这五大子系统设计出相关负载工作量对内核造成压力负载是测试Linux性能的关键。本文的主要工作就是针对Linux桌面操作系统的这五大子系统的自身特点设计出相应的负载工作量让内核的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。负载测试是一个分析软件应用和支撑、模拟真实环境的使用,从而来确定能够接收的性能过程。本文的测试是基于负载测试,针对Linux内核自身特点模拟出内核的真实负载状态,对Linux内核在不同的负载条件下完成某个特定作业的响应时间、CPU利用率等进行比较,快速找出内核瓶颈。这些负载工作量必须是有代表性的常见的,特定作业工作量必须是用户使用系统过程当中常见的操作作业。如何来确定负载,这就得基于宏观基准测试理论分析Linux内核。
从微观基准测试理论的角度来看,操作系统的基本性能参数实在是太多,硬件上包括CPU、内存、I/0、网络等性能指标。软件上包括文件系统、编译器、数据库系统调用、中断、进程切换、线程调度开销、存储映射性能等等,由此可以看出从微观基准测试角度总结Linux桌面操作系统性能评价标准和参数工作的繁琐和难度。
从宏观基准测试理论出发就简单多了,测试Linux性能的关键在于测试Linux内核性能。基于负载测试的主要工作是确定合适的工作量来模拟有代表性的负载和用户作业,这个工作量的执行应该涉及了很多微观基本性能参数,如系统调用,进程切换等,毕竟系统的性能评价是非常复杂的,依赖于系统的多种因素和应用的特征。Linux内核结构如图l所示,核心的子系统是进程调度子系统,所有子系统依赖它挂起/唤醒进程。当进程被唤醒后,进程调度子系统依靠内存管理子系统来对进程的内存映射(页表)进行调整。进程间通讯子系统依靠内存管理子系统来实现共享内存
图l Linux内核结构
造成负载,将Linux桌面操作系统在这些负载条件下完成特定作业工作量的响应时间、CPU时间、CPU利用率等作为衡量的参数,最终所得的参数数据是平均数据,是更能体现系统性能的持续性能,而不是峰值性能。
2 各工作量的设计与实现
作为负载的负载工作量和作业工作量的选取是否得当,对测试工具的编写以及测试结果有着至关重要的意义。2.l 设计负载工作量2.l.l 设计处理器负载
通过两个进程对双向进程间通信管道的循环读写操作这一实际工作量来测试处理器上下文切
换[4]
的性能并作为负载,具体过程如图2所示。
图2 双管道读写示意图
实现细节上定义两个管道intprevfd[2],cur-rfd[2];检测fork()的返回值,如果是新创建的子进程则cIoseprevfd[l]和currfd[0],开始从prevfd0]读,往currfd[l]写;同理如果还是原进程(父进程)则执行相反的操作。用fork创建N个进程按以上双管道方式对两管道进行读写,直到收到中止信号为止,这样对进程调度子系统造成负载压力。
2.l.2 设计内存负载
内存管理子系统是最复杂的一个子系统,影响Linux内存管理效率的两个最主要因素是页面
分配算法和页面淘汰算法
[5-6]
。通用的测试内存分配延迟的算法例子如下:
[
操作系统
276
大 连 轻 工 业 学 院 学 报
staticnum_of_pages[]={128,512,1024,
本机上),线程数作为Dbench参数。2.1.5 设计网络负载
第25卷
2048,4096};
char*mem[6];for(i=0;i<6;i++){
mem[i]=(char*)maIIoc(num_of_pages[i];*PAGE.SIZE)}
for(i=0;i<6,i++)free(mem[i]);在循环中用maIIoc分配内存,每次分配1M内存,并且用memset函数用“1”填充该段内存空网络子系统的负载实现模拟CS模式的多用户请求。运行支持多线程的socket服务器进程监听网络,用fork创建N(根据机器性能和测试需要而定)个进程,创建socket进行连接并传输固定大小的同一个文件,结束时关闭socket退出。具体实现细节与文件系统负载同理,也要通过调用ex-ecIp()实现。
2.1.6 设计目录树负载
间,尽可能地为测试进程分配最大化内存,大小为实际物理内存ram加上交换分区swap减去系统保留空间(Linux桌面系统暂定为64M大小,为操作系统保障运行所需最少空间),然后就是把这些1M大小的内存段分成两部分,进行两部分内存段间的一一对应拷贝,用的函数是memcpy()。这样内存管理子系统也处于负载状态。2.1.3 设计IO负载
利用Linux两个特殊设备文件进行大数据量的IO读写操作:
(1)/dev/nuII
/dev/nuII为空设备,也称为位桶(bitbuck-et)。任何写入它的输出都会被抛弃。
(2)/dev/zero
/dev/zero为另一个类似的设备文件,该设备无穷尽地提供0,
可以使用任何你需要的数目。打开一个要读取的文件,同时打开/dev/nuII,用read函数将文件分次读到缓冲区里,用write函数把缓冲区的内容扔到位桶/dev/nuII里,大小为物理内存大小。循环反复这一过程的同时从/dev/zero里read出0来,用write写到文件中。2.1.4 设计文件系统负载
调用Dbench产生一定数目的Dbench访问线程对文件系统进行连接、创建目录、生成文件、写文件、读文件、关闭文件、文件改名、文件查找、文件删除、目录删除、获取路径信息、获取文件信息等一系列文件系统的操作。只用Dbench来产生负载,不输出Dbench的运行结果,因为文件系统吞吐量不是本文关心的指标。具体实现设置信号量如下:
sa.sa_handIer=&sig_term;sigfiIIset(&sa.sa_mask);sa.sa_fIags=SA_RESTART;
这样在没有收到系统中止信号sig_term的时候,就在for(;;)循环中用execIp()系统调用函数调用Dbench执行(前提是Dbench已经安装在
Inode节点和目录树的结构直接关系到文件管理的性能。inode结构描述文件中数据占据哪个块以及文件的存取权限、文件修改时间及文件类型。文件系统中所有的inode都被保存在inode表中,遍历这个庞大的inode表取出相关文件信息,本身就构成了压力负载。对整个目录树进行打包备份,生成个tar文件存储在磁盘上,然后再对这个tar备份文件进行解压操作。2.2 设计作业工作量
Linux桌面操作系统具有更加友好的用户界面、更多更方便的图形应用程序。xwindows的目录图形显示是通过调用Is命令将列举目录结果通过管道传递给xwindows的图形显示接口来实现的。在这些负载工作量运行的同时运行Is列举目录树,是为了测试各种负载条件下系统响应。应用场景如多用户、多任务的Linux操作系统。用户边拷贝文件(IO负载)边点击其他窗口运行其他程序。这个响应时间直接影响用户使用感受。之所以要选Is目录树作为作业工作量,是因为最典型且容易实现。就列举目录来说自身并不能造成负载压力,但是在各种负载抢夺系统资源的条件下,再人为加大调整目录文件的个数和文件夹的多层次性,那么列举目录树本身也是个费事费时的工作量。为了保证作业工作量的不变性,被列举的目录文件数目和大小保持同一性,放在一个独立分区里。
把列举目录树作为作业工作量,其他的负载工作量作为负载,测试Linux桌面操作系统在这些特定负载条件下完成这一作业工作量的响应时间、CPU时间、CPU占用率等。同时也输出各负载工作量的运行次数,完成一个任务周期的平均时间、平均CPU时间,平均CPU占用率等参数。这样以作业工作量的响应时间、CPU占用率等参数为主,负载工作量的运行参数为辅共同来评价系统性能。
操作系统
第4期
李媛媛等:Linux桌面系统性能评价的负载测试
277
3 测试结果
基于本文的研究内容,作者在redhat9系统下完成了测试软件的编写。基于此软件和固定测试用机对4种不同的Linux桌面版本操作系统进行了测评。
write()和网络对于TurboLinux调度上表现差了点;
1O而言是个瓶颈;Redhat9在内存管理和文件系统RedfIag4.O在read()性能上有待提上有待提高;高。
以上是横向对比不同版本的性能,对于单个表1 测试用机配置
CPUInteIPentium42.8OG内存512M
硬盘WD8OOBB8OG显卡主板集成InteI82865G网卡主板集成InteIPRO/1OOOM根分区26G大小的ext3格式主分区交换分区1.5G大小的swap交换分区安装模式desktop安装模式+GCC编译器用户
根用户root
为了排除偶然性,测试程序在每一种Linux桌面下平均运行1O次,取最后的平均值作为结果。篇幅有限以文件系统负载为例如表2所示。
总体上讲,2.6内核在文件系统方面性能要优于2.4内核,这是内核改进后造成的差异。从单个系统角度上讲文件系统性能最优的是Fedoracore3,其次是TurboLinux1O。
表2 文件系统负载下的测试结果
Redhat9Fedoracore3RedfIag4.OTurboLinux1O
(Linux2.4.2O)(Iinx2.6.9)(Linux2.4.2O)(Linux2.6.O)
Time/s3O28524O812891925693CPU/%O.O2O.34O.O1O.12LCPU/%5.177.348.372.4Loads
5
3
9
6
最后将各个测试结论综合评价,如表3所示。
表3 综合评价表
Redhat9Fedoracore3RedfIag4.OTurboLinux1O
(Linux2.4.2O)(Iinx2.6.9)(Linux2.4.2O)(Linux2.6.O)
无负载最优其次带缓存最优其次
其次处理器负载其次
最优内存负载最优其次Read()负载最优其次
Write()负载其次最优文件系统负载最优
其次
网络负载其次最优目录树负载
最优其次
可以看出,2.4内核在进程调度、网络性能方面优于2.6内核,而2.6内核文件系统和I/O读写性能上相对2.4内核有了很大提高,这和2.6内核针对文件系统预读、回写和小文件操作的优化有关。横向比较来看,这4种流行的Linux桌面操作系统性能最优的是Fedoracore3,其次是Redhat9。从单个系统角度看出这个系统在哪些方面性能表现不错,如Fe-doracore3在内存管理,文件读写,文件系统方面性能表现不错。至于说系统瓶颈,Fedoracore3在进程
的Linux版本性能测试而言,本文的测试手段也可以确定其能够接收的性能极点,以进程调度子系统负载为例,可以测试内核在数目不断递增的多进程双管道读写的性能对比,来确定系统不能接收的性能点和瓶颈。
4 结束语
为了检验本文研究内容和测试工具的正确性,在对每个Linux桌面操作系统进行相关测试之后,就现有的环境用最流行的Unix类操作系统微观基准测试工具Unixbench进行了测试。从综合得分Unixbench由各项微观基准测试数据按一定的算法计算得出)来看,性能最高的是Fedoracore3,其次是Redhat9,这和本文的测试结论是相吻合的。从微观细节上看,2.6内核在文件读写性能方面是要优于2.4内核,而CPU浮定点运算能力方面2.4内核要优于2.6内核,这和本文的总结结论也是相吻合的,也是和内核改进的趋势相吻合的。相对于现有的微观基准测试方法,本文宏观上的具体实现具有创新性,易于实现且有实际应用价值,能够快速的测试出系统内核的瓶颈所在,必能更好地推动Linux系统的发展。
下一步的后续工作是通过反复的实验,总结出纵向比较的基准数据参数,建立起测试基线数据库。
参考文献:
1]谢伟毅.Linux调度算法在桌面应用环境中的改进
[J].计算机工程与应用,2OO6,23(7):1O1-1O3.2]LINFENTONN.Softwaremeasure:anecessaryscientific
basis[J].IEEETransonSoftwareEngineer,1994,2O(3):199-2O6.
3]BALSAAD.LinuxBenchmarkingHOWTO[EB/OL].
(1997-O8-15)[2OO6-O9-2O].http:///docs/Linux-HOWTO/Benchmarking-HOWTO.htmI.4]BOVETDP,CESATIM.UnderstandingtheLinuxKer-neI[M].2nded.北京:中国电力出版社,2OO4.5]吴邦欲.提高Linux桌面交互性能的主动页面换出算
法[J].计算机工程,2OO6,32(17):112-114.
6]赵炯.Linux内核完全注释[M].北京:机械工业出
版社,2OO4.
([[[[[[
操作系统
Linux桌面系统性能评价的负载测试
作者:作者单位:刊名:英文刊名:年,卷(期):
李媛媛, 蒙会民, 肖鹏, LI Yuan-yuan, MENG Hui-ming, XIAO Peng
李媛媛,LI Yuan-yuan(大连交通大学,软件学院,辽宁,大连,116028), 蒙会民,肖鹏,MENG Hui-ming,XIAO Peng(大连轻工业学院,信息科学与工程学院,辽宁,大连,116034)大连轻工业学院学报
JOURNAL OF DALIAN INSTITUTE OF LIGHT INDUSTRY2006,25(4)
参考文献(6条)
1.BOVET D P;CESATI M Understanding the Linux Kernel 20042.BALSA A D Linux Benchmarking HOWTO 2006
3.LINFENTON N Software measure:a necessary scientific basis[外文期刊] 1994(03)4.谢伟毅 Linux调度算法在桌面应用环境中的改进[期刊论文]-计算机工程与应用 2006(07)5.赵炯 Linux内核完全注释 2004
6.吴邦欲 提高Linux桌面交互性能的主动页面换出算法[期刊论文]-计算机工程 2006(17)
本文链接:/Periodical_dlqgyxyxb200604011.aspx
正在阅读:
Linux桌面系统性能评价的负载测试07-29
第3章 移动信道的噪声和干扰05-21
单选题训练303-18
14-15学年第一学期第二大周工作总结05-24
一年级数学上册期末复习(易错题、易考题)04-05
2013-2018年机床附件制造行业市场深度分析与投资前景预测07-09
2019好家风好家训征文范文06-14
2018量化细化的优质护理目标及措施05-13
(烟水)程序资料--内页--改01-08
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 负载
- 桌面
- 性能
- 评价
- 测试
- 系统
- Linux
- 饱和粘性土劈裂注浆加固室内试验
- 青州龙兴寺佛教造像的艺术特色
- 第五章 行政领导20110918
- 工业电阻炉安装功率的计算
- 医师定期考核中医妇科学题库
- 压控振荡器原理和设计
- 嘉兴南湖区2016中考第一次模拟统考试卷2016.4--九社政
- 52开发项目结算总结及成本分析及后评估报告
- 运用因子分析法综合评价广东烟草工业经济效益
- 1如何认识销售沟通
- 2013韩山师范学院专升本插班生考试《政治经济学》课程试卷
- 2020版:女性避孕方法临床应用的中国专家共识(全文)
- 如何编制发改委立项用模具抛光喷漆项目可行性研究报告(甲级-发改委-经信委-商务局-备案-核准)
- 淘宝制作全屏通栏店招(图文并茂,一看就明白)
- 同济大学c++第八章
- 中华人民共和国侵权责任法全文
- 精品解析:北京东城二中2016-2017学年八年级下学期期中数学试题(原卷版)
- 农业农村工作基本常识
- 北邮经济管理学院保研2015年接收推荐免试研究生(含直博生)实施办法
- 木麻黄抗逆性研究进展