# 消息并发压力测试

#### 测试目标

1. 本机测试，测试出非网络环境下cp7的消息并发数据
2. 内网测试，测试网络环境下cp7的消息并发数据
3. 制作两种测试数据汇总对比

#### 环境准备

#### A服务器

1. 操作系统：Ubuntu 20.04.2 LTS
2. 网络:：内网千兆网络（192.168.101.180
3. CPU：Intel(R) Core(TM) i7-9700F CPU @ 3.00GHz
4. 内存：16G

#### B服务器

1. 操作系统：Ubuntu 20.04.2 LTS
2. 网络:：内网千兆网络（192.168.101.232）
3. CPU：Intel(R) Core(TM) i5-9400F CPU @ 2.90GHz
4. 内存：8G

### 本机测试用例

#### 准备工作：

1. cp7服务启动准备

```
# 下载服务器端
wget https://github.com/Coolpy7/Coolpy7/raw/master/go_build_Coolpy7_go_linux.zip
# 解压文件
sudo unzip go_build_Coolpy7_go_linux.zip
# 提权
sudo chmod -R 777 go_build_Coolpy7_go_linux
# 启动Coolpy7 启动参数
# l 当前服务Host地址 (默认为:1883即本地1883端口,此参数一般默认即可，无需配置)
# a 连接接入调度器最大线程，此值可防止暴力连接攻击，对已连接客户端进行优先保护 (默认值128)
./go_build_Coolpy7_go_linux

# 启动成功后会打印如下信息，即说明服务端已正常启动，host于1883端口，请确保相关防火墙配置可用
2018/10/29 12:59:55 Coolpy7 tcp is listening on [::]:1883
```

&#x20;   2\. 下载并运行测试工具（测试工具默认情况以一个500byte为消息体进行测试）

```
# 下载测试项目
git clone https://github.com/Coolpy7/coolpy7_benchmark.git && cd coolpy7_benchmark
# 测试工具开源代码位于pubsub1max.go
cd bin
# 提权
sudo chmod -R 777 go_build_pubsub1max_go_linux_linux
# 启动并发测试代码 启动参数
# url cp7服务Host地址 (默认为127.0.0.1:1883即本地1883端口,由于cp7也在本机运行，无需配置)
# duration 测试持续时间/秒(默认值30)
sudo ./go_build_pubsub1max_go_linux_linux -duration=60 -url=tcp://localhost:1883
```

测试结果为出现持久性不可预见的并发消息性能下降，所以本次测性时间周期为10，20，30分钟各种持续性测试，性能无异样。

![CP7性能指标监控](/files/-MbtSJX01wRGM8siiOA7)

![测试工具指标监控](/files/-MbtSa50zJ3mAtQMmic7)

#### 本机测试总结：

1. 消息并发性能平均在5.6万TPS左右。随着时间持续基本稳定在5.6万以上。
2. cp7系统资料占用情况（CPU：大概20%左右，内存稳定在100到130M左右）。
3. 由于本轮测试为本机测试，所以此数据为cp7内存（排除网络影响）的真实性能。

![一小时测试数据](/files/-McCO_9K5ztOaiybHLg9)

### 内网测试用例

#### 准备工作

网络架构

![](/files/-Mbtcu4YSDMslf2hi6km)

1. cp7位于232服务器，通过180远端监控232的网络及系统资源情况。
2. 测试工具位于180

```
# 下载测试项目
git clone https://github.com/Coolpy7/coolpy7_benchmark.git && cd coolpy7_benchmark
# 测试工具开源代码位于pubsub1max.go
cd bin
# 提权
sudo chmod -R 777 go_build_pubsub1max_go_linux_linux
# 启动并发测试代码 启动参数
# url cp7服务Host地址 (默认为127.0.0.1:1883即本地1883端口,由于cp7也在本机运行，无需配置)
# duration 测试持续时间/秒(默认值30)
sudo./go_build_pubsub1max_go_linux_linux -duration=60 -url=tcp://192.168.101.232:1883
```

测试结果为出现持久性不可预见的并发消息性能下降，所以本次测性时间周期为10，20，30分钟各种持续性测试，性能无异样。

cp7服务端系统资源及网络监控数据

![CP7性能指标监控](/files/-MbthG3eiL3nW8cUiO4H)

![CP7网络指标监控](/files/-MbthPy7Xo5Y3DYYXGKN)

![测试工具指标监控](/files/-MbthXYrX4ZFSGN8Qdin)

{% hint style="info" %}
由于测试环境并非纯净网络，所以本次内网测试并发性只能看作单次测试结果，不具代表性。具体真实性能请参考上面的本机测试用例结果。
{% endhint %}

#### 内网测试总结：

1. 消息并发性能平均在4.5万TPS左右。随着时间持续基本稳定在4.5万以上。
2. cp7系统资料占用情况（CPU：大概30%左右，内存稳定在100到110M左右）。
3. 由于本轮测试为内网测试，所以此数据反应了瓶颈在内网网络中，千兆网络大概实为百兆真网速。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/xiao-xi-bing-fa-ya-li-ce-shi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
