docker搭建图片压测QPS3000+服务器(ftp+nginx)
- 在针对图片算法服务进行压力测试时,须要高性能的图片服务器
- 本人编写的图片利用性能不肯定能达到要求
- 可能因为图片利用本身达不到压测要求,影响算法服务的压测数据
筹备工作
须要在服务器先装置好docker,性能后果看文章结尾
步骤
- 参数
我的项目 | key | value |
---|---|---|
地址 | IP | 192.168.0.2 |
ftp用户名 | FTP_USERNAME | ftpuser |
ftp明码 | FTP_PASSWORD | abc@123 |
宿主机保留目录 | FTP_PATH | /var/ftp |
ftp地址 | FTP_URL | ftp://192.168.0.2/ |
图片申请地址 | PHOTO_URL | http://192.168.0.2/ftpuser/** |
- shell中设置变量(依据本人的理论参数去设置)
export IP=192.168.0.2 # 服务器ipexport FTP_USERNAME=ftpuser # ftp账号export FTP_PASSWORD=abc@123 # ftp明码export FTP_PATH=/var/ftp # 图片上传根目录export FTP_DOCKER_NAME=ftp # ftp容器名称export NGINX_DOCKER_NAME=nginx # nginx容器名称
装置ftp
- 创立文件目录
mkdir ${FTP_PATH}
- 启动容器
docker pull fauria/vsftpd
docker run -d \ --name ${FTP_DOCKER_NAME} \ --restart=always \ -p 20:20 \ -p 21:21 \ -p 21100-21110:21100-21110 \ -v ${FTP_PATH}:/home/vsftpd \ -e FTP_USER=${FTP_USERNAME} \ -e FTP_PASS=${FTP_PASSWORD} \ -e PASV_ADDRESS=${IP} \ -e PASV_MIN_PORT=21100 \ -e PASV_MAX_PORT=21110 \ fauria/vsftpd
装置nginx
容器启动命令
docker pull nginx:latest
docker run -d \ --name ${NGINX_DOCKER_NAME} \ --restart=always \ -p 80:80 \ -v ${FTP_PATH}/${FTP_USERNAME}:/usr/share/nginx/html/${FTP_USERNAME} \ nginx:latest
重要配置!(nginx)
- 通过ftp上传的图片,拜访会报403无权限谬误
进入nginx容器,关上/etc/nginx/nginx.conf文件
将
user nginx;
改为
user root;
重启nginx容器
应用
关上文件资源管理器,地址栏输出ftp地址,输出账号密码,即可上传图片
ftp://${IP}/# 即ftp://192.168.0.2/
在浏览器中输出网页地址,,即可获取到图片
http://${IP}/${FTP_USERNAME}/${对应图片门路}# 即http://192.168.0.2/ftpuser/${对应图片门路}
性能
应用测试jmeter进行压力测试,返回200状态码断定为胜利。
图片上传了1000张图片,循环获取继续3分钟
服务器配置
我的项目 | 配置 |
---|---|
零碎 | Ubuntu22.04 |
CPU | 4核 |
内存 | 8G |
硬盘 | 120G |
网络 | 万兆内网 |
软件 | 新零碎零碎,仅装置docker |
Jmeter、图片参数
我的项目 | 值 |
---|---|
线程数 | 1000 |
时长 | 180s(3min) |
图片分辨率 | 640*352 |
图片均匀大小 | 30 - 40 kb/张 |
Jmeter后果
因为是单个申请,QPS=TPS=3257.8/sec
该压测过程中,运行Jmeter的电脑CPU 100%,所以可能是运行电脑性能问题升高了压测后果,所以该后果仅供参考
Jmeter原始报告如下:
Label | Sample | Average | Min | Max | std.Dev. | Error% | Throughput | Received KB/sec | Sent KB/sec | Avg. Bytes |
---|---|---|---|---|---|---|---|---|---|---|
TOTAL | 591303 | 302 | 1 | 70716 | 341.85 | 0.00% | 3257.8/sec | 102582.08 | 555.42 | 32243.4 |
服务器参数
以下统计应用MobaXterm软件连贯工具数值,非专业工具,仅供参考
我的项目 | 状态 | 数值 |
---|---|---|
CPU | 压测前 | 0% |
CPU | 压测中 | 40% - 70% |
内存 | 压测前 | 0.76G |
内存 | 压测中 | 0.77G |
总内存 | - | 7.75G |
Upload | 压测前 | 0.01 Mb/s |
Upload | 压测中 | 965.55 Mb/s |
Download | 压测前 | 0.01 Mb/s |
Download | 压测中 | 1871.02 Mb/s |
总结
该形式搭建的图片服务器能够满足大部分压测场景,服务器CPU资源要求很高,内存资源要求低。