记录一次项目部署在阿里云的1万压测
场景:与往常测试不同,这次项目部署在阿里云服务器上面,需要在外网对其进行高并发压测(10000并发),这时需要考虑一个在内网压测不用考虑的因素,就是带宽。因为带宽的瓶颈不仅影响项目服务器的性能也影响jmeter负载机的压测力度。
压力机准备:
开了4台阿里云ESC服务器:
控制机:win2012r2(选择win,是因为控制机不参与压测,只是分发命令和接收数据,可视化会更好一点)
奴隶机(负载机)4台:linux
具体配置如下图:
途中遇到的问题和解决办法:
问题:jmeter提示内存溢出,但是修改jmeter.bat中的 set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m,将xms和xmx改大以后,运行会报错。
原因1:机子本身内存太小,不足于承受修改后的xms。
解决:增加内存
原因2:jdk是32位的,32位的有上限
解决:jdk换成64位的
问题:控制机的带宽占满
原因:由于高并发,多台负载机与控制机做数据交互,负载机将响应结果返回给控制机这个过程占用的带宽是非常多的。
解决:租用的控制机和负载机确保是同个局域网,配置的时候使用内网ip进行配置,这样控制机和负载机的数据交互走的就是内网而不是外网。而阿里云的内网带宽上限是5G,这样是足够用的。
问题:单台并发不能太高,否则会影响测试结果(比如我们设置单台5000,我们以为有5000并发,其实只达到1000的效果),一万并发的话需要10台服务器充当负载机,服务器资源利用率低,成本太高。
原因:jmeter本身性能瓶颈导致。
解决:同一台服务器复制多个jmeter包,每个jmeter对应一个端口,这样可以同时启动多台,最大程度的利用负载机服务器资源。(目前经测试,8核32G配置分三台,每台800并发效果会好点)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2020-12-01 jmeter压测下,登录与其他业务功能host不一致的系统如何快速衔接好各接口(未提供接口文档)
2020-12-01 jmeter-BeanShell的使用
2020-12-01 jmeter-BeanShell将局部变量变成全局变量
2020-12-01 jmeter正则表达式提取器如何提取登录请求子请求的内容