【引言】
作为一名数据库开发人员或者管理员,那么你一定知道数据库锁在维护数据一致性中的作用。但是,你有没有想过,什么情况下会触发数据库锁呢?
本文将讲述一种常见的情况——数据单一触发数据库锁,并且分享如何避免这种情况的发生。如果你希望提高数据库的可靠性和性能,那么本文必读!我可以直白的告诉你,这篇文章一定会给你的数据库工作带来很大的启示。
【背景说明】
压测过程中我们会发现各种各样的瓶颈,有时候数据单一也可能导致QPS上不去,这时我们需要准备批量测试数据来进行多样性压测。
【问题表现】
当对一个接口加压后,发现QPS上不去,时间增长,如下图所示:
这时,我们应该想到是链路上出现瓶颈,需排查整个链路
【排查思路】
首先对服务器资源进行查看,对链路上涉及到的库的资源进行查看,排查后发现数据库MongoDB负载使用情况为百分百
造成该问题的原因除了配置过低的原因外,还可能为大批量的update和put同一个certificate,触发数据库锁,导致数据库查询过慢,这时我们需要对压测脚本做多样性用户处理,有以下两种方式可以参考:
方式一:用户信息为一个范围区间,可以用计数器去做自增,线程组->添加->配置原件->计数器
方式二:使用CSV数据文件设置拿取大量用户信息,线程组->添加->配置原件->CSV数据文件设置
数据多样性添加完成后引用变量名即可
脚本准备完成后,再次上传脚本到coding平台,对用户信息进行数据多样性处理后的接口再次进行压测,发现QPS就能够上去了。
【总结】
数据的单一性除了造成结果的不准确之外,还可能造成系统瓶颈,这时除了盲目的升级硬件资源外,还应该考虑从数据多样性入手,更真实的模拟用户场景,减少不必要的费用支出和更快捷的解决问题。
感谢您的阅读,若有不足之处,欢迎指教,共同学习、共同进步。 如您喜欢,麻烦推荐一下;如您有新想法,欢迎提出。
写在最后
这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。
都到这了记得三连支持一下吧。
完整版文档下载方式:
这些资料,对于从事【软件测试】等相关工作的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享。
在评论区和我互动交流或者私❤我【软件测试学习】领取即可,拿走不谢。