KVM虚拟机性能优化与应用 黄秋兰 高能物理研究所 2013-07-10
报告内容 研究背景及意义 KVM虚拟机性能测试 性能优化与结果 KVM虚拟机的应用 小结
集群环境及存在问题 计算资源情况 共7288个核,BES应用占有4606核 存在问题 多应用抢占 资源利用率不高 资源共享性差
计算集群虚拟化 集群虚拟化带来的好处 提高资源利用率 提高资源调度效率 简化管理 集中管理,提高数据安全性 提高平台异构性,支持更多的应用 绿色、节能 基本方案:KVM虚拟机+OpenStack KVM基于 Intel VT 技术和 AMD SVM 技术的硬件辅助虚拟化方案,并结合 QEMU 模拟器实现设备的虚拟化,具有良好的性能 IO密集型应用下,开销和性能上有待提高 多核环境下,KVM的性能存在挑战
KVM虚拟机的性能测试 KVM性能测试 基准测试工具 CPU 磁盘IO 网络IO CPU benchmarks: HEPSPEC06 I/O benchmarks: IOZONE Network benchmarks: IPERF
CPU的基准测试 测试环境 测试工具 测试结果 Intel(R) Xeon(R) CPU X5650(2.67GHz),8核,24GB内存 系统版本:SLC release 5.5 (Boron) 2.6.18-194.11.3.el5.cve20103081,64bit KVM-83 测试工具 HEPSPEC06 测试结果 KVM上平均大小为10.47 物理机上为11.77 CPU计算能力损失~10%
磁盘IO的性能测试 测试环境 测试方法 测试工具 结果分析 Intel(R) Xeon(R) CPU X5650(2.67GHz),8核,24GB内存 系统版本:SLC release 5.5 (Boron) 2.6.18-194.11.3.el5.cve20103081,64bit KVM-83 测试方法 在物理机上运行8个虚拟机,每个虚拟机分配1个CPU,2GB内存,使用IOZONE同时在8个虚拟机上执行 在物理机上并行8个IOZONE的进程 测试工具 IOZONE 结果分析 KVM虚拟机在磁盘IO上的性能损失比较大,损失率约为12%
网络IO的性能测试 测试环境 测试方法 测试工具 结果分析 Intel(R) Xeon(R) CPU X5650(2.67GHz),8核,24GB内存 系统版本:SLC release 5.5 (Boron) 2.6.18-194.11.3.el5.cve20103081,64bit KVM-83 测试方法 物理机上运行8个虚拟机(1个CPU,2GB内存),在客户机上使用IPERF同时与8个虚拟机上建立测试 在客户机上起8个并行的线程连接物理机测试 测试工具 IPERF “-p 11522 -w 458742 -t 60”,TCP窗口值为256KB,测试时间持续60秒 结果分析 KVM虚拟机的网络IO与物理机上的相差不多,损失率约为3%
KVM性能优化 默认条件下 CPU亲和性 扩展页表EPT(Extented Page Table) KVM虚拟机的CPU和磁盘IO性能的损失率为10%和12% 网络IO的损失率在3%左右 CPU亲和性 将进程绑定到特定的一个或多个CPU上去执行,而不允许调度到其他的CPU上 减少进程在处理器间频繁迁移,使Cache的命中率得到提高,从而提高进程的性能 扩展页表EPT(Extented Page Table) EPT 是Intel 在VT-x技术基础上增加的一种硬件辅助内存虚拟化技术 关闭EPT选项 modprobe kvm-intel enable_ept=0
优化结果 客户机操作系统中的VCPU与物理CPU进行绑定 未启用扩展页表 CPU性能测试 测试结果 测试环境 测试工具 Intel(R) Xeon(R) CPU X5650(2.67GHz),8核,24GB内存 系统版本:SLC release 5.5 (Boron) 2.6.18-194.11.3.el5.cve20103081,64bit KVM-83 测试工具 HEPSPEC06 测试结果 CPU计算能力的平均值由10.47提高到10.7 由优化前的区间[10.2,10.9)往右偏移为[10.2,11.1) 扩展页表选项关闭后,区间右移到[10.9,12.5),性能进一步提升 优化后KVM虚拟机的计算能力提高了约3%
优化后的CPU性能 优化后 优化前
优化后的磁盘IO性能 测试环境 测试方法 测试工具 实验结果 Intel(R) Xeon(R) CPU X5650(2.67GHz),8核,24GB内存 系统版本:SLC release 5.5 (Boron) 2.6.18-194.11.3.el5.cve20103081,64bit KVM-83 测试方法 在物理机上运行8个虚拟机,每个虚拟机分配1个CPU,2GB内存,使用IOZONE同时在8个虚拟机上执行 在物理机上并行8个IOZONE的进程 测试工具 IOZONE 实验结果 绑定VCPU与物理CPU和关闭扩展页表选项,对磁盘IO性能的影响不大
高能物理作业在KVM虚拟机的性能测试 高能物理计算 CMS实验 BES实验
CMS实验 虚拟机 物理机 提交10个CMS作业,分别运行在物理机和KVM虚拟机上 10个RFIO访问协议,10个XROOT协议访问文件 1个CPU,2GB内存 物理机 8个CPU,16GB内存 提交10个CMS作业,分别运行在物理机和KVM虚拟机上 10个RFIO访问协议,10个XROOT协议访问文件 比较CPU time、Wall time 实验表明,虚拟机上运行同样的CMS作业有一定性能损耗,损耗多少与作业有关,RFIO类型的损耗不大,XROOTD作业相对大些
BES实验 实验结果 BES模拟作业 (BOSS 6.6.0 ) 实验环境一 实验环境二 物理机和虚拟机上各运行如下作业,事例数1000 BesRndmGenSvc.RndmSeed=483366; #include "$BESSIMROOT/share/G4Svc_BesSim.txt" #include "$CALIBSVCROOT/share/calibConfig_sim.txt" RealizationSvc.RunIdList= {-9989}; #include "$ROOTIOROOT/share/jobOptions_Digi2Root.txt" DatabaseSvc.SqliteDbPath="/panfs/panfs.ihep.ac.cn/home/data/dengzy/pacman_bak/database"; RootCnvSvc.digiRootOutputFile= "/scratchfs/cc/shijy/rhopi-bws0106-1.rtraw"; MessageSvc.OutputLevel= 5; ApplicationMgr.EvtMax=10000; 实验环境一 虚拟机 1CPU cores,2GB内存 物理机 8CPU cores,16GB内存 实验环境二 虚拟机 2CPU cores,2GB内存 实验结果 实验一:虚拟机上运行时间为1:58:42,物理机上运行时间1:42:04,性能降低了16% 实验二:虚拟机上运行时间为1:45:05,物理机上运行时间1:42:04,性能降低了2.9%
BES实验 实验结果 BES分析作业 (BOSS 6.6.2 ) 实验环境 物理机和虚拟机上各运行如下作业,ApplicationMgr.EvtMax = 1E9 "/besfs2/offline/data/663-1/jpsi/tmp2/120520/run_0028145_All_file006_SFO-1.dst", "/besfs2/offline/data/663-1/jpsi/tmp2/120520/run_0028145_All_file006_SFO-2.dst" }; // Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) MessageSvc.OutputLevel = 6; // Number of events to be processed (default is 10) ApplicationMgr.EvtMax = 1E9; ApplicationMgr.HistogramPersistency = "ROOT"; 实验环境 虚拟机 1CPU cores,2GB内存 物理机 8CPU cores,16GB内存 实验结果 虚拟机上作业运行时间为8:04:47,物理机上运行时间7:48:32,虚拟上运行时间多了975s,性能降低约为3%
计算服务门户 资源需求信息 (最小要求、 最大要求、 软硬件环境等) 云终端 资源管理 调度器 OpenStack 分布式计算系统接口 提交任务(批处理、 MPI、Mapreduce、 网格作业等任务) 虚拟机启动、暂停、 撤销、迁移 结果 返回 虚拟计算环境 查询与修改 队列 分布式任务 管理调度器 Torque/Maui 虚拟机 虚拟机 虚拟机 虚拟机 电源 管理 物理机器 物理机器
云计算平台的进展情况 已经部署4个物理节点,32个虚拟机,提供的服务有:nagios服务、计算中心的工作周报、月报系统、CloudOffice、SDN服务等 虚拟机管理软件: OpenStack 虚拟机hypervisor :KVM 面向天体物理的云计算平台建设与研究 CloudScheduler的设计开发,负责虚拟集群的调度 与作业调度系统PBS结合,负责虚拟机的远程启动、停止、重启等操作 每个虚拟机有生命周期
小结与展望 在客户机操作系统的VCPU与物理CPU绑定和关闭扩展页表选项时,KVM虚拟机的CPU性能最好,损失率约为3%,CPU计算能力与优化前相比,提高了%6~8% 优化后的磁盘IO性能的提升不大,这与KVM虚拟机的IO虚拟化有关,需要进一步从KVM客户机操作系统源码分析与优化 优化后的KVM虚拟机比较适合CPU密集型和网络IO密集型的应用 下一步对YBJ、DaYaBay、Atalas作业的测试
谢谢大家!