首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

B站宕机事故复盘:2021.07.13 我们是这样崩的

初因定位 22:55 远程在家的相关同学登陆 VPN 后,无法登陆内网鉴权系统(B 站内部系统有统一鉴权,需要先获取登录态后才登陆其他内部系统),导致无法打开内部系统,无法及时查看监控、日志来定位问题...SLB 运维分析发现多活机房 SLB 请求大量超时,但 CPU 未过载,准备重启多活机房 SLB 先尝试止损。...02:07 SLB 运维修改 SLB 集群的配置,关闭 jit 编译并分批重启进程,SLB CPU 全部恢复正常,正常处理请求。同时保留了一份异常现场下的进程 core 文件,留作后续分析使用。...此 SLB 集群日常晚高峰 CPU 使用率 30% 左右,剩余 Buffer 不足两倍。如果多活 SLB 容量充足,理论上承载住突发流量, 多活业务立即恢复正常。...SLB 作为核心服务中的核心,在目前没有弹性扩容的能力下,30% 的使用率较高,需要扩容把 CPU 降低到 15% 左右。 优化 CDN 回源超时时间,降低 SLB 在极端故障场景下连接数。

2.5K20

B站多活容灾高可用建设思路

接入层:包含三部分,有动态CDN,三方CDN、七层SLB负载均衡、SLB下面还有一层API GW。 服务层:第一层服务是BFF网关层,网关层下面是多个业务的服务层。...在服务之间调用时,服务端会返回自己目前的cpu使用率,调用方可以分析服务响应的rt、等待的response、成功率来选择最优的server节点来动态调整路由权重。...这样即使同一个服务不同实例部署在不同算力的物理节点上,最终仍然可以实现容器层面CPU使用率的负载均衡。...单点动态限流,基于谷歌BBR拥塞控制算法实现的,基于服务单节点的cpu使用率、成功率、RT动态决定这个节点现在请求要不要处理,以自适应限流保护。...713故障时,因为登录不了鉴权系统,导致不能及时处理问题,现在已经改为登录认证降级了,不强依赖于登录态。 同样,也不能因为审批流挂了,导致多活切不了,所以当审批平台挂了,审批是可以降级跳过的。

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    负载均衡(SLB)基础入门学习笔记

    简单的说一切为了用户的使用体验(减少工作响应时间)以及将系统资源使用率达到最高(将单个繁重的工作转发给后端多个节点处理), 目前负载均衡技术大多数是用于提高诸如在Web服务器、FTP服务器和其它关键任务服务器上的...Internet服务器程序的可用性和伸缩性; 1.负载均衡分类 SLB 工作层次分类: (1) 四层负载均衡(常用-TCP): 工作在OSI模型的传输层,即支持TCP/UDP协议的应用,协议中包含源和目标...,以达到Denial of Service(DoS)的目的; 四层SLB: 四层模式下这些SYN攻击都会被转发到后端的服务器上 七层SLB: 七层模式下这些SYN攻击自然在负载均衡设备上就截止,不会将其代理通信到后端服务器上...ConnectControl,Keepalive+ipvs等 优点: 基于特定环境,配置简单,使用灵活,成本低廉,可以满足普通的企业一般的负载均衡需求; 缺点: 依赖于操作系统,增加资源开销并且软件扩展性并不是很好...此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。 3)随机均衡(Random):把来自网络的请求随机分配给内部中的多个服务器。

    5.6K21

    7行代码让B站崩溃3小时,竟因“一个诡计多端的0”

    此发布环境只有生产环境会用到,同时使用的频率极低,在SLB前期灰度过程中未触发此问题。...5分钟后,运维发现承载全部在线业务的主机房七层SLB的CPU占用率达到了100%,无法处理用户请求,排除其他设施后,锁定故障为该层。 (七层SLB是指基于URL等应用层信息的负载均衡。...首先,运维先热重启了一遍SLB,未恢复;然后尝试拒绝用户流量冷重启SLB,CPU依然100%,还是未恢复。...接着,运维发现多活机房SLB请求大量超时,但CPU未过载,正准备重启多活机房SLB时,内部群反应主站服务已恢复,视频播放、推荐、评论、动态等功能已基本正常。...简单+粗暴:运维直接耗时一小时重建了一组全新的SLB集群。

    59020

    当SRS遇到K8s:快速构建高并发直播集群

    在这个场景下,对比K8s和传统使用方式的差异: 对比 ECS K8s 说明 申请ECS 手动 自动 部署时,ECS需要手动申请,K8s自动申请 安装包 脚本 镜像 Docker方式更优,版本管理,Cache...,K8s只需要修改Replicas数目即可(也自动扩容) 发现 手动 自动 Origin变更IP时,ECS需要手动修改配置,K8s自动通知边缘和自动发现 SLB 手动 自动 新增Edge时,ECS需要手动更新...Note: 这里我们选择ACK自动创建SLB和EIP,也可以手动指定SLB,参考指定购买的SLB和EIP。...和EIP,也可以手动指定SLB,参考指定购买的SLB和EIP。...Note: 如果是自动创建SLB和EIP,那么HLS和RTMP/HTTP-FLV的IP是不一样的,你可以选择手动指定SLB,这两个服务可以用同一个SLB,参考指定购买的SLB和EIP。

    1.6K10

    记一次混合云API暴露的反思

    客户为金融企业对SLA要求及数据安全性很高,有限于考虑到业务的高可用性,采用混合云部署,业务流量入口为阿里金融云,前端可以添加安全设备WAF/CDN/高防IP等,之后Cname到统一入口SLB负载均衡上...考虑到数据的安全性将数据持续化在IDC侧,阿里云与IDC通过云上部署深信服设备与IDC侧Cisco设备通过Ipsec ×××互联(考虑到稳定性目前已经实施专线互通),后端APP-Server与DB-Server部署在IDC,参考下图...的七层模式将证书放置在SLB上。...2.3 域名及SLB 由于是测试域名前端暂时未添加WAF/高防IP等防护设备,将域名解析A记录解析至SLB公网地址,SLB配置虚拟服务器组,组内添加Web-Server,此时监听端口为Dnat端口。...三、反思 由于受限与种种业务原因,这边列举下具体的实施方案,可供以后参考: 如果可能可直接在IDC侧有公网服务器进行反代暴露接口 在IDC侧Cisco 设备Dnat映射业务端口进行暴露接口 在阿里金融云如果有证书可以采用

    1.6K30

    分布式 | DBLE 3.21.10.1 及其他 LTS 版本发布!

    一些可能hang的场景 前端slb引发的内存泄露 3.20.10.8 发行说明: 我们发布了 3.20.10.8 ,这是个基于 3.20.10.7 的 bug 修复版本 问题修复: 升级log4j到...2.17.1 垂直拆分的view问题 关闭心跳记录 一些可能hang的场景 读写分离hint语句失效问题 前端slb引发的内存泄露 3.21.02.7 发行说明: 我们发布了 3.21.02.7 ,...这是个基于 3.21.02.4 的 bug 修复版本 问题修复: 升级 log4j 到 2.17.1 垂直拆分的view问题 关闭心跳记录 一些可能 hang 的场景 读写分离 hint 语句失效问题...bug 读写分离模式下对后端流量的控制 读写分离模式下对 com_field_list 协议的支持 读写分离场景下,平滑增删从机 空文本的 load data 的错误 单节点表 ddl 的错误 前端 slb...的 bug 读写分离模式下对后端流量的控制 读写分离模式下对com_field_list协议的支持 读写分离场景下,平滑增删从机 空文本的 load data 的错误 单节点表 ddl 的错误 前端 slb

    55020

    Kubernetes 1.20.5 安装traefik在腾讯云下的实践

    最早使用traefik 不直接使用腾讯云公有云的slb是因为当时slb不能挂载多个证书,而我kubernetes的自建集群实在不想挂载多个slb.就偷懒用了slb udp绑定运行traefik节点的..._ 2、Gateway API 的目标 Gateway API 旨在通过提供表达的,扩展的,面向角色的接口来改善服务网络,这些接口已由许多供应商实施并获得了广泛的行业支持。...就像Ingress是具有许多实现的通用规范一样 ,Gateway API也被设计为受许多实现支持的移植规范。...扩展-网关API允许在API的各个层上链接自定义资源。这样就可以在API结构内的适当位置进行精细的自定义。...过去使用slb用的tcp代理方式有一下原因: 过去的腾讯云slb不支持一个负载均衡挂载多个证书,个人不想启用多个slb绑定。

    2.3K21

    当SRS遇到K8s:如何构建海量推流源站?

    在这个场景下,对比K8s和传统使用方式的差异: 对比 ECS K8s 说明 申请ECS 手动 自动 部署时,ECS需要手动申请,K8s自动申请 安装包 脚本 镜像 Docker方式更优,版本管理,Cache...自动 需要新开进程时,ECS需要申请部署和配置,K8s只需要修改Replicas数目即可(也自动扩容) 发现 手动 自动 Origin变更IP时,ECS需要手动修改配置,K8s在迁移源站Pod时会保持...Step 1: 由于SRS和Nginx不在一个Pod可能也不在一个Node,需要创建依赖的PV(Persistent Volume)持久化卷,购买NAS例如: 驱动类型(PV driver...Note:这里我们选择ACK自动创建SLB和EIP,也可以手动指定SLB,参考指定购买的SLB和EIP。 Step 4: 大功告成。...Note:如果是自动创建SLB和EIP,那么HLS和RTMP/HTTP-FLV的IP是不一样的,你可以选择手动指定SLB,这两个服务可以用同一个SLB,参考指定购买的SLB和EIP。

    1.1K20

    干货 | 携程第四代架构探秘之运维基础架构升级(下)

    为了解决在路由运维方面的粒度和效率问题,携程决定打造自己的软负载(SLB)系统,替代掉硬件LB的七层路由职责。经过讨论,SLB确定了自己的职能目标,即可以高并发、实时、灵活、细粒度调整七层路由规则。...所以SLB要做的是如何和应用模型融合起来,换句话说,所有对SLB的操作都要被抽象为对一个应用的操作。Nginx是基于文本配置文件,其内建了一个自己的模型,一次运维操作可以导致多个Nginx模型的变更。...,才会认为这台服务器工作。...【携程的健康检测效果】 携程独立健康检测的运行效果良好,目前SLB系统已经负责了携程超过5万个结点的健康检测任务。而下图是由节点独立检测变为节点共享检测时的SLB单一服务器网络连接释放状况: ?...而回滚方面,Tars则是在服务器本地保留了n个版本(n根据服务器磁盘容量计算获得),做回滚时快速地进行目录切换,进而省略了代码下载过程。

    1.9K90

    如何利用开源DevOps工具完成云上的自动运维

    如果要实现这样一个基础设施的话,大的步骤是需要以下七步:创建为PC、创建VSWITCH、创建NET网关、新建共享带宽包、创建ECS、创建SLB、创建SNAT、最后挂载SLB。...另一个开源的好处是成熟、透明、自增强。 ? Terraform最重要的一点就是模板,模板里面最重要的就是resource。resource是来描述资源,它后面有两个字串。...SLB同样是指定它的name以及网络的收费类型,它是公网SLB还是私网SLB,还有对它监听的一些配置。 最后一个是SLB的挂载。...这里定义了SLB和instance这两个主要的参数,也就是要把哪些instance挂载到SLB下面。 ? Terraform最重要的三个命令就是PLAN、APPLY和DESTROY。...还可以用代码代替文档,并且也有历史记录,回滚。不用担心文档更新不及时或者是人员流动带来的一些问题。而且不用通过访问生产环境就能够知道生产环境上的配置情况,也可以提高整个团队DevOps的能力。

    3.2K70

    每秒处理1000万用户请求…云上架构如何实现高性能和高可用

    云上架构的高性能 什么是性能 性能是很难衡量的,狭义上的性能指的是运行速度的快慢,广义的性能则涉及更多的内容,如功耗、利用率、性能价格比、速度等。...但是大部分的情况下往往无法简单的通过硬件升级解决所有问题,还需要从架构的层次上入手,降低服务器压力,采用扩展架构提高性能。...前端用户请求通过CDN服务响应,CDN主要用来做服务加速,对于可以满足的响应直接使用CDN解决,无法满足的请求转发给后端SLB。...从图中可以看到不同的应用使用的服务器数量不同,这里所有的服务都被部署到ECS上,ECS又挂载在SLB后面,另外其中还有OCS数据缓存,用户请求的数据如果无法从缓存中获取到,就从数据库中读取。...自动扩展设计:不进行设计调整,就能满足业务量增长; - 自我修复设计:内建容错及检查能力,应用能够在部分组件失效时自我修复继续工作; - 松耦合设计:耦合度越小,扩展性越好,容错能力越强 多可用区设计 在SLB

    1.7K10

    运维与自动化运维发展概括

    监控平台 zabbix 操作系统安装平台 6.运维自动化发展 服务化(api化) dns web 管理 bind-DLZ dns-api 负载均衡web管理 slb-api...5、再次调用saltstack-api部署软件(nginx-php) 6、调用deploy-api将当前版本代码部署到服务器上 7、调用test-api 测试当前服务运行是否正常 8、调用slb-api...、服务降级、故障自愈 触发机制-》决策系统(决策树)-》 1.zabbix触发Action 触发: 1、当某个集群的访问量超过最大支撑量,比如10000 1.1、cpu使用率达到...内存使用率达到xx 2、当持续5分钟 3、不是攻击 4、资源池有可用资源 4.1、当前网络带宽使用率 4.2、如果公有云--钱够不够 5、当前后端服务支撑量是否超过阈值,如果超过应该后端先扩容

    4.9K51

    18个基本的F5负载均衡面试题

    服务器负载平衡 (SLB) 通过以下方式提供网络性能和内容交付:实施一系列算法和优先级来响应对网络。 简单来说,SLB 将客户端分发到一组服务器,并确保客户端不会发送到出现故障的服务器。...确定特定服务器或服务是否正在运行或已失败,当服务未通过健康检查时,SLB 算法将停止向该服务器发送客户端,直到服务再次通过健康检查。 问题 4: – 当负载均衡到真实服务器时,首先访问哪个服务器?...GSLB 的运作方式与 SLB 非常相似,允许您进行负载平衡来自不同地理位置的 VIP 作为一个实体,增加了地理位置容错性和扩展性。 问题 7: – 使用 GSLB 需要开启集群吗?...HTTP Cache-Control 头决定了对象的缓存性,也可以确定对象应该被缓存多长时间,缓存可以配置为覆盖通过指定主机名和匹配的正则表达式来缓存对象在对象的 URL 中。...真正的集群允许集群中所有设备的所有配置同步,当然,只同步了SLB配置等全局参数,当地的接口IP地址等参数不同步。 问题 15:- 什么是虚拟集群?

    1.7K20

    微服务网关方案:Kong & Nacos

    Kong(官网:https://konghq.com/, git:地址 https://github.com/Kong/kong),根据官方介绍,是一个 clould-native、快速的、扩展的...传统 Client/Services 方式与 Kong(网关)方式的对比如下图所示: image.png 高性能、扩展、易用性是 Kong 的三大原则。...http://SLB:port/openAPI 挂载 SLB 模式(内网 SLB,不可暴露到公网,以免带来安全风险),直连 SLB 即可,下面挂 server 真实 ip,可读性不好。...http://nacos.com:port/openAPI 域名 + SLB 模式(内网 SLB,不可暴露到公网,以免带来安全风险),可读性好,而且换 ip 方便,推荐模式。...4.1.3 Tyk Tyk 是一个开源的、轻量级的、快速伸缩的 API 网关,支持配额和速度限制,支持认证和数据分析,支持多用户多组织,提供全 RESTful API。基于 go 编写。

    2K30
    领券