博客 / 詳情

返回

docker搭建圖片壓測QPS3000+服務器(ftp+nginx)

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資源要求很高,內存資源要求低。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.