秒杀其实就是进行一个form的表单提交,提交的时候就是传一个参数就是商品ID,提交路径
jmeter压测
qps
并发
redis压测工具 redis-benchmark
秒杀很多时候都用的redis
程序都是打包成一个jar包,以main函数的方式来运行的
实际项目中是把程序打包成war包放到tomcat服务器上
并发在多少的时候,网站的qps是多少, 这个数据是比较有意义的
经常需要观察的就是聚合报告
samples throughput
吞吐量qps
throughput 一秒完成17个请求
并发量在1000的时候,qps是84,就是一秒只能支持84个请求
设置循环次数10,访问量达到一万
瓶颈在哪儿?----------------数据库上
打开数据库,top命令:就是监控服务器的cpu , 内存
数据库中load average已经超过2
jmeter自定义变量
第二个压测地方的qps明显高于第一个,这是为什么
因为它读的是redis里面的缓存
第一个是既读了数据库,又读了缓存,数据库访问是比较耗时的
模拟多个不同的用户进行压测,token 是不一样的
redis压测
spring boot打war包
编译时 的依赖,运行的时候是不需要的
线程数5000
循环次数10次
以此为基准,进行优化
进程堵塞十分严重
以第二次为基准
并发的瓶颈在mysql
数据库分库分表
如果你能让数据库扛的住压力
那么系统承受并发是扛的住的
程序出现bug:把库存减为负的
两个线程同时过来了,进行减库存,生成订单
所以出现两个问题,线程数多的时候,程序的问题
并发量的问题