您的位置 首页 php

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

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

shell 里进入到apache的bin目录,输入以下命令:

ab -n 100 -c 100   

命令解释:不加锁的情况,模拟100次请求,每次100个用户

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

由于在本机测试,如果并发太大,会出现”apr_socket_recv: Connection reset by peer (104)”报错,需要重新编译apache。我这里只是为了测试thinkphp加锁是否能满足业务需求,所以并发设为100个,用来测试即可。

测试准备:数据库的商品表,库存total设为50,销量sell为0,订单表清空。

正常情况应该是:goods商品表中库存total值为0,销量sell为50,orders订单表有50条记录。经过测试,发现不加锁的情况如下图:

不加锁代码的测试结果:库存tatol为3个,销量sell为47,orders订单表有49条记录。

很明显这不符合实际的业务需求!(这还是100次并发的情况,如果几十万的并发,错误更加离谱。会直接给公司带来巨大的损失)

下面再看看加锁后的测试情况:

加锁代码的测试结果:库存tatol为0个,销量sell为50,orders订单表有50条记录。符合预期,满足业务需求!

希望以上的代码和测试结果能帮到大家,如果写的有问题,或者不明白的地方,欢迎评论,我会一一解答!这几天项目比较急,恐怕没时间更新,等项目搞完了,会再更新的。

文章来源:智云一二三科技

文章标题:Thinkphp5 用ab压力测试工具测试高并发请求

文章地址:https://www.zhihuclub.com/152990.shtml

关于作者: 智云科技

热门文章

网站地图