在cnbeta看新闻, 这条消息里面的这个部分很有兴趣。
http://www.cnbeta.com/articles/59784.htm
最高峰时期达到了13000个订单/秒
直觉上就是个假数据, 每秒1w3,如果简单折算成pv也有10亿/每日,已经超过新浪流量。需要什么样的硬件环境才能搭建起这样的系统? 为了一个短期的销售行为,o2不可能如此不惜血本。
这种在线预订是比较典型的处理业务, 应该可以用TPC的benchmark做简单评估。顺便爬了一下tpc的概念。
tpc的benchmark主要可以参考的有TPC-C和TPC-E,都是以类似下单这样的case来做事务吞吐量评估。
tpc-c
TPC-C 基准使用一小组事务和表来模拟一家分销企业,对订单系统进行仿真,TPC-C模拟的是中等复杂程度的OLTP业务,由5个事务组成(New-Order-》Payment-》Delivery—》Order-Status-》Stock-Level)。TPC-C吞吐量性能由一个系统每分钟完成的订单混合事务处理数量决定。
TPC-C的基准数据结构可以参考此篇
http://news.softhouse.com.cn/news/show/4160.html
一般来说,我们使用TPC-C做数据库和主机系统的性能参考基准。
目前的top3 如下
TPM TPS
IBM Power 595 Server Model 9119-FHA 6,085,166 101419 DB2
Bull Escala PL6460R 6,085,166 DB2
HP Integrity Superdome-Itanium2/1.6GHz/24MB iL3 4,092,799 ORACLE
这意思是如果只是数据库,达到每秒10w这种变态级别还是没问题的。
TPC-c的计算要注意的2点,一个统计的时间是分,此外是以混合事务而非数据库事务为基本计量单位,在网上看到一些人的估算数值是以数据库事务为基准,显然被放大了,多化了很多钱。
参见FAQ。
Q: What do TPC-C throughput numbers mean?
A: You must understand what the benchmark is intended to measure, before you can understand throughput. Throughput, in TPC terms, is a measure of maximum sustained system performance. In TPC-C, throughput is defined as how many New-Order transactions per minute a system generates while the system is executing four other transactions types (Payment, Order-Status, Delivery, Stock-Level). All five TPC-C transactions have a certain user response time requirement, with the New-Order transaction response time set at 5 seconds. Therefore, for a 710 tpmC number, a system is generating 710 New-Order transactions per minute while fulfilling the rest of the TPC-C transaction mix workload.
即以主事务为计量单位,但是同时还要保证其他事务的执行,所以另外有一个事务执行时间要求,要求混合90%的混合事务执行时间少于5秒。
tpc-c的特点和online处理不符,考察的还是极端的数据库性能。考察online应用性能,TPC-APP 应该是最符合的,不过TPC上居然只有一个05年的数据而且是。net1.1 , 数字么, 很小,几百而已。
再看一下去年出的TPC-E
TPC-E(大型企业信息服务测试基准程序),
与TPC-C相比,TPC-E只是针对一种模拟订单录入与销售环境测量每分钟商业事务(tpmC)吞吐量,测量的事务类型也只有四种。两相对比,TPC-E所采用的商业模型更为人们熟悉也更容易理解,也包含了更多的事务类型。
参加TPC-E测试的不多,都是pc服务器,第一位数字也少的可怜,把分转换为秒,也只有前面的10分之一。
IBM System x3950 M2 1,250.00
另外有一个专门针对电子商务的TPC-w
TPC-W Web e-commerce
TPC Benchmark? W (TPC-W) is a transactional web benchmark. The workload is performed in a controlled internet commerce environment that simulates the activities of a business oriented transactional web server. The workload exercises a breadth of system components associated with such environments, which are characterized by:
? Multiple on-line browser sessions
? Dynamic page generation with database access and update
? Consistent web objects
? The simultaneous execution of multiple transaction types that span a breadth of complexity
? On-line transaction execution modes
? Databases consisting of many tables with a wide variety of sizes, attributes, and relationships
? Transaction integrity (ACID properties)
? Contention on data access and update
The performance metric reported by TPC-W is the number of web interactions processed per second. Multiple web interactions are used to simulate the activity of a retail store, and each interaction is subject to a response time constraint.
TPC-W simulates three different profiles by varying the ratio of browse to buy: primarily shopping (WIPS), browsing (WIPSb) and web-based ordering (WIPSo). The primary metrics are the WIPS rate, the associated price per WIPS ($/WIPS), and the availability date of the priced configuration.
找不到任何数据。
TPC主要还是考察以数据库性能为主的,继续翻另外一个组织SPEC的东西。
SPECweb99
specweb99是一个单纯用来考察web服务器的http稳定吞吐量的基准测试,由spec组织提供。
跑到网站上看,现在已经退休了,只玩2005了,摘录点东西看看,有点象 tpc-app
* Measures simultaneous user sessions
* Relevant dynamic content: PHP and JSP implementations included
* Page images are requested using 2 parallel HTTP connections
* Multiple, standardized workloads: Banking (HTTPS), E-commerce (HTTP and HTTPS), and Support (HTTP); agreed to by major players in the WWW market
* Simulates browser caching effects by using If-Modified-Since requests
* File accesses more closely matching today's real-world web server access patterns
* Full disclosures available on this web site
* Stable implementation with no incomparable versions
* Java-based client for cleaner, more portable code
* Ability to poll clients for data during a run and display it as CSV or in a GUI
计算单位为session,可以理解为能同时支持的正常运行的用户数,折算成TPS大致可以除个8-10. web2005 提供3个基准应用Banking, Ecommerce, and Support来模拟不同负荷的请求,加权平均。
看了一下记录, 最高才8k多,居然是用tomcat和rock web server跑的,受不了。 没人看的上这标准,都没人玩。
顺手再看了一下 jAppServer2004
jappserver是针对j2ee应用服务器的基准测试,目前测试标准是j2ee 1.3。
主要评价指标是jAppServer Operations Per Second ("SPECjAppServer2004 JOPS")
SPECjAppServer2004 JOPS = Dealer Transactions/sec + Workorders/sec
打个折姑且勉强和TPC-C对应吧。 从内容上看是比较接近实际的online方式的电子商务应用的。
看了一下最近的评测结果, 发现排第一的居然是webspher 6.1 , 用了26个节点, 52个cpu,真变态。 单机最强的当然是sun的sparc。 一般人用的入门级别rx3600也就600多(貌似一般应用根本达不到这个水平,呵呵)。IBM真是贵,不愧是大堆钱公司,570居然的钱可以买多少套rx3600了,按废铁卖也比rx3600重几倍。速度也就比rx3600快一点点而已。
jobs node
14004.42 26 104 cores, 52 chips, 2 cores/chip (SMT on) 每个核心其实也就100多
3331.31 1 16 cores, 2 chips sparc //为啥没用32核的?
1197.51 1 4 cores, 2 chips, 2 cores/chip (SMT on) power 570
618.22 1 4 cores, 2 chips hp rx3600 英特尔-安腾
啥时候可以瞻仰一下这种26个节点的应用呀, 这要建多大的机房呀,跑完题了,午睡了。