Nats服务性能测试报告
1.1.3. 测试1个发布者发送,1个订阅者接收,设置消息确认机制
测试环境采用使用单机和集群2种部署方式,分别针对不同的消息使用场景进行测试,观察Nats服务在单机部署下的消息的发布速度、订阅速度、内存、cpu等指标情况。
单机虚拟机硬件资源配置如下:
操作系统ubuntu18.04
内存8GB
Cpu4核
使用网络传输性能测试工具iperf3测试本地虚拟机到虚拟机的网络传输速率为52.8Gbps,也就是6.6GB/s
使用网络传输性能测试工具iperf3测试本地宿主机到宿主机的网络传输速率为2.81Gbps,也就是351.3MB/s
使用网络传输性能测试工具iperf3测试本地宿主机到虚拟机的网络传输速率为13.6Gbps,也就是1.7GB/s
笔记本使用的是无线网卡Intel Wi-Fi 6E AX211 160MHz最大支持2402Mbps,路由器WiFi网络频带2.4GHz,传输速率130Mbps
使用网络传输性能测试工具iperf3测试笔记本到虚拟机的网络传输速率为18.2Mbps,也就是2.3MB/s。
调整路由器WiFi网络频带为5GHz,传输速率为234Mbps,
使用网络传输性能测试工具iperf3测试笔记本到虚拟机的网络传输速率为43Mbps也就是5.38MB/s。
由此可见,不同的网络环境下网络传输速率也会不同,这取决于发送端网卡、接收端网卡、网关路由器、网络传输技术等多方面因素影响。在本地测试的情况下几乎是没有网络损耗,为了方便测试Nats性能,我们基于本地虚拟机进行测试。也就是用6.6GB/s的网络传输速率模拟真实的生产环境下网络传输速率对Nats服务进行基准测试。
以下测试需安装nats-server,natscli,nats-top,以上官网都有
由于natsjetStream包含nats实时,因此直接以jetStream方式启动
./nats-server --jetstream
启动nats-top观察cpu和内存使用情况
./nats-top
测试工具使用Nats官网提供的Nats bench基准测试工具。
- 单机测试
- 实时模式测试
./nats bench test.subject --pub 1 --size 40960 --msgs 1000000
-
-
- 测试1个发布者发送
-
(单主题,单条消息40K,消息数1000000,总大小38GB,每个用例测试5次,取最终平均值作为最后结果)
第一次测试
Cpu使用184%,内存使用18.7MB,平均发布速度2.56GB/s
第二次测试
Cpu使用184%,内存使用17.9MB,平均发布速度2.56GB/s
第三次测试
Cpu使用185%,内存使用20.6MB,平均发布速度2.56GB/s
第四次测试
Cpu使用185%,内存使用18.8MB,平均发布速度2.54GB/s
第五次测试
Cpu使用187%,内存使用18.8MB,平均发布速度2.60GB/s
测试轮次 |
Cpu使用(%) |
内存使用(MB) |
发布速率(GB/s) |
1 |
184 |
18.7 |
2.56 |
2 |
184 |
17.9 |
2.56 |
3 |
185 |
20.6 |
2.56 |
4 |
185 |
18.8 |
2.54 |
5 |
187 |
18.8 |
2.60 |
平均 |
185 |
18.96 |
2.564 |
-
-
- 测试1个发布者发送,1个订阅者接收
-
(单主题,单条消息40K,消息数1000000,总大小38GB,每个用例测试5次,取最终平均值作为最后结果)