6月19日开始,我们将博客站点的缓存服务器从 memcached 换成了 redis,稳定运行了3天,今天上午访问高峰突然出现问题,在 11:00-12:30 期间影响了网站的正常访问,由此给您带来麻烦,请求谅解。

在故障期间,日志中大量的等待响应超时错误

StackExchange.Redis.RedisTimeoutException: Timeout awaiting response

其中的一个典型日志:

StackExchange.Redis.RedisTimeoutException: Timeout awaiting response (outbound=0KiB, inbound=6697KiB, 2937ms elapsed, timeout is 2000ms), command=GET, next: GET blog_v2_BlogPosts-291733, inst: 0, qu: 0, qs: 31, aw: False, bw: SpinningDown, rs: ReadAsync, ws: Idle, in: 0, in-pipe: 0, out-pipe: 0, serverEndpoint: 192.168.12.28:6379, mc: 1/1/0, mgr: 5 of 10 available, clientName: blog-web-c845b6686-zpl4s(SE.Redis-v2.5.61.22961), PerfCounterHelperkeyHashSlot: 11935, IOCP: (Busy=0,Free=1000,Min=20,Max=1000), WORKER: (Busy=19,Free=32748,Min=50,Max=32767), POOL: (Threads=73,QueuedItems=5,CompletedItems=2170212), v: 2.5.61.22961 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)

在确认是 redis 引起的故障后,我们立即采取了笨方法,将之前使用 memcached 缓存的部分切换回 memcached,切换后除了个人博客博文列表页面,其他访问都已恢复正常。

个人博客博文列表一级缓存已经切换到 memcached,但二级缓存还在使用 redis,所以依然受 redis 问题影响。

这时,我们重启了 redis,但重启后问题依旧。本来我们以为是并发高触发的问题,但我们的以为错了。我们重新进行了以为,既然不是并发多的原因,那可能是数据多的原因,flushall 清空 redis 中的数据后,很快恢复了正常。

接下来我们会进一步分析问题的原因,优化 redis 的部署,目前是在 k8s 集群上部署的非高可用 redis 集群(3个节点)。

【故障公告】取代 memcached 的 redis 出现问题造成网站故障的更多相关文章

  1. 【故障公告】数据库服务器 CPU 近 100% 引发的故障

    抱歉,今天上午 10:48 ~ 10:33 期间,我们所使用的数据库服务(阿里云 RDS 实例 SQL Server 2016 标准版)又出现了 CPU 近 100% 问题,由此给您带来麻烦,请您谅解 ...

  2. 【故障公告】升级阿里云 RDS SQL Server 实例故障经过

    昨天晚上,我们使用的阿里云 RDS SQL Server 2008 R2 实例突然出现持续 CPU 100% 问题,后来我们通过重启实例恢复了正常(详见故障公告).但是在恢复正常后发现了新问题,这台 ...

  3. 【故障公告】数据库服务器再次 CPU 100% 引发全站故障

    今天五一劳动节的一大早 5:50-6:30 期间,我们使用的阿里云 RDS SQL Server 数据库实例再次出现 CPU 100% 问题,引发全站故障,由此给您带来麻烦,请您谅解. 我们发现故障后 ...

  4. 【故障公告】Memcached 的“惹祸”,不知在为谁背锅

    在 .NET 5.0 背锅 . Memcached 的惹祸 .缓存雪崩之后,我们没有找到问题的真正原因,我们知道没有找到根源的故障总是会再次光临的,不是在这周就是在下周,也许就在双11前后. 就在今天 ...

  5. 【故障公告】数据库服务器 CPU 近 100% 引发的故障(源于 .NET Core 3.0 的一个 bug)

    非常抱歉,这次故障给您带来麻烦了,请您谅解. 今天早上 10:54 左右,我们所使用的数据库服务(阿里云 RDS 实例 SQL Server 2016 标准版)CPU 突然飙升至 90% 以上,应用日 ...

  6. 【故障公告】docker swarm 集群问题引发的故障

    我们的生产环境部署了 2 个 docker swarm 集群,集群 swarm-a 用于专门跑博客站点,集群 swarm-b 用于跑其他站点,manager 节点用了阿里云包月服务器,worker 节 ...

  7. 关于【【故障公告】数据库服务器 CPU 近 100% 引发的故障(源于 .NET Core 3.0 的一个 bug)】IS NOT NULL测试

    测试如图,Core_Users的PhoneNumber可为空,存在索引,记录数1500000+ 增加is not null,查询计划消耗增加了一个0%的筛选器消耗,IO消耗如下一模一样 如果是IS N ...

  8. 【故障公告】redis 服务器宕机引发博客站点故障

    非常抱歉,今天下午 17:10~17:40 左右,由于博客系统所使用的 redis 服务器宕机,造成博客站点无法正常访问,由此给您带来很大的麻烦,请您谅解. 我们会针对这次故障改进 redis 服务器 ...

  9. 谈谈Memcached与Redis

    1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器.其本质上就是一个 ...

随机推荐

  1. Cookie&&Session&&jsp入门

    会话技术 会话:一次会话中包含多次请求和响应. 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Coo ...

  2. DRF JWT认证(一)

    为什么要使用JWT认证?构成和原理又是什么?怎么还有Base64的事?我都写了

  3. 微信小程序--设置和获取剪切板内容

    设置 wx.setClipboardData  // 复制功能 获取 wx.getClipboardData // 粘贴功能     let _this = this     wx.setClipbo ...

  4. 今天写了一个可以测试并发数和运行次数的压力测试代码。(Java)

    今天写了一个可以测试并发数和运行次数的压力测试代码 介绍一下为什么会写这么一个工具. 介绍一个这个工具怎么用的. 背景 最近在开发CoapServer端,以及模拟设备侧发送数据调用开发好的CoapSe ...

  5. docker入门_image、container相关命令

    docker入门_image.container相关命令 镜像仓库服务.镜像仓库.镜像相关概念 镜像仓库服务:docker镜像仓库服务.阿里云镜像服务 镜像仓库:docker镜像仓库服务中会有很多仓库 ...

  6. [Vue]写一个简单的文件上传控件

    ​这篇将介绍如何写一个简单的基于Vue+Element的文件上传控件. 控件将具有 1. 上传队列的列表,显示文件名称,大小等信息,可以显示上传进度实时刷新 2. 取消上传 ​ 使用Element的u ...

  7. Kernel pwn 基础教程之 Heap Overflow

    一.前言 在如今的CTF比赛大环境下,掌握glibc堆内存分配已经成为了大家的必修课程.然而在内核态中,堆内存的分配策略发生了变化.笔者会在介绍内核堆利用方式之前先简单的介绍一下自己了解的内核内存分配 ...

  8. PAT练习——1094 The Largest Generation (25 point(s))

    题目如下: #include<iostream> #include<vector> #include<algorithm> using namespace std; ...

  9. 创建第一个c程序

    创建,组织,生成 ,生成. 1.我们先创建一个win32项目. 文件->新建->项目->Visual C++ ->Win32   输入项目名称   选择项目保存位置 很重要的一 ...

  10. OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "ip": executable file not found in $PATH: unknown (Docker容器没有ip addr命令:exec ip addr 报错)

    一.报错 1.报错信息1: OCI runtime exec failed: exec failed: container_linux.go:380: starting container proce ...