docker搭建图片压测QPS3000+服务器(ftp+nginx)
2022/7/27 5:29:59
本文主要是介绍docker搭建图片压测QPS3000+服务器(ftp+nginx),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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 # 服务器ip export 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资源要求很高,内存资源要求低。
这篇关于docker搭建图片压测QPS3000+服务器(ftp+nginx)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27docker容器内没有bash,怎么通过docker exec -it进入容器内部?-icode9专业技术文章分享
- 2024-12-26alpine构建的镜像无法使用docker exec -it 进入内部怎么办?-icode9专业技术文章分享
- 2024-12-24Docker环境部署资料详解
- 2024-12-24Docker环境部署教程:新手入门详解
- 2024-12-24Docker环境部署项目实战教程
- 2024-12-24Docker环境部署学习:初学者指南
- 2024-12-24Docker环境部署入门:新手必读指南
- 2024-12-20Docker部署资料:新手入门教程
- 2024-12-19Docker部署实战:新手入门教程
- 2024-12-19Docker部署教程:新手入门详解