模拟人生3超级电脑功能介绍
文 | 毛丽娜“我儿子18岁,准备出家了”“我老婆和我女儿好上了,怎么办?”这不是狗血新闻大合集,而是豆瓣“模拟人生小组”的玩家讨论。拥有近10万simsters的“模拟人生小组”,在豆瓣游戏小组中无...
2024.11.20TPC(事务处理性能委员会:Transaction Processing Performance Council),是由数 10 家会员公司创建的非盈利组织,总部设在美国。TPC 的主要成员是计算机软硬件厂家,其主要成员包括 IBM,HP,Oracle,Microsoft 等。TPC 的功能是制定商务应用标准程序(Benchmark)的标准规范,性能和价格度量,并管理测试结果的发布。TPC 不给出基准测试程序的代码,而只给出基准程序的标准规范。任何厂家或其它测试者都可以根据规范,最优的构造自己的系统。TPC 已经推出的基准程序包括:TPC-A,TPC-B,TPC-C,TPC-D,TPC-E,TPC-W。其中
TPC-C 是在线事务处理(OLTP)的基准程序。 TPC-D 是决策支持的基准程序。 TPC-E 是大型企业的信息服务的基准程序。
本文主要向读者介绍 TPC-C 标准的设计模型,实现及其应用。本文中要测试的 OLTP 系统是 MySQL。
2. TPC-C 介绍TPC-C 是一种衡量 OLTP 系统性能和可伸缩性的基准测试项目。它由一系列的 OLTP 工作流组成,包括查询,更新及队列式小批量事务在内的广泛数据库功能。它模拟了一个典型的 OLTP 应用环境中的活动,这些活动由一系列复杂的事务组成。TPC-C 工作流应该具备以下特性:
适当复杂的 OLTP 事务 在线和延迟事务执行模型 多用户 适当的系统和应用执行时间 大量的磁盘输入和输出 事务完整性(ACID) 随机的数据访问 数据库由各种大小,属性和关系的表组成。
2.1. TPC-C 商业模型(E-R 模型)TPC-C 模拟了一个比较有代表意义的 OLTP 应用环境:在线订单处理系统。假设有一个大型商品批发商,拥有 N 个位于不同区域的仓库,每个仓库负责为 10 个销售点供货,每个销售点有 3000 个客户,每个客户平均一个订单有 10 项产品。由于一个仓库中不可能 存储公司所有的货物,有一些请求必须发往其它仓库,因此,数据库在逻辑上是 分布的。N 是一个可变参数,测试者可以随意改变 N,以获得最佳测试效果。
2.2. TPC-C 输入数据流TPC-C 系统需要处理的交易有以下五种:
New-Order: 客户输入一笔新的订货交易 Payment:更新客户账户余额以反应其支付状况 Delivery:发货(批处理交易) Order-Status:查询客户最近交易的状态 Stock-Level:查询仓库库存状况,以便能够及时补货。
各个类型的交易在系统中所占的比例:
New-Order: 45% Payment:43% Delivery:4% Order-Status:4% Stock-Level:4%
对于前四种类型的交易,要求响应时间在 5 秒以内;对于库存状况的查询交易,要求响应时间在 20 秒以内。
这五种交易作用在图 1 所示的九张表上,事务操作类型包括更新,插入,删除和取消操作。
2.2 TPC-C 输出指标TPC-C 的测试结果主要有两个指标:
流量指标(tpmC):描述了系统在执行 Payment,Order-Status,Delivery,Stock-level 这四种交易的同时,每分钟可以处理的 New-Order 交易的数量。流量指标值越大越好。
tpm 是 transactions per minute 的简称;C 指 TPC 中的 C 基准程序。它的定义是每分钟内系统处理的新订单个数。要注意的是,在处理新订单的同时,系统还要按图 1 的要求处理其 它 4 类事务 请求。从图 1 可以看出,新订单请求不可能超出全部事务请求的 45%,因此,当一个 系统的性能为 1000tpmC 时,它每分钟实际处理的请求数是 2000 多个。
性价比(Price/tpmC):测试系统价格与流量指标的比值。性价比越小越好。
2.3. TPC-C 实现TPC-C 作为 OLTP 系统的测试标准程序,有很多商用的或者免费的软件都实现了这个标准。下面我们介绍几种比较有名的实现软件。
HammerOra:一款负载测试工具,目前支持 Oracle,MySQL 和 Web 应用。基于 Tcl 语言,内嵌了 TPC-C 和 TPC-H 两套标准测试脚本。Hammerora 的设计原理(以 Oracle 为例)是解析 Oracle 的 Trace 文件,并把它们转化为 Oratcl 程序, 然后在 Oracle 数据库中用多个用户并发的对用户 的事务进行“回放”。我们知道,Oracle 的 Trace 文件能够翔实的记录用户对数据库的操作。这样 Hammerora 能够保证对用户环境的真实模拟。
Orabm:Oracle 服务器的 CPU 和内存性能测试工具。是 Geoff Ingram 构建的一个程序包,包含了一套 SQL 脚本和几个命令行程序。Orabm 装载程序(Orabmload)构建了一组遵从 TPC-C 标准的数据用以测试。Orabm 事务以 TPC-C 中的 Stock-Level 和 Order-Status 事务为基础。它的运行机制简单描述如下,Orabm 通过在每个用户指定的并发数据库会话 (session) 中运行用户执行数量的数据库事务来进行工作。事务通过 ORABM 模式下的 ORABM_SERVERSIDE_STRESS 存储过程运行。对每个并发会话来说,ORABM_SERVERSIDE_STRESS 运行在 orabm 命令行下指定的事务数,并返回该会话在采样间隔完成时的 TPS 值。要确保所有并发会话都是在采样间隔期间处理事务,TPS 值仅包括事务的中间的 80%,也即初始的 10%和最后的 10%将忽略掉。
Benchmark Factory™ for Databases 是专门针对数据库做性能测试和容量规划的工具,支持的数据库包括 Oracle,DB2,SQL Server,MySQL 等主流数据库。它可以模拟出数千个用户访问应用系统中的数据库,文件,Internet 及消息服务器。无论是服务器,还是服务器集群,Benchmark Factory 是一种成熟,可靠,高扩展性和易于使用的测试工具。支持的性能测试标准包括 TPC-C,TPC-B,TPC-D,TPC-H 等。Benchmark Factory 工作原理是 Benchmark Factory 控制台通过对模拟的若干个 Agent 场景控制,对目标数据库进行事物操作,记录操作过程目标数据库数据。Benchmark Factory 控制台再记录的数据进行加工,生成运行结果报告,方便地确定系统容量,找出系统瓶颈,隔离出用户的分布式计算环境中与系统强度有关的问题。
其架构如图 2 所示:
读者也可以根据 TPC-C 规范中的模型,以及输入,输出工作流设计自己的 TPC-C 测试系统,在github上也可以找到许多开源的实现:
Percona-Lab tpcc-mysql、sysbench-tpcc:由percona开发出来的针对mysql的基于tpcc规范的测试工具,用来压力测试。可参考MySQL测试工具之-tpcc、tpcc-mysql 压力测试 akopytov sysbench:功能强大的sysbench工具,可用于postgresql的测试(参考PostgreSQL 11 tpcc 测试(103万tpmC on ECS) - use sysbench-tpcc by Percona-Lab) benchmarksql:5.0去除了mysql的支持,pingcap在5.0的基础上增加了对mysql和tidb的支持。使用可见benchmarksql 5.0 支持对MySQL的TPC-C测试、TPC-C 测试说明、BenchmarkSQL介绍
这里有一个使用akopytov sysbench和tpcc-mysql的例子MySQL基准测试小脚本:基于sysbench和tpcc-mysql
3. NewSql的tpcc测试使用percona的sysbench-tpcc测试CRDB和TiDB可以参考下NewSQL数据库压力测试工具系列——TPCC的做法。
使用percona sysbench测试CRDB可以参考cockroachdb 压力测试初试
除此以外,CRDB和TiDB都有自己的TPCC改造版本。
3.1. TiDB的TPCCTiDB是在Benchmark 5.0的基础上进行了改造,适配了TiDB和Mysql。结果报告见TiDB TPC-C 性能对比测试报告 - v3.0 对比 v2.1,测试方法见如何对 TiDB 进行 TPC-C 测试
TiDB还有benchmark的测试,使用的是akopytov sysbench,测试方法见如何用 Sysbench 测试 TiDB
3.2. CRDB的TPCCCRDB没有用公认的数据库业界实现了 TPC-C 标准的工具来测试,而是使用了自家实现的一套 TPC-C 工具来测试的。其规范程度没有得到认可,在其官方发布的白皮书中,也提到这套 TPC-C 不能与 TPC-C 标准进行比较。使用Benchmarksql 5.0进行测试可以参考如何用 Benchmarksql 测试 CockroachDB 性能
文 | 毛丽娜“我儿子18岁,准备出家了”“我老婆和我女儿好上了,怎么办?”这不是狗血新闻大合集,而是豆瓣“模拟人生小组”的玩家讨论。拥有近10万simsters的“模拟人生小组”,在豆瓣游戏小组中无...
2024.11.20《模拟人生4(The Sims 4)》是由Maxis/The Sims Studio联合制作,EA发行的一款模拟经营类游戏,是人气系列《模拟人生》的最新正统续作。游戏中玩家可以获得离线经验,打造个性化...
2024.11.18大家好,我是小匠。说起鲁大师,我们应该都不陌生了。很多朋友在买到电脑之后的第一时间就是用鲁大师跑个分,然后再发个朋友圈什么的。虽然现在鲁大师被大家戏称为娱乐大师,但是咋们也不得不说是鲁大师让很多人的脑...
2024.11.22前言:随着硬件组装成本的降低和产品兼容性的增强,DIY主机在创造出更多可能的同时,整机综合性能的甄别也变得越来越复杂。那么如何评判一台主机综合性能的高下呢?鲁大师:简单、便捷、免费 我们先来看看大众...
2024.11.22装机的乐趣:从《PC装机模拟器》中来一次从模拟到实战的装机前言世界上有很多事情没办法自己控制,你永远不知道自己喜欢的美好事物会往什么方向发展……比如……我……一接触摄影就成了器材党,第一年就不断的买镜...
2024.11.22