相关博文:

抱歉,.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的服务器,明天根据负载情况再增加服务器。

【更新】

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 部署是否能够在访问高峰长时间持续稳定运行以及需要多少台服务器?待进一步验证。

Powered by .NET Core 进展:用 docker-compose 验证高并发问题嫌疑犯 docker swarm的更多相关文章

  1. Powered by .NET Core 进展:第5次发布尝试(Windows部署)

    (图注:Windows 自带的性能监控,红色表示 CPU 占用,绿色表示 QPS) 今天中午 12:30 左右,我们进行了 .NET Core 博客站点的第5次发布(页脚会显示"Powere ...

  2. Powered by .NET Core 进展0819:高速开车车况汇报

    继续以流水账的方式向大家汇报,自从上周六上午将 .net core 版博客站点从 windows 部署切换到 linux 上的 docker-compose 部署后,到目前一直在线. Linux 上没 ...

  3. asp.net core容器&mysql容器network互联 & docker compose方式编排启动多个容器

    文章简介 asp.net core webapi容器与Mysql容器互联(network方式) docker compose方式编排启动多个容器 asp.net core webapi容器与Mysql ...

  4. Docker Compose 容器编排 NET Core 6+MySQL 8+Nginx + Redis

    环境: CentOS 8.5.2111Docker 20.10.10Docker-Compose 2.1.0 服务: db  redis  web nginx NET Core 6+MySQL 8+N ...

  5. .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行

    本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...

  6. AspNetCore容器化(Docker)部署(三) —— Docker Compose容器编排

    一.前言 上一篇部署了一个最基础的helloworld应用,创建了两个容器和一个network,还算应付得过来. 如果该应用继续引入mysql.redis.job等若干服务,到时候发布一次得工作量之大 ...

  7. Docker 核心技术之Docker Compose

    Docker Compose 简介 Docker Compose是什么? Docker Compose是一个能一次性定义和管理多个Docker容器的工具. 详细地说: Compose中定义和启动的每一 ...

  8. Docker Compose 创建yml 简单试例

    Docker Compose 创建yml 简单试例 Docker Compose 文件使用格式版本需要与Docker版本对应可在官网内查找 查找地址:https://docs.docker.com/c ...

  9. Windows 系统安装Docker Compose 步骤

    参考 Docker Compose official 官方安装指南: https://docs.docker.com/compose/install/ 实际上到目前为止还不能直接在Windows上安装 ...

随机推荐

  1. 数据结构与算法---树结构(Tree structure)

    为什么需要树这种数据结构 数组存储方式的分析 优点:通过下标方式访问元素,速度快.对于有序数组,还可使用二分查找提高检索速度. 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 ...

  2. Golang之mirco框架部分浅析

    在实习中使用 micro 框架,但是挺多不懂的,看了部分源码搞懂了一些,还是有一些比较复杂没搞懂. 第一部分:初始化 service 并修改端口 main.go // waitgroup is a h ...

  3. asp.net core系列 67 Web压力测试工具WCAT

    一.介绍 最近搭建了一套CQRS框架,需要在投入开发前,进行必要的压力测试.Web Capacity Analysis Tool  (Wcat)是一种轻量级HTTP负载生成工具,主要用于衡量受控环境中 ...

  4. 分布式事务(2)---TCC理论

    分布式事务(2)---TCC理论 上篇讲过有关2PC和3PC理论知识,博客:分布式事务(1)---2PC和3PC理论 我的理解:2PC.3PC还有TCC都蛮相似的.3PC大致是把2PC的第一阶段拆分成 ...

  5. javascript高级笔记——内含事件,DOM,BOM等

    JavaScript高级笔记 1,DOM的简单学习 1.1,功能:用于控制HTML文档的内容: 1.2,获取页面标签对象:Element *document.getElementById(" ...

  6. 从壹开始[ 做贡献 ]之三 || 北京.Net俱乐部活动——DNT精英论坛开幕

    缘起 哈喽大家好!好久不见,可能有一部分小伙伴发现我好久没有写文章了,是不是懒惰了,并没有,这两周也是正式开始了<NetCore系列教程的视频录制>,不过还不多,预计会是每周一个视频,基本 ...

  7. android_sdcard读写(三)

    这次来个稍微复杂点的. package cn.com.sxp;import android.app.Activity;import android.app.ProgressDialog;import ...

  8. 数据库系统概念:SQL的数据类型与模式、授权

    public class DataBase { public static void main() { } } /* 4.5 SQL的数据类型与模式 4.5.1 SQL的日期与时间类型 SQL标准支持 ...

  9. Excel公式中问题-记住不要忽略空格!

    总结一下之前犯得愚蠢的小问题: 程序:每日报表:从DB下载数据填充到excel,包括3个sheet,sheet1:总结<模板,公式填充,数据源为sheet2,sheet3>;sheet2: ...

  10. python基础知识二 列表、元组、range

    3.6.2 列表 1.列表 -- list ​ 有序,可变,支持索引,用于存储数据(字符串,数字,bool,列表,字典,集合,元组,). list1 = [] list1 = ['alex',12,T ...