|
ruituir 提出的问题:
我想问的是性能测试环境管理相关的问题:假如现在有两台物理服务器A、B,应该怎样管理才能快速搭建有效的性能测试环境?
背景:
1、生产环境下,项目部署一般是应用服务器+数据库服务器,小项目部署在虚拟化服务器,大项目则部署在物理服务器上。小项目服务器一般按照通用配置搭建,如CPU4核内存4G等;
2、公司要求所有项目上线前均需要进行性能测试。
我有两种解决方案:
1、物理机模式:将A服务器作为应用服务器,B服务器作为数据库服务器,存在的问题是测试环境A、B的配置均优于生产环境上小项目的通用配置但又低于大项目的配置,如果采用这种模式,对小项目的测试结果就不准确;
2、虚拟化模式:可以解决物理机模式下的问题,但虚拟化也有其他问题,如大项目在虚拟化环境下的测试结果与生产环境下物理机的差异有多大?性能测试是是否也需要监控宿主机的资源使用情况?
上述两种方式各有利弊,您觉得哪种更好?说说理由。或者还有更好的方式?目前业界上通常使用哪种方式来管理?谢谢。
----------------------
smh_dss 提出的问题:
在性能测试时,测试机和客户实际的环境配置是不一致的,测试环境的数据只能作为参考,有没有什么换算规则,来估算配置最优?谢谢
-----------------------------------------------------------------
@ruituir; smh_dss 二位好!
这两个问题我合起来聊一下:
我的想法是,本着以下原则:
1. 性能测试环境 尽可能 与生产环境 配置相近, 但是不要高于生产环境。因为高于生产环境没什么意义, 除非特殊需求“生产环境迁移前比对性能测试”,或者“服务器选型测试”等类别。
2. 生产环境是 物理机情况下, 那么建议性能测试环境也用物理机。 生产环境是虚拟机环境,那么性能测试环境建议也用虚拟机环境。 这样性能测试结果比较有参考价值。
3. 因条件不允许, 性能测试环境 低于 生产环境很大的前提条件下, 以性能测试需求指标为准作为性能测试出口准测,比如说最大处理能力要达到多少多少;规定多少用户并发下 响应时间要在几秒之内则通过达标。
4. 要有硬性的系统资源使用率指标; 比如规定日常CPU平均使用率在95%的使用时间下,不能高于80%, 这样做是为了预留一些系统异常情况下要有充分的CPU%处理。也为对应应急的一种策略,如果CPU100%繁忙度了,一旦系统出了问题,基本操作命令都处理不了,那么基本等于无药可治了。想做一些分析都做不了。
生产系统配比与测试系统配比估算的问题我是这样认为的:
1. 一般来说,生产环境:测试环境 = 2:1 、 3:1、 4:1... 这样严格的配置下,比差越大,测试误差越大。 因为 1台服务器能处理100TPS,不等于2台服务器能处理200TPS。这个道理我想大家都懂。
2. 如果不是严格比例,那么不建议再用比例方式去强推公式, 因为我们还得考虑,CPU型号,内存型号、以及软系统对不同型号硬系统的兼容度,磁盘I/O,转速,存储兼容性、老化性等各种我们无法控制的问题,在细分包括不同机房不同电压都在考虑范围内。 所以,遇到这种条件,建议用上面说的第3、4条 以性能需求指标为准作为性能测试出口准测。 保证低配置的性能测试环境下,指标达标。 |
|