部标JT808车辆定位监控平台单服务器13.6万接入压力测试记录(附源码)
创始人
2025-01-19 00:03:14
0

之前经常有人问平台能支持多少设备同时在线,由于事情多没时间做。最近刚好有机会做下压力测试。在不间断的连续压测三天,最终结果为13.6万TCP连接,30秒上报频率。

一、测试目的

测试平台同时接入设备数量与并发处理能力。

二、准备环境

一台主服务器用于部署车辆定位平台,是常见的8核16G内存300G硬盘,操作系统为centos 7.9,基础软件mysql8.0、redis3.2、jdk1.8,还有车辆定位平台软件。

三台压力测试服务器,同内网服务器。两台为8核16G,一台为2核4G。操作系统均为centos 7.9。

一台8核16G的服务器模拟6.3万个终端设备。
一台8核16G的服务器模拟5.3万个终端设备。
一台2核4G的服务器模拟2万个终端设备,该服务器由于配置原因模拟2万已是极限。
共模拟13.6万个终端设备,外加2台真实设备。

5.3万的压力服务器还有加压1万的空间,但加压后报异常:java.net.NoRouteToHostException: Cannot assign requested address (Address not available)。

三、编写压力测试程序

压力程序由java编写,用Socket类保持长连接,并收发数据,比较简单两个类。源代码如下:

public class TestApp {  	public static void main(String[] args) { 		String ip=args[0]; 		String port=args[1]; 		String maxThread=args[2]; 		String startIndex="0"; 		if(args.length>=4)startIndex=args[3]; 		try { 			int sindex=Integer.parseInt(startIndex); 			int eindex=sindex+Integer.parseInt(maxThread); 			for(int i=sindex;i 				System.out.println("启动线程"+i); 				new Thread(new SendJT808Thread(Utils.leftAdd0(String.valueOf(i), 14),ip,Integer.parseInt(port))).start(); 			} 		 		} catch (Exception e) { 			e.printStackTrace(); 		}  	}  } 
 public class SendJT808Thread implements Runnable { 	private String tid=""; 	private String ip; 	private int port; 	private Socket socket; 	public SendLhcxThread(String tid,String ip,int port) { 		this.tid=tid; 		this.ip=ip; 		this.port=port; 	} 	 	@Override 	public void run() { 		 		try { 			System.out.println("连接服务器->"+ip+":"+port); 			socket=new Socket(ip,port); 			while(true) { 				Thread.currentThread().sleep(30*1000); 				String time=Utils.getTime(); 				String temp="这里生成JT808的0x0200报文"; 				socket.getOutputStream().write(Utils.hexToBytes(temp)); 				int len=socket.getInputStream().available(); 				socket.getInputStream().skip(len); 			} 		} catch (Exception e) { 			e.printStackTrace(); 		}finally { 			try { 				if(socket!=null) 				socket.close(); 			} catch (IOException e) { 				// TODO Auto-generated catch block 				e.printStackTrace(); 			} 		} 	}  } 

四、参数调优

1、测试端放开端口区间,以下是临时设置,没放开只能模拟1万多个终端
sysctl -w net.ipv4.ip_local_port_range=“1024 64000”

2、测试端开启允许最大线程,以下是临时设置,没放开只能模拟3.2万个终端
sysctl kernel.pid_max
sysctl -w kernel.pid_max=65535

3、服务端,放开文件句柄数,目标为10万连接,没放开服务器报错:Too many open files
/etc/security/limits.conf
root soft nofile 200001
root hard nofile 200002

4、车辆定位的JT808网关解析线程设置为16,默认为2

五、测试结果

连续压测几天后接入2个真实设备操作业务,数据上报及指令下发都正常。各项服务器指标如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、附地址:

演示地址
http://gps.lingx.com/
账号:admin
密码:123456

终端设备接入
IP:47.100.112.218
端口:8808

相关内容

热门资讯

一分钟了解了解!水鱼辅助软件下... 一分钟了解了解!水鱼辅助软件下载,上饶窝龙辅助,新2026教程(有挂技巧)-哔哩哔哩相信很多朋友都在...
八分钟带你普及!山西扣点点透视... 【福星临门,好运相随】;八分钟带你普及!山西扣点点透视软件交易平台(辅助挂)一直有挂(有挂神器)-哔...
2分钟通报了解!边锋干瞪眼脚本... 2分钟通报了解!边锋干瞪眼脚本,小程序小游戏辅助器,安装教程(有挂规律)-哔哩哔哩;详细小程序小游戏...
3分钟带你介绍!多乐游戏修改器... 3分钟带你介绍!多乐游戏修改器(辅助挂)一直真的是有挂(有挂方针)-哔哩哔哩;小薇(透视辅助)致您一...
第5分钟分析了解!广东雀神智能... 第5分钟分析了解!广东雀神智能辅助插件,丽水双扣茶苑脚本,新2026版(有挂工具)-哔哩哔哩;致您一...
一分钟带你透视!熟客温州游戏辅... 一分钟带你透视!熟客温州游戏辅助器(辅助挂)一贯真的有挂(有挂解密)-哔哩哔哩;熟客温州游戏辅助器最...
第四分钟教会了解!钱塘13水挂... 第四分钟教会了解!钱塘13水挂件,微乐四川麻将辅助器,AI教程(确实有挂)-哔哩哔哩;1、很好的微乐...
3分钟带你发现!碰胡碰胡滚筒有... 3分钟带你发现!碰胡碰胡滚筒有脚本吗(辅助挂)一直确实有挂(存在有挂)-哔哩哔哩;碰胡碰胡滚筒有脚本...
四分钟详细了解!波特互娱辅助,... 四分钟详细了解!波特互娱辅助,打两圈绝对有辅助,存在挂教程(有挂方针)-哔哩哔哩;AI辅助机器人普及...
十分钟带你科普!钱塘十三水辅助... 【福星临门,好运相随】;十分钟带你科普!钱塘十三水辅助器(辅助挂)果然真的有挂(了解有挂)-哔哩哔哩...