二、服务器优化(2)版本更新与负载预估

一、历史版本

  在SQL Server 中运行以下查询,可得出版本号:

select @@version

 

   查询结果示例如下:

Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64)   Mar 29 2009 10:11:52   
Copyright (c) 1988-2008 Microsoft Corporation  
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

 

8.00.194.0           SQL Server 2000 RTM

8.00.384.0           SQL Server 2000 SP1

8.00.534.0           SQL Server 2000 SP2

8.00.760.0           SQL Server 2000 SP3/SP3a

8.00.2039            SQL Server 2000 SP4 

 

9.00.1399            SQL Server 2005 RTM

9.00.2047            SQL Server 2005 SP1

9.00.3042            SQL Server 2005 SP2

9.00.4035            SQL Server 2005 SP3

9.00.5000            SQL Server 2005 SP4

 

10.00.1600           SQL Server 2008 RTM

10.00.2531           SQL Server 2008 SP1

10.00.4000           SQL Server 2008 SP2

10.00.5500           SQL Server 2008 SP3

 

10.50.1600           SQL Server 2008 R2 RTM

10.50.2500           SQL Server 2008 R2 SP1

10.50.4000           SQL Server 2008 R2 SP2

10.50.6000           SQL Server 2008 R2 SP3

 

11.00.2100           SQL Server 2012 RTM

11.00.3000           SQL Server 2012 SP1

  

12.0.2000            SQL Server 2014


可以参考http://support.microsoft.com/kb/321185/zh-cn 

 

二、TPC简介

1. TPC

  TPC即事务处理性能委员会(Transaction Processing Performance Council),是由数十家会员组成创建的非盈利机构,也是国际权威的第三方性能评测机构,其功能是负责制定商务应用测试基准规范并监督、管理发布测试结果,其总部设立在美国,官方网址为http://www.tpc.org/default.asp。

  TPC发布了TPC-A、TPC-B、TPC-C、TPC-D、TPC-E、TPC-H、TPC-R、TPC-W、TPC-APP等数套基准规范,其侧重点各有不同,有些基准规范已经过时并废弃不用,如TPC-A测试基准。

  TPC组织不给出基准程序的代码,而只给出基准程序的标准规范。任何公司或个人都可以作为测试者按照规范开发、优化自己的测试系统,但为了保证测试结果的完整性和公正性,测试者都必须提交给TPC一套完整的测试报告:包括被测试系统的各部分配置说明、价格,以及原程序代码、测试结果等信息;该报告和系统由TPC分布在全球的审核员进行现场审核并最终发布。

 

2. TPC-C

  TPC-C是TPC Benchmark C的简称,自1992年沿用至今,是一个OLTP测试基准,其意在衡量联机事务处理系统的性能和性价比。

  TPC-C模拟了一个货物批发商的管理系统,如下图所示。该公司有W个仓库,每个仓库供应10个地区的货物,每个地区为3000名客户提供服务。每个仓库有10个终端,每个终端对应着一个地区,操作员在10×W个终端上向公司系统发送5种请求:新订单(New-Order)、付款(Payment)、发货(Delivery)、查询订单状态(Order-Status)、查询库存(Stock-Level)。W是一个可变的参数,可以更改W以获得最佳的测试结果。

140917940.png

 

  TPC-C使用性能和价格度量,其中性能由tpmC(transactions per minute,tpm)衡量,C指TPC中的C基准程序。它的定义是每分钟内系统处理的新订单个数。新订单(New-Order)、付款(Payment)、发货(Delivery)、查询订单状态(Order-Status)、查询库存(Stock-Level)5种交易中,除付货交易是事后批处理,其余4种皆为联机交易。要注意的是,在处理新订单的同时,系统还要处理其他4类事务请求。通常而言,新订单请求不可能超出全部事务请求的45%,因此,当一个系统的性能为1000tpmC时,它每分钟实际处理的请求数是2000多个。

  TPC-C还以系统性能价格比的方式体现,单位是$/tpmC,即以系统的总价格(单位是美元)/tpmC数值得出。

 

3. TPC-E

  2007年3月TPC宣布批准了名为TPC-E的新标准以取代TPC-C标准。http://server.it168.com/a2008/0910/204/000000204400.shtml

  TPC-E的测试指标与TCP-C类似,时间单位从TPC-C中的以分钟计变为TPC-E中的以秒计。性能指标(tpsE, transactions per second E)是指系统在执行多种交易时,每秒钟可以处理多少交易,其指标值越大越好;性价比指标(美元/tpsE)是指系统价格与前一指标的比值,数值越小越好。

  TPC-E对模型进行大刀阔斧的创新――模拟证券经纪公司(以NASDAQ为原型)而不是批发商的流量和交易模式,从C/S架构过渡到B/S架构,数据类型从原来的3种扩展到10种,事务类型从原来的5种增加到12种,数据表由原来的9个增加到了33个,数据库构成更加复杂,也更加符合实际应用,当然对服务器的性能要求也更高了。

143740930.png


4. TPC测试的硬件成本

  由于TPC-C的模型比较简单,服务器在测试时只是做一些简单的数据查询、修改和删除操作;而在多核计算盛行的今天,针对这种应用,强大的服务器CPU容易处于等待数据的空闲状态,I/O因而成为严重瓶颈。为了提升I/O,保证测试性能,服务器厂商往往需要动用大量的内存和磁盘。比如IBM和惠普公司在获得最高分的TPC-C测试时都使用了7000块硬盘。这使得参加TPC-C测试所需要的成本高达千万美元。如此巨额成本大大提高了TPC-C的门槛,将很多小型服务器厂商拒之门外。而且,从用户角度来看,实际应用可能并不需要如此海量的内存和磁盘,TPC-C结果的适用性也受到了质疑。

  而TPC-E则不同。由于数据库更加复杂,要执行的事务处理更多――TPC-E标准中定义的事务有12种,每个事务对应数据库管理系统中的一个或多个带输入和输出参数的存储过程,而且会涉及到不同表间的关联,这使得服务器CPU容易处在“有事可做”的状态,因而对内存和磁盘I/O的要求也相对小一些,从而大大降低了服务器厂商搭建硬件环境的成本。

 

三、SQL Server的TPC测试的部分结果

  http://www.tpc.org/tpcc/results/tpcc_results.asp

  http://www.tpc.org/tpce/results/tpce_results.asp

 

1. SQL Server 2000

tpmc:  67,754
Price/tpmC:2.36 USD
可用日期:02/14/2005
服务器:  HP ProLiant DL380G4,Intel Xeon - 3.6 GHz,2CPU*超线程,12GB内存
数据库:  Microsoft SQL Server 2000 Enterprise Edition SP3
操作系统:Microsoft Windows Server 2003 Enterprise Edition   

 

2. SQL Server 2005

tpmc:  1,024,380  
Price/tpmC:0.65 USD 
可用日期:06/20/2011
服务器:  HP ProLiant DL380 G7,Intel Xeon X5690 Hex-Core - 3.46 GHz,2CPU*6Core*超线程

数据库:  Microsoft SQL Server 2005 Enterprise Edition x64 SP3
操作系统:Microsoft Windows Server 2008 R2 Enterprise Edition  

 

tpsE:  268.00  
Price/tpsE:795.21 USD 
可用日期:12/11/07  
服务器:  Dell PE2900,Intel Xeon X5460 Quad-Core - 3.16 GHz,2CPU*4Core,48GB内存,232块硬盘  
数据库:  Microsoft SQL Server 2005 Enterprise Edition x64 SP2,db=1,666GB   
操作系统:Microsoft Windows Server 2003 R2 Enterprise Edition x64

 

3. SQL Server 2008

tpsE:  817.15  
Price/tpsE:319.15 USD 
可用日期:07/31/09  
服务器:  IBM System x3650 M2,Intel Xeon X5570 Quad-Core - 2.93 GHz,2CPU*4core*超线程,96GB内存,392块磁盘  
数据库:  Microsoft SQL Server 2008 Enterprise Edition x64 SP1,db=3,163GB   
操作系统:Microsoft Windows Server 2008 Enterprise Edition x64  

 

4. SQL Server 2008 R2

tpsE:  1,284.14  
Price/tpsE:250.00 USD 
可用日期:05/04/11  
服务器:  HP ProLiant DL380 G7,Intel Xeon X5690 Hex-Core - 3.46 GHz,2CPU*6Core*超线程,192GB内存,84块硬盘  
数据库:  Microsoft SQL Server 2008 R2 Enterprise Edition x64,db=5,622GB
操作系统:Microsoft Windows Server 2008 R2 Enterprise Edition   

 

5. SQL Server 2012

tpsE:  1,881.76  
Price/tpsE:173.00 USD 
可用日期:11/21/12 
服务器:  HP ProLiant DL380p Gen8,Intel Xeon E5-2690 - 2.90 GHz,2CPU*8Core*超线程,256GB内存,40块硬盘
数据库:  Microsoft SQL Server 2012 Enterprise Edition , db=7,792 GB
操作系统:Microsoft Windows Server 2012 Standard Edition  

 

 

四、数据库服务器处理性能估算

  系统的建设,必须满足未来3~5年业务发展和管理的需求,所以下面对服务器性能指标的估算,将以满足未来3~5年的需要为基准。以下计算方法转载自 http://blog.csdn.net/educast/article/details/9322437

  假定:
系统同时在线用户数为100人(U1); 
平均每个用户每分钟发出2次业务请求(N1);
系统发出的业务请求中,更新、查询、统计各占1/3
平均每次更新业务产生3个事务(T1);
平均每次查询业务产生8个事务(T2);
平均每次统计业务产生13个事务(T3);
一天内忙时的处理量为平均值的5倍;
经验系数为1.6(实际工程经验)
考虑服务器保留30%的冗余;

 

服务器需要的处理能力为:
TPC-C=U1*N1*T1+T2+T3/3*3*经验系数/冗余系数 

 

则数据库服务器的处理性能估算为:
TPC-C= 100*2*3+8+13/3*5*1.6/0.7= 18,285 TPM

 

 

本文结语:

  购买和配置服务器时,通过对服务器性能指标的估算,以满足长远的需要。

 

本文出自 “我们一起追过的MSSQL” 博客,转载请与作者联系!

你可能感兴趣的:(TPC,PTO)