前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NetCore-3.0 Preview7先行者的实践-博客园站点发布更新

.NetCore-3.0 Preview7先行者的实践-博客园站点发布更新

作者头像
梁规晓
发布2019-08-13 11:40:42
4470
发布2019-08-13 11:40:42
举报
文章被收录于专栏:DotNet程序园DotNet程序园

.NET Core 版博客站点第二次发布尝试

在上次发布失败后,很多朋友建议我们改用 k8s ,但我们还是想再试试 docker swarm ,实在不行再改用 k8s 。

在改进了 docker swarm 集群的部署后,我们准备今天 17:30 左右进行一次发布尝试。

docker swarm 集群是我们使用阿里云服务器自己搭建的,这次进行了3方面的改进。

1. 升级了 worker 节点服务器的配置

worker 节点由6台4核8G服务器换成了3台8核16G服务器,基于3点考虑:

1)提高单台服务器的处理能力;

2)提高服务器的网络处理能力,阿里云的服务器配置越高,网络处理能力越强;

3)减少服务器数量可以减少 docker swarm 节点之间的通信开销。

2. 升级了 docker engine,由 18.09.4 升级至 19.03.1

代码语言:javascript
复制
wget -c https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm  && \
wget -c https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.1-3.el7.x86_64.rpm && \
wget -c https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-19.03.1-3.el7.x86_64.rpm && \
yum install -y containerd.io-1.2.6-3.3.el7.x86_64.rpm && \
yum install -y docker-ce-19.03.1-3.el7.x86_64.rpm && \
yum install -y docker-ce-cli-19.03.1-3.el7.x86_64.rpm

3. nginx 改用 host 网络模式部署

代码语言:javascript
复制
ports:
    - target: 80
      published: 80
      protocol: tcp
      mode: host
代码语言:javascript
复制

另外,改进了博客系统缓存部分的代码,解决了新旧版切换时的缓存冲突问题。

这次发布如果遇到问题,我们可以快速回退到旧版。

如果在发布过程中出现问题影响您的正常访问,请您谅解。

------------------------------------------

发布过程记录

17:40 使用 nginx 转发,切换了1/5不到的流量就出现了1秒延迟的问题。

18:20 改为 kestrel 以端口映射的方式直接监听 80 端口,切换了1/3左右的流量,未出现延迟1秒的问题。

18:33 所有流量都已切换,未出现延迟1秒的问题。

以下是发布过程中服务器同时连接数监控,使用 nginx 转发时,当同时连接数超过 40K ,所有请求都出现1秒延迟的问题。当改为 kestrel 直接监听80端口后,即使同时连接数超过 100K ,也没出现1秒延迟的问题。没想到1秒延迟竟然是 nginx 的问题(或者是 nginx 对 docker swarm 的支持问题),不是 docker swarm 网络本身的问题。

21:00 今天发布后一直在线上,如果明天上午的访问高峰能撑住,那就说明发布成功了。

8月8日

9:15 左右,服务器同时连接数超过 130K ,3台服务器撑不住,加了1台服务器。

9:26 左右,memcached 客户端 socketPool 满了,将 maxPoolSize 由 500 修改为 800 。

代码语言:javascript
复制
2019-08-08 09:24:30.781 [Error] Pool is full, timeouting. 10.0.78.124:11211
代码语言:javascript
复制

10:15 左右,docker swarm 集群有增加了1台8核16G的服务器,目前一共5台 worker 节点。

11:05 更新:每台服务器上博客应用容器的的 CPU 消耗在 5-6 核,内存消耗在 1G 与 1.5G 之间。

11:05 左右,负载没有下降,我们什么也没动,响应速度却出奇地稳定,并且与访问低峰时一样飞快。

13:30 更新:今天上午访问高峰时单台服务器同时连接数最高达到21万(监控数据来自阿里云云监控)。

17:10 更新:今天下午访问高峰期间,访问速度很不稳定。我们正在考虑下一步的对策。

17:30 左右,当访问量回落到一定程度后, 访问速度恢复正常。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet程序园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • .NET Core 版博客站点第二次发布尝试
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档