1. 程式人生 > >Powered by .NET Core 進展:用 docker-compose 驗證高併發問題嫌疑犯 docker swarm

Powered by .NET Core 進展:用 docker-compose 驗證高併發問題嫌疑犯 docker swarm

相關博文:

  • 【故障公告】釋出 .NET Core 版部落格站點引起大量 500 錯誤
  • 【網站公告】.NET Core 版部落格站點第二次釋出嘗試
  • 暴風雨中的 online : .NET Core 版部落格站點遭遇的高併發問題進展

抱歉,.NET Core 版部落格系統(部落格後臺除外)的釋出給大家帶來麻煩了,我們正在一邊忙著修各種 bug ,一邊排查訪問高峰高併發效能問題。

對於釋出後遇到的高併發效能問題,我們一點都沒去懷疑 .net core ,我們懷疑的是 docker swarm ,懷疑在高併發下 docker swarm 網路效能急劇下降,而且極不穩定。

對比新舊版部落格系統所消耗的伺服器資源,差距之大讓人乍舌。同樣的併發,之前基於 .net framework 的舊版部落格系統用 6臺4核8G 的阿里雲 windows 伺服器就能撐住,而現在基於 docker swarm +  .net core 的新版部落格系統用 6臺8核16G 的阿里雲 centos 伺服器都撐不住。

為了驗證我們對罪魁禍首 docker swarm 的懷疑,我們今天已經將 .net core 版部落格系統改用 docker-compose 部署:

version: '3.7'
services:
  web:
    image: blog-web
    restart: always
    deploy:
      replicas: 1
      resources:
        limits:
          cpus: '4'
          memory: 7G
        reservations:
          memory: 500M
    ports:
      - 80:80
    working_dir: /app
    environment: 
      - TZ=Asia/Shanghai
      - COMPlus_GCHeapHardLimit=1C0000000    
    command: bash -c 'sh run.sh'
docker-compose --compatibility up -d 

現在已經發布上線,如果真的是 docker swarm 的問題,明天上午的訪問高峰將驗證出結果。

目前用了3臺4核8G的伺服器,明天根據負載情況再增加伺服器。