相关博文:html
抱歉,.NET Core 版博客系统(博客后台除外)的发布给你们带来麻烦了,咱们正在一边忙着修各类 bug ,一边排查访问高峰高并发性能问题。web
对于发布后遇到的高并发性能问题,咱们一点都没去怀疑 .net core ,咱们怀疑的是 docker swarm ,怀疑在高并发下 docker swarm 网络性能急剧降低,并且极不稳定。docker
对比新旧版博客系统所消耗的服务器资源,差距之大让人乍舌。一样的并发,以前基于 .net framework 的旧版博客系统用 6台4核8G 的阿里云 windows 服务器就能撑住,而如今基于 docker swarm + .net core 的新版博客系统用 6台8核16G 的阿里云 centos 服务器都撑不住。windows
为了验证咱们对罪魁祸首 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 的问题,明天上午的访问高峰将验证出结果。centos
目前用了3台4核8G的服务器,明天根据负载状况再增长服务器。bash
【更新】服务器
8:40 左右,响应速度变慢,加了1台服务器,响应速度立马恢复。(以前使用 .net framework + windows 也是在这个时间点加服务器)网络
9:00 左右,又加了1台服务器,如今是5台4核8G的服务器。并发
9:35 左右,又加了1台服务器,如今是6台4核8G的服务器。
10:00 左右,又加了1台服务器,如今是7台4核8G的服务器。
13:10 左右,退回到 .net framework + windows 博客系统,.net core 博客系统待调整部署与修复 bug 后再上线。
上午使用 docker-compose 部署时,博客系统所依赖的后端服务部署在另一个 docker swarm 集群上,结果这个集群的路由转发出现了问题。使用 docker-compose 部署还须要将博客系统所依赖的服务进行 docker-compose 部署。
从上午的访问高峰的状况看,docker-compose 部署时的资源瓶颈在 CPU ,出现响应速度慢时加服务器就能解决(这是正常状况),没有出现使用 docker swarm 部署时那种响应速度极不稳定、加服务器也无补的状况。
docker-compose 部署是否可以在访问高峰长时间持续稳定运行以及须要多少台服务器?待进一步验证。