前一段时间进行了虚拟机平台的性能测试,大家围绕物理机、虚拟机之间的模型,单模块性能测试和集成性能测试方案反复争论了很久。因为是初次尝试,而且这个平台底层依赖Xen,Xen又依赖Linux内核;依赖云计算的操作系统;依赖服务器硬件;同时业务上又被上层应用网站依赖,必须考虑客户网站的性能指标;牵扯点比较多,还是比较复杂的。
最终达成了几点一致:
1.在生产环境集群进行性能测试,因为是尚未上线的项目,所以具备这个条件。另一方面也是考虑到虚拟机平台对物理机的性能、物理机的内核均存在较高的依赖性。在功能测试过程中也经常发现由于硬件或内核的兼容性问题导致整个服务宕机的情况。
2.将模型简化为
a)单物理机单Vm:重点在与物理机的性能进行比较
b)单物理机多VM:重点在看一台物理机理想情况下的能支撑多少台虚拟机
c)多物理机多VM:重点在模拟真实场景下的对虚拟机平台的压力。当然需要有业务指标来权衡如何设置vm的数量和集群机器数量
d)VM镜像性能评估:重点在模拟真实场景下,在虚拟机建站后,站点的性能情况
3. 针对和云计算的操作系统的关联进行单独测试。我们形象的称为灰盒性能测试。
4.长时间压力场景下的稳定性测试
5.重点关注的性能指标:IO、IOPS、Response Time、Memory,没有考虑CPU因为基本上CPU不是瓶颈,在CPU瓶颈之前IO早就撑不住了,当然这也和虚拟化平台本身的设计有关
另外还有很多技术细节,我们这的性能测试工程师也花了不少心思。比如如何IO读写的效率,多VM性能的监控,如何对磁盘产生并发的读写压力,挺有意思。