2023-11-19 18:28:07 8
许多关于百万级部标网关的文章都缺乏服务器配置、发送速率和测试报告等关键信息,看似是噱头。我们要保持清醒的头脑,一切以数据说话。
我们使用模拟终端压测工具,该工具会发送五种消息:终端注册、终端注销、终端鉴权、心跳、位置汇报。JT808网关接收并解析位置信息后发送到RabbitMQ,gnss-web订阅RabbitMQ的位置消息并统计收到的位置数量。我们对比压测工具总共发送的位置数量和web收到的位置数量是否一致。
由于交通部的压力检测要求不高,我们不按交通部的要求进行压测。相反,我们会将发送速率提高2倍以上,以测试系统的承压能力。
我们使用了腾讯云和阿里云的Linux服务器,配置为4核CPU、8G内存和5M带宽。我们的环境包括JDK13、RabbitMQ、Redis,其中RabbitMQ和Redis使用Docker容器创建。我们的测试程序为网关jt808-server和web后台gnss-web,消息序列化采用ProtoBuf。我们模拟了3333、10000和12000台终端的压测,并按以下流程进行测试:首先启动docker容器的Redis和RabbitMQ,然后启动gnss-web,加载20000台终端的信息到Redis缓存,最后启动jt808-server。
在测试过程中,我们观察到RabbitMQ的吞吐量、服务器的负载信息,并记录了web收到的位置数量达到2523083。
在查看JT808网关线程时,我们未发现有BLOCK阻塞线程的情况。
总结:在40分钟的压测时间内,位置数量达到1千万,RabbitMQ的吞吐量为5000/s,CPU占用率为75-80%,带宽利用率为3.5M。与之前相比,CPU占用率有所下降。另外,我们也观察到JT808网关线程良好,未发现有BLOCK阻塞线程的情况。在执行GC垃圾回收后,内存一下子下降了,绿色代表快照前的状态,没有出现内存泄漏的情况。
Linux、centOS、Ubuntu、Windows操作系统下的ECS云服务器、vps虚拟空间、建站主机到期停止异常等状态监测,宝塔面板Bt、小皮面板PHPStudy、IIS、Apache、Nginx、XAMPP、wamp建站环境意外故障监测,php+MySql、asp、java、html等建站程序运行故障监测,域名状态、SSL证书状态监测,网站301、302、404、500错误代码及网站无法访问通知提醒,全国多节点测试网站速度及网络攻击!
扫一扫,关注我们
桂ICP备2022009721号-1