企业里的测试环境大部分都不如生产环境。在测试环境有限的情况下,有什么好的策略可以在有限资源下测出接近生产的性能表现?这个我想也是非常多IT人员比较关注的,缺少环境资源的支持下,是如何做到的呢。
1) 将集群环境改为单台服务器,将有限的资源集中供应某一台服务器。
这样,可以测试单台设备的最大吞吐量。如果集群环境中各个服务器之间没有资源共享、资源征用的话,单台设备的最大吞吐量 * 设备数量 就是整个系统能够达到的最大吞吐量。当然,现实中没有这么理想,往往存在网络共用、存储共用,这就要深入分析这些共享因素对性能的影响了。甚至有些集群还有锁机制,比如Oracle RAC,IBM CF,这些有锁机制的集群不太适合单台的测试。
2) 去掉中间环节的服务器,直接压测核心系统。
例如,一个客户请求过来之后,经过F5、Web服务器、应用服务器、数据库这几个系统,而根据经验判断,前面几个系统都不是性能瓶颈。那么,可以把前面的系统摘掉,采用性能测试工具直接压测数据库服务器。
再比如,业务系统的签名通过签名服务器来完成,但我们想知道签名服务器的最大吞吐量,那么,去掉业务系统,直接压测签名服务器。
收起我的理解是系统架构和软件模型不一样,很难得出一个资源配置同业务处理性能的配比和公式,往往需要大量的资源和人员进行反复测试以获得数据累积。而的问题实质落到最后还是一个基础设施投入的TCO问题,也就是如何为测试环境配置接近生产的资源配置。
目前IBM Power服务器提供一个叫Enterprise Pool的功能,也就是软license的迁移。
如果企业对Power资源池投入有限,一方面可以将灾备环境与性能测试环境复;另一方面可以利用Enterprise Pool功能将灾备Power环境中的license迁移到测试环境,实现CPU资源的调试。但该功能的前提是两边的物理CPU资源充足。(注:POWER CPU的软license所占采购设备成本的比例不低呢)。
这个我觉得分两点
1 是当前的环境,如果可以的话,可以直接以当前的环境进行模拟进行测试
2 如果是针对未来的或者潜在的环境测试,那就需要认真模拟得出系数进行规模测试 如容量,性能参数