9 服务器资源估算方法
9.1.1 方法一:数据库服务器TPC-C估算法
适用范围:适用于对数据库服务器(应用服务器、Web服务器可参考)所需服务器的CPU能力进行估算。根据估算出的TPC-C值选择合适的服务器和服务器配置。
原理介绍:该估算法是通过计算应用系统峰值每分钟需要处理的业务交易数,再综合考虑业务交易的复杂程度、未来业务交易数量的增长和CPU处理余量等因素,通过公式计算得出一个估算值,以此来评估需要服务器必须达到的TPC-C值。
计算公式:TPC-C值 = ((TASK x 80%) /T) x S x F/C
参数解释:
TASK:典型工作日平均业务交易总量,指的是应用系统需要处理的用户业务请求的总和。
TASK x 80%:假设典型工作日80%的业务交易集中在高峰时段。
TASK x 80% / T: 即应用系统峰值每分钟处理的业务交易数。
T:应用系统典型工作日业务交易峰值(完成80%交易)持续时间,以分钟为单位。
S:实际业务交易操作相对于标准TPC-C测试基准环境交易的复杂程度比例。
F:系统未来的业务交易量发展冗余预留,需要根据应用系统情况估算。
C:服务器CPU利用率估算值。实际应用经验表明,服务器的CPU利用率高于80%则表明CPU的利用率过高会产生系统瓶颈,而利用率处于75%时,是处于利用率最佳状态。此值一般设定为C=75%。
计算步骤:
步骤一:估计应用系统平均典型工作日处理的业务交易总量
可以通过以下方法估算:
1、估算典型工作日平均登录系统的用户数。
2、估算平均典型工作日每个用户执行的业务交易数。例如,如果平均每个用户执行五次查询、五次修改和五次保存操作,那么平均每个用户执行的事务数为15次。
3、根据1和2估算出应用系统平均每典型工作日处理的业务交易总量。
步骤二:估算应用系统每日峰值持续时间(单位为分钟)
估算应用系统典型工作日峰值持续的时间,指的是应用系统典型工作日每天繁忙的时间。例如,股票交易系统每天的繁忙时间为上午9:30至
11:30和下午13:00至15:00,那么它的峰值持续时间为3+2 = 5 小时=300分钟。
步骤三:估算应用系统峰值每分钟需要处理业务交易数
计算应用系统峰值每分钟需要处理业务交易数时,需要估算典型工作日高峰时间处理的业务交易数占每天平均处理的业务交易总数的比例。通常按照20-80的原则进行估算,即80%的业务交易在高峰时间进行,20%的在非高峰时间进行。
根据上述步骤,可以算出应用系统峰值每分钟需要处理业务交易数。
步骤四:估算应用系统事务复杂度
由于实际业务交易的复杂程度与TPC-C标准测试中的业务交易存在较大的差异,应设定一个合理的对应值,根据经验,简单事务的S值为2-5,一般复杂事务为6-12,较复杂事务为13-16,高度复杂事务为17-20。针对数据库服务器,S值建议设置为15。
步骤五:估算应用系统未来一段时间后预留量。
如果预计未来用户数翻番,预留量即为200%。
步骤六:将以上各参数值代入公式,计算出TPC-C值。
步骤七:根据计算出TPC-C值,选择等于或者大于TPC-C值的目标服务器。
9.1.2 方法二:未公布服务器TPC-C值估算法
适用范围:本方法适用于通过厂商已公布型号服务器的TPC-C值估算未公布服务器的TPC-C值。
原理介绍:厂家通常会在www.tpc.org上公布满配置的某一型号服务器的TPC-C值,对于非满配置的服务器需要进行估算,而TPC-C性能指标反映的是服务器的整体性能指标,包括:系统结构、处理器、缓存、内存、I/O等,因此不能简单从TPC-C值推算出CPU、内存的数值,需要综合考察设备的整体性能。为了简化计算,假设服务器的TPC-C值和CPU数和频率呈线性关系,因此可以根据满配置的服务器大概估算出非满配置的相同型号或同档次服务器的TPC-C值。
计算公式:
目标配置服务器的TPC-C值 ≈(同型号服务器满配置的服务器的TPC-C值÷CPU个数÷CPU主频频率)*
估算服务器的CPU个数*CPU主频频率
计算步骤:
步骤一:获取满配置同类型服务器的TPC-C值,可以在www.tpc.org查到最新的某些类型的服务器TPC-C值或者通过厂商获取该值。
步骤二:将满配置服务器型号的CPU个数和主频、目标配置的服务器的CPU个数和主频等代入公式。
步骤三:通过公式计算目标配置的服务器的TPC-C值。
9.1.3 方法三:Web服务器SPECweb2005估算法
适用范围:适用于为支持满足特定吞吐量和客户请求响应速率要求的WEB服务器的性能进行估算。
原理介绍:Web服务器通常需要衡量它可以支持满足特定吞吐量和客户请求响应速率要求的WEB服务器的最大并发连接数量,而SPECweb2005是由标准性能评估组织(SPEC)专门开发的的Web服务器基准测试。服务器厂商通常会提供每种型号服务器的SPECweb2005值。使用本方法估算不考虑网络因素,假设客户端和服务器位于同一局域网中,网络传输时间可以忽略。
计算公式:SPEC Web2005值= (总用户数 * 在线率 * 在线用户平均发起http请求数)/ (1 —
冗余率)
参数解释:
总用户数:应用系统总的用户数。
在线率:应用系统使用高峰时用户的在线率。
在线用户平均发起http请求数:平均每个在线用户发起的http请求数量。
冗余率:需要预留的冗余率。
计算步骤:
步骤一:估算系统总的用户数。
步骤二:估算应用系统使用高峰时用户的在线率。
步骤三:估算平均每个用户发起的http请求数量。
步骤四:设置预留的冗余率。
步骤五:将步骤一、二、三、四的估算值代入公式,计算出SPECweb2005值。
步骤六:根据计算出SPECweb2005值,选择等于或者大于SPECweb2005值的目标服务器。
9.1.4 方法四:应用服务器SPECjbb2005估算法
使用范围:适用于估算Java类应用服务器所需达到的服务器性能。
原理解释:SPECjbb2005是评估服务器端Java性能的SPEC测试工具。SPECjbb2005通过模拟三层C/S系统(主要是中间层)来评估服务器端Java的性能。该测试软件运行JVM(Java虚拟机)、JIT
(Just-In-Time)编译器、碎片收集、线程以及操作系统的其他任务,它同时也测量CPU、Cache、内存和
SMP的性能。
服务器上运行基于J2EE的中间应用软件平台,可以将其应用处理能力量化为Java处理能力性能值SPECjbb2005,同时充分考虑系统的冗余处理能力以及系统资源分配情况,即可估算出服务器的处理能力性能值。
公式:SPECjbb2005 =A×B/(1-C-D)
参数解释:
A:每秒最多需要同时处理的业务交易量。
B:每笔业务交易需消耗的SPECjbb2005峰值,根据经验,每笔业务交易消耗一般为200个bops,或根据该笔业务交易的java语句数量进行计算,B=该笔业务交易的java语句数/5。
C:系统的冗余处理能力。
D:非Java应用所占用的系统资源百分比。
例如某系统业务交易峰值为1000笔/秒,系统冗余处理能力预留30%
,非Java应用所占用的系统资源百分比为20%,根据计算公式,服务器SPECjbb2005性能值为:1000*200/(1-30%-20%)=400,000。
9.1.5 方法五:数据库服务器内存估算法
适用范围:适用于估算数据库服务器(应用服务器、Web服务器可参考)所需的内存。
原理介绍:数据库服务器相对其他服务器来说,因为涉及大量的数据处理,需要把数据载入内存,以加快处理速度,所以需要更多的内存。对于内存的估算一般有下述两种方法,建议采用下述两种方法分别估算出所需的内存,取其中最大的数值。
计算方法:
方法一:
根据标准化设计,将数据库内存容量(单位为G)和CPU的核心的数量的比例按照4:1配置,一个CPU的核心对应4G内存。例如服务器配置两个4核CPU则建议配置32G内存。
方法二:
原理介绍:数据库服务器的内存主要包括:操作系统占用内存、数据库系统占用内存、数据库并发网络连接占用内存等。按照经验,Windows平台内存占用率不超过55%、Unix(或Linux)平台内存占用率不超过80%时,不会影响系统的性能。
计算公式:
数据库服务器(Windows平台)内存 = (操作系统占用内存+数据库占用内存+数据库并发网络连接占用内存+其他软件占用内存)/
55%
数据库服务器(Unix或Linux平台)内存 = (操作系统占用内存+数据库占用内存+数据库并发网络连接占用内存+其他软件占用内存)/
60%(前置条件:操作系统占用内存+数据库占用内存+数据库并发网络连接占用内存+其他软件占用内存≤4G)
数据库服务器(Unix或Linux平台)内存 = (操作系统占用内存+数据库占用内存+数据库并发网络连接占用内存+其他软件占用内存)/
80%(前置条件:操作系统占用内存+数据库占用内存+数据库并发网络连接占用内存+其他软件占用内存>4G)
参数解释:
操作系统占用内存:操作系统运行需要占用的内存。
数据库占用内存:数据库服务器运行需要占用的内存。
数据库并发网络连接占用内存:数据库客户端和数据库服务器之间连接时,数据库服务器需要花费的内存。
其他软件占用内存:数据库服务器中其他软件运行需要占用的内存。
计算步骤:
步骤一:估算操作系统所占用内存
操作系统所占用内存具体和操作系统类型和版本相关,一般为600M内存。
步骤二:估算数据库系统占用内存
数据库系统占用内存主要包括:数据库服务器软件占用的内存和数据库缓存。其中数据库缓存和数据库大小相关,根据经验,数据库服务器在缓存容量达到数据库经常访问数据总量(注:数据库总量不包括系统数据)的5%时性能较好。数据库总量可以根据5.2
节中数据库数据估算的方法计算。因此,数据库系统缓存=数据库经常访问数据总量*5%。
数据库服务器软件占用内存和所用的数据库管理软件及版本相关,按照经验,一般为200M内存。
步骤三:估算数据库并发网络连接占用内存
数据库并发网络连接数每个占用5M。假设有200个连接,即并发连接占用内存为200 * 5M =
1000M。
步骤四:估算其他软件占用内存
先估算需要安装的软件,再估算每种软件占用内存的总和。为了简化计算,可以先估计每种软件占用内存大小Mi,再估计安装的软件数Ni,即其他软件占用内存=
。
步骤五:估算所需内存
根据上述公式,估算所需内存。