项目简介
本项目是基于C++实现的多进程高并发TCP服务器与客户端。服务器端运用多线程和epoll机制达成高效的IO多路复用,可处理大量并发连接;客户端借助多线程模拟并发连接,用于对服务器进行压力测试并评估其性能。
项目的主要特性和功能
服务器端
- 多线程池:主线程创建线程池,处理客户端请求与日志写入操作。
- epoll IO多路复用:利用epoll监听文件描述符的读写事件,实现高效并发处理。
- 异步日志:通过独立子线程实现日志高效写入,避免阻塞主线程。
- 线程同步:封装互斥锁、条件变量和信号量,保证多线程环境下数据同步。
客户端
- 压力测试:多线程模拟并发连接,发送大量请求以评估服务器性能。
- 响应时间记录:记录每条消息响应时间,计算QPS和响应时间百分位数。
- 管理者线程:记录测试开始和结束时间,计算并输出测试结果。
安装使用步骤
1. 编译代码
```shell make server
make client ```
2. 运行服务器
```shell sh ./server.sh
./server $Port $ThreadNum ```
3. 运行客户端
```shell sh ./client.sh
./client $clients $nsum $message $IP $Port ```
4. 查看测试结果
客户端运行后会输出测试结果,包含测试开始和结束时间、QPS以及响应时间的百分位数。示例如下:
test start time:11:56:38.116
test end time:11:56:54.512
qps:7049.99/sec
Percentage of the requests served within a certain time(ms)
P50:0.0140ms
P60:0.0150ms
P70:0.0170ms
P80:0.0200ms
P90:0.0260ms
P100:3043.9840ms
通过上述步骤,可快速部署和测试本项目的高并发TCP服务器与客户端。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】