非常抱歉,今天上午的博客站点故障给大家带来了很大的麻烦,请大家谅解.这次故障是我们发布 .NET Core 版博客站点引起的,虽然我们进行了充分的准备,但还是低估了高并发下的复杂问题. 以下是故障背景与大致经过: 在这个炎炎夏日,我们正日火朝天地忙着整个 .NET Core 迁移工程的收官 —— 发布 .NET Core 版博客站点与博客后台.我们的其他系统都早已迁移至 .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)提高服务器的网络处理…
为了验证 docker swarm 在高并发下的性能问题,周一我们发布了使用 docker-compose 部署的 .net core 版博客站点(博文链接),但由于有1行代码请求后端 web api 时没有使用缓存,结果造成大量 web api 请求发向跑后端服务的集群,悲剧的是这个集群是用 docker swarm 部署的,请求是用 nginx 容器转发的,结果压垮了 nginx ,大量后端请求 502 ,被迫回退至 windows + .net framework 版博客系统. 使用 do…
今天暴风雨袭击了杭州,而昨天暴风雨(高并发问题)席卷了园子,留下一片狼藉. 在前天傍晚,我们进行了 .net core 版博客站点的第二次发布尝试,在发布后通过 kestrel 直接监听取代 nginx 转发解决了高并发下的1秒延迟问题,成功地顶住了下班前的访问小高峰,但这只是一场大雨,第二天的上午和下午的暴风雨(访问高峰中的高并发)才是真正的考验. 昨天,面对暴风雨,我们哼都不敢哼一声“让暴风雨来得更猛烈些吧”,只是一直不停地默念“让暴风雨快点过去吧”,尤其在下午的暴风雨袭击下,跑在 dock…
今天早上,我们修改了博客程序中的1行代码,将 services.AddDbContextPool 改为 services.AddDbContext ,去掉 DbContextPool . 然后奇迹出现了 —— 单台4个8G的服务器,800 左右的 QPS 不在话下,CPU 的稳健与 .NET Framework 版有的一拼. 到发布博文时间为止,最高可以撑住 1300 的 QPS . DbContextPool 相关链接: EF Core 小坑:DbContextPool 会引起数据库连接池连接…
非常非常抱歉,新年上班第一天, 在今天阿里云上气候突变情况下,由于我们开船技术差,在今天 10:15~12:00 左右的访问高峰,我们竟然把船给开翻了,造成近2个小时整个博客站点无法访问,由此给您带来很大很大的麻烦,恳请您的谅解. 翻船经过如下. 翻墙前的船只情况 博客站点正在使用的 k8s 集群一共用了 9 台 worker 节点服务器,在访问低峰时用 5 台,另外 4 台处于关机状态,在进入访问高峰前启动.所以我们用 cron 定时任务在工作日每天早上启动 4 台服务器,每天晚上关闭 4 台…
自从博客系统升级 .NET 5.0 之后遇到的诡异故障(一.二.三.四),今天它又出现了,就在前天刚刚故障之后, 就在昨天 .NET 5.0 正式版刚刚发布之后,出现了. 今天晚上我们在 19:30 左右进行了一次发布,发布后特地进行了观察,没有出现故障,但后来在 20:30 左右发现了故障(巧合的是与上次故障是差不多的时间点),在这次故障过程中,我们试遍了之前的所有方法(除了回退 .NET 5.0)都无济于事,在我们几乎绝望之时,我们把目光转向了我们曾经专门"洗白"过的 .NET 5…
非常抱歉,今天下午 17:10~17:40 左右,由于博客系统所使用的 redis 服务器宕机,造成博客站点无法正常访问,由此给您带来很大的麻烦,请您谅解. 我们会针对这次故障改进 redis 服务器的部署,提高 redis 服务器的高可用性.目前 redis 服务是用阿里云服务器单独部署的,还没部署到 k8s 集群上. 没想到下半年的第一篇博文竟然是故障公告,为了凑足字发到首页,简单向大家汇报一下园子的近况. 转眼间2021年上半年过去了,园子的审核工作还没全部完成,我们依然在努力还债. 20…
非常抱歉,今天凌晨博客站点负载均衡中所有3台服务器的IIS应用程序池突然停止工作,造成 1:20-7:45 左右博客站点无法正常访问,由此给您带来很大的麻烦,请您谅解. 服务器操作系统是 Windows Server 2016,对应的 IIS 错误日志如下: A process serving application pool 'www.cnblogs.com' suffered a fatal communication error with the Windows Process Activ…
  非常抱歉,今天下午14:39-15:39左右,博客站点的部分负载均衡遭遇3次20G以上的流量攻击,造成很多用户不能正常访问.由此给您带来麻烦,请您谅解. 攻击的过程是这样的: 14:39,第1次攻击流量26.64Gb,针对的是其中1台负载均衡A,攻击后,立即被阿里云云盾屏蔽. 您的IP:*.*.*.*受到攻击流量已超过云盾DDoS基础防护的带宽峰值,服务器的所有访问已被屏蔽,如果30分钟后攻击停止将自动解除否则会延期解除. 发现后,我们立即更改dns解析,将访问流量切换到另外的负载均衡B,但…