用tpcc对自身服务器做压力测试
概念:
TPCC(Transaction Processing Performance Council-C Benchmark)是一个用于评估数据库系统在线事务处理(OLTP)性能的基准测试。它模拟了一个复杂的分布式数据库环境,包括多种事务类型,如新订单、支付、订单状态查询、发货和库存水平查询等。以下是对TPCC测试结果的一般性分析和解读,但请注意,具体的测试结果会根据测试环境、硬件配置、数据库系统等因素而有所不同。
TPCC测试结果的主要指标
事务吞吐量(Transactions Per Minute, TPM):
这是衡量数据库系统处理事务能力的关键指标,表示系统每分钟能够完成的事务数量。
高吞吐量表明系统能够高效地处理大量并发事务。
响应时间(Response Time):
表示系统处理单个事务所需的时间。
通常关注90%或99%的事务的响应时间,即90%或99%的事务都能在多少时间内完成。
较短的响应时间意味着系统能够更快地响应用户请求。
事务成功率:
表示成功完成的事务占总事务数的比例。
高成功率表明系统稳定运行,错误率低。
测试结果分析
在TPCC测试结果中,通常会包含以下几个关键部分:
热身阶段(Ramp-Up Time):测试开始前的准备阶段,用于预热系统,确保系统达到稳定状态。
测量阶段:实际测试阶段,系统按照预定的负载运行,并收集各项性能指标。
结果输出:测试完成后,系统输出详细的测试结果,包括吞吐量、响应时间、事务成功率等。
示例解读
以参考文章中的示例输出为例(请注意,由于示例数据较为陈旧,且具体格式可能因工具版本和配置而异,以下解读仅为示例):
20, trx: 1365, 95%: 149.731, 99%: 192.421, max_rt: 375.631
20:表示测试开始后的第20秒。
trx: 1365:表示在这20秒内,系统成功处理了1365个事务(吞吐量的一部分)。
95%: 149.731:表示95%的事务的响应时间为149.731毫秒。
99%: 192.421:表示99%的事务的响应时间为192.421毫秒。
max_rt: 375.631:表示在这段时间内,最长的事务响应时间为375.631毫秒。
注意事项
解读测试结果时,需要结合测试环境的具体情况,如硬件配置、网络状况、数据库配置等。
不同的数据库系统在同一测试环境下可能表现出不同的性能。
测试结果可能受到多种因素的影响,如并发用户数、事务类型分布、数据库索引设计等。
结论
TPCC测试结果提供了关于数据库系统在线事务处理性能的重要信息,但解读这些结果时需要考虑多种因素。为了获得更准确的评估,建议在多个测试环境下进行多次测试,并综合考虑各项性能指标。
安装:
将tpcc-mysql-src.tgz文件传到家目录下
tar xf tpcc-mysql-src.tgz解压
cd /home/tpcc-mysql/src进入文件夹
yum install make gcc mysql-devel -y消除依赖关系
make安装
建立容器:
docker run -d -p 3309:3306 --name psl-1 --cpu-shares 500 -m 500000000 --network changsha -e MYSQL_ROOT_PASSWORD='123456' mysql:5.7.41建立容器psl-1并运行
压力测试:
mysql -h 192.168.67.145 -P3309 -uroot -p’123456’连接上本机内3309端口的容器内的mysql
create database tpcc创建数据库tpcc,exit退出
(或者前两步可以docker exec -it psl-1 bash进入容器内部操作系统,再mysql -uroot -p’123456’进入mysql建立数据库)
mysql -h 192.168.67.145 -P 3309 -uroot -p'123456' tpcc <create_table.sql在自己创建的tpcc数据库中创建表
mysql -h 192.168.67.145 -P 3309 -uroot -p'123456' tpcc <add_fkey_idx.sql向表里写入数据
./tpcc_load 192.168.67.145:3309 tpcc root '123456' 150运行tpcc进行压力测试
(解释:./tpcc_load [server] [db] [user] [password] [warehouse]
服务器名 数据库名 用户名 密码 仓库数量)
查看效果:
可以另外复制两个会话:
一个docker stats查看cpu使用情况,一个top查看进程情况
用ab对云服务器进行压力测试
先用xshell远程连接上自己的云服务器
压力测试:
docker run -d -p 9900:80 --name liu-nginx --cpu-shares 200 -m 50000000 nginx
去浏览器输入自己云服务器公网ip:9900查看nginx初始网页效果
(如果查看不了,可能要去云服务器网站添加实例的安全组,允许9900端口访问)
再ab -c 100 -n 100000 http://自己云服务器公网ip:9900/
查看效果:
可以另外复制两个会话:
一个docker stats查看cpu使用情况,一个top查看进程情况
版权归原作者 肝果果 所有, 如有侵权,请联系我们删除。