关于压力测试:docker搭建图片压测QPS3000服务器ftpnginx

39次阅读

共计 1933 个字符,预计需要花费 5 分钟才能阅读完成。

docker 搭建图片压测 QPS3000+ 服务器 (ftp+nginx)

  1. 在针对图片算法服务进行压力测试时,须要高性能的图片服务器
  2. 本人编写的图片利用性能不肯定能达到要求
  3. 可能因为图片利用本身达不到压测要求,影响算法服务的压测数据

筹备工作

须要在服务器先装置好 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 资源要求很高,内存资源要求低。

正文完
 0