性能测试问题解决——订单号重复类问题定位及解决

        在性能测试过程中,经常会遇到因重复提交或重复生成导致事务失败的问题,下面以下单重复的问题为例,对此类问题的定位和解决思路做一些总结。

一、问题现象

性能测试场景为下单,性能测试过程中,事务失败率过高,接近3:1;TPS曲线上下波动较大。

1.      下单失败的报错均为订单重复问题:此订单已经存在,请不要重复提交

2.      TPS出现有规律的上下波动,如图:



二、问题定位

1. 检查系统日志查看报错原因:在日志中找到因重复提交导致的定单号,通过检查数据库,发现此订单已成功插入数据库,因此重复提交必然会报错。

2. 检查性能测试脚本中是否有涉及订单号生成的参数,是否会有因参数设置导致生成重复的问题:经检查脚本中没有与订单号相关的参数,订单号由系统自动生成。

3. 检查系统订单生成规则,是否会存在大量提交的时候系统生成订单重复的问题:经检查,系统订单生成规则为2位固定前缀+yymmddhhmm+3位长度seq数值

很明显,问题就出在订单生成规则这里,同一分钟内࿰

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MapReduce编程中,K均值聚是一个常用的算法。在实验中可能会遇到以下问题: 1. 数据倾斜问题 在K均值聚中,数据可能会出现倾斜,导致一些Reducer处理的数据量过大,而其他Reducer则处理很少的数据。这会导致整个程序运行效率低下。 解决办法:可以采用数据切分、数据预处理、负载均衡等方法来解决数据倾斜问题。比如可以对数据进行随机分片,或者采用局部聚的方法进行预处理,以达到负载均衡的效果。 2. 初始中心点选择问题 K均值聚算法中,初始中心点的选择对结果有很大的影响。如果初始中心点选择不合理,可能会导致最终的聚结果不理想。 解决办法:可以采用随机选择、聚采样等方法来确定初始中心点。同时,可以多次运行算法,选择最优的结果。 3. 算法收敛速度问题 K均值聚算法需要迭代多次才能收敛,每次迭代都需要进行MapReduce操作,这会导致程序运行时间较长。 解决办法:可以采用优化算法、增加并行度等方法来提高算法收敛速度。比如可以采用Mini-Batch K-means算法来减少计算量,或者增加Reducer的数量来提高并行度。 4. 数据量过大问题 K均值聚算法需要处理大量数据,如果数据量过大,可能会导致程序无法运行或者运行时间过长。 解决办法:可以采用数据采样、分布式存储等方法来解决数据量过大的问题。比如可以采用Hadoop分布式文件系统(HDFS)来存储数据,或者采用MapReduce框架中的Combiner函数来减少数据传输量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值