Thinkphp5 用ab压力测试工具测试高并发请求

上篇文章【Thinkphp5实现悲观锁】已介绍过thinkphp5使用悲观锁实现高并发的场景,这篇文章将实际测试下。php

在shell里进入到apache的bin目录,输入如下url:html

ab -n 100 -c 100 http://www.xyh.com/index/index/mysql_unlock  【不加锁的状况,模拟100次请求,每次100个用户】mysql

备注:若是提示socket: Too many open files (24),请执行ulimit -a,而后ulimit -n 1024。下图是我已经修改后的。sql

 

因为在本机测试,若是并发太大,机器报错,须要从新编译apache。我这里只是为了测试thinkphp加锁是否能知足业务需求,因此并发设为100个,用来测试便可。数据库的商品表,我把库存设为50个。正常状况应该是:goods商品表中库存total值为0,销量sell为50,orders订单表有50条记录。通过测试,发现不加锁的状况以下图:thinkphp

库存tatol为3个,销量sell为47,orders订单表有49条记录。很明显这不符合实际的业务需求!(这仍是100次并发的状况,若是几十万的并发,错误更加离谱。会直接给公司带来巨大的损失)shell

下面再看看加锁后的测试状况:数据库

库存tatol为0个,销量sell为50,orders订单表有50条记录。符合预期,知足业务需求!apache

相关文章
相关标签/搜索