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的服务器,明天根据负载情况再增加服务器。
【更新】
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的更多相关文章
- Powered by .NET Core 进展:第5次发布尝试(Windows部署)
		
(图注:Windows 自带的性能监控,红色表示 CPU 占用,绿色表示 QPS) 今天中午 12:30 左右,我们进行了 .NET Core 博客站点的第5次发布(页脚会显示"Powere ...
 - Powered by .NET Core 进展0819:高速开车车况汇报
		
继续以流水账的方式向大家汇报,自从上周六上午将 .net core 版博客站点从 windows 部署切换到 linux 上的 docker-compose 部署后,到目前一直在线. Linux 上没 ...
 - asp.net core容器&mysql容器network互联 & docker compose方式编排启动多个容器
		
文章简介 asp.net core webapi容器与Mysql容器互联(network方式) docker compose方式编排启动多个容器 asp.net core webapi容器与Mysql ...
 - 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 ...
 - .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行
		
本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...
 - AspNetCore容器化(Docker)部署(三) —— Docker Compose容器编排
		
一.前言 上一篇部署了一个最基础的helloworld应用,创建了两个容器和一个network,还算应付得过来. 如果该应用继续引入mysql.redis.job等若干服务,到时候发布一次得工作量之大 ...
 - Docker 核心技术之Docker Compose
		
Docker Compose 简介 Docker Compose是什么? Docker Compose是一个能一次性定义和管理多个Docker容器的工具. 详细地说: Compose中定义和启动的每一 ...
 - Docker Compose 创建yml 简单试例
		
Docker Compose 创建yml 简单试例 Docker Compose 文件使用格式版本需要与Docker版本对应可在官网内查找 查找地址:https://docs.docker.com/c ...
 - Windows 系统安装Docker Compose 步骤
		
参考 Docker Compose official 官方安装指南: https://docs.docker.com/compose/install/ 实际上到目前为止还不能直接在Windows上安装 ...
 
随机推荐
- Android native进程间通信实例-socket本地通信篇之——服务端进程异常退出解决办法
			
导读: 好难受啊,为什么服务端说挂就挂,明明只是客户端关闭而已,服务端怎么能挂呢? 想想,如果手机上使用一个聊天程序的时候,手机端关闭了聊天程序,那么远端服务器程序总不能说挂就挂吧!所以一定要查明真相 ...
 - css单位中px和em,rem的区别
			
css单位中分为相对长度单位.绝对长度单位. 今天我们主要讲解rem.em.px这些常用单位的区别和用法. px(绝对长度单位) 相信对于前端来说px这个单位是大家并不陌生,px这个单位,兼容性可以说 ...
 - 嗨,你真的懂this吗?
			
this关键字是JavaScript中最复杂的机制之一,是一个特别的关键字,被自动定义在所有函数的作用域中,但是相信很多JvaScript开发者并不是非常清楚它究竟指向的是什么.听说你很懂this,是 ...
 - NOIP2002 字串变换题解(双向搜索)
			
65. [NOIP2002] 字串变换 时间限制:1 s 内存限制:128 MB [问题描述] 已知有两个字串A$, B$及一组字串变换的规则(至多6个规则): A1$ -> B1$ A2$ ...
 - 宽字符转窄字符CW2AEX<>(szAreaInfo,CP_UTF8)
			
CString szAreaInfo; CW2AEX<>(szAreaInfo,CP_UTF8); 最好能像上面这样转换,否则汉字就会转成乱码.
 - FC游戏修改教程(hack)小白文。
			
FC(NES)红白机Family Computer(简称FAMICOM)(或Nintendo Entertainment System)是任天堂公司发行的第一代家用游戏机. 修改FC游戏需要的工具有 ...
 - [USACO07FEB]银牛派对Silver Cow Party
			
题目简叙: 寒假到了,N头牛都要去参加一场在编号为X(1≤X≤N)的牛的农场举行的派对(1≤N≤1000),农场之间有M(1≤M≤100000)条有向路,每条路长Ti(1≤Ti≤100). 每头牛参加 ...
 - 【Gym - 100923A】Por Costel and Azerah(思维水题)
			
Por Costel and Azerah Descriptions 给你n个数 问你,有多少个子序列 的和是偶数 Example Input 233 10 124 2 Output 33 题目链接 ...
 - 百度AI之百度图像识别java版本使用
			
百度AI之百度图像识别java版本使用\ 官网 http://ai.baidu.com/ 创建应用 查看 appid,appkey,sk 下载sdk https://ai.baidu.com/sdk# ...
 - .Net微信网页开发之使用微信JS-SDK自定义微信分享内容
			
第一步.微信JS-SDK的使用步骤,配置信息的生成获取讲解: 关于JS-SDK的使用步骤和timestamp(时间戳),nonceStr(随机串),signature(签名),access_token ...