需要在服务器先安装好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/** |
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容器名称
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
容器启动命令
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容器,打开/etc/nginx/nginx.conf文件
将
user nginx;
改为
user root;
重启nginx容器
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 |
项目 | 值 |
---|---|
线程数 | 1000 |
时长 | 180s(3min) |
图片分辨率 | 640*352 |
图片平均大小 | 30 - 40 kb/张 |
由于是单个请求,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资源要求很高,内存资源要求低。