ELB UDP健康检查常见故障分析
本文分享自天翼云开发者社区《ELB UDP健康检查常见故障分析》,作者:王****宁
什么是UDP健康检查
UDP是面向非连接的一种协议,在发送数据前不会通过进行三次握手建立连接,UDP健康检查的实现过程如下:
1.健康检查的节点根据健康检查配置,向后端发送ICMP request 消息。
如果健康检查节点收到了后端服务器返回的ICMP reply消息,则认为服务正常,继续进行健康检查。
如果健康检查节点没有收到后端服务器返回的ICMP reply消息,则认为服务异常,判定健康检查失败。
2.健康检查的节点收到ICMP reply消息后,会给后端服务器发送UDP探测报文。
如果在【超时时间】之内,健康检查的节点服务器收到了后端服务器返回的port unreachable的ICMP消息,则认为服务异常,判定健康检查失败。
如果在【超时时间】之内,健康检查的节点服务器没有收到后端服务器返回的ICMP错误信息,则认为服务正常,判定健康检查成功。
常见故障分析
由于同一台后端服务器可以被添加到不同的负载均衡监听器。当不同的监听器分别向同一台后端服务器发起健康检查是。由于后端服务器限制了ICMP消息产生的速率,导致ICMP reply 不能在超时时间内到达健康检查节点,就被判定为服务异常。产生误报。
异常排查方法
1.Linux系统下,检查ICMP消息速率的限制。默认值1000
sysctl -q net.ipv4.icmp_ratelimit
2.取消 port unreachable消息产生的速率限制。
sysctl -w net.ipv4.icmp_ratemask=6160
注意事项
1.负载均衡健康检查是通过UDP报文和Ping报文探测来获取后端云服务器的状态信息。针对此种情况,用户需要确保后端云服务器开启ICMP协议,确认方法如下:
用户登录后端云服务器,以root权限执行以下命令:
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
若返回值为1,表示ICMP协议关闭;若为0,则表示开启。
2.当前UDP协议服务健康检查可能存在服务真实状态与健康检查不一致的问题:
在大并发场景下,由于Linux的防ICMP攻击保护机制,会限制服务器发送ICMP的速度。此时,即便服务器已经出现异常,但由于无法向前端返回“port XX
unreachable”报错信息,会导致负载均衡由于没收到 ICMP 应答进而判定健康检查成功,最终导致服务真实状态与健康检查不一致。
ELB UDP健康检查常见故障分析的更多相关文章
- ASP.NET CORE 使用Consul实现服务治理与健康检查(1)——概念篇
背景 笔者所在的公司正在进行微服务改造,这其中服务治理组件是必不可少的组件之一,在一番讨论之后,最终决定放弃 Zookeeper 而采用 Consul 作为服务治理框架基础组件.主要原因是 Consu ...
- ASP.NET Core之跨平台的实时性能监控(2.健康检查)
前言 上篇我们讲了如何使用App Metrics 做一个简单的APM监控,最后提到过健康检查这个东西. 这篇主要就是讲解健康检查的内容. 没看过上篇的,请移步:ASP.NET Core之跨平台的实时性 ...
- keepalived健康检查方式【转】
keepalived具有很强大.灵活的后端检测方式,其具有HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK 几种健康检测方式 ,在分别介绍各种检测方式之 ...
- Nginx负载均衡中后端节点服务器健康检查的操作梳理
正常情况下,nginx做反向代理,如果后端节点服务器宕掉的话,nginx默认是不能把这台realserver踢出upstream负载集群的,所以还会有请求转发到后端的这台realserver上面,这样 ...
- keepalive的工作原理和如何做到健康检查
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议. 虚拟路由冗余协议,可以认为是实现路由器高可用的 ...
- Kubernetes Pod 健康检查
参考文档: https://jimmysong.io/kubernetes-handbook/guide/configure-liveness-readiness-probes.html 一.Pod的 ...
- Nginx实战系列之功能篇----后端节点健康检查(转)
公司前一段对业务线上的nginx做了整理,重点就是对nginx上负载均衡器的后端节点做健康检查.目前,nginx对后端节点健康检查的方式主要有3种,这里列出: 1.ngx_http_proxy_m ...
- CentOS7.4 Keepalived+LVS 负载均衡 后台节点健康检查
主机信息 VIP 10.10.10.55 LVS01 10.10.10.59 Web01 10.10.10.60 Web02 10.10.10.61 一.apache简单配置 1.(10.10.10. ...
- Springboot监控之一:SpringBoot四大神器之Actuator之2--springboot健康检查
Health 信息是从 ApplicationContext 中所有的 HealthIndicator 的 Bean 中收集的, Spring Boot 内置了一些 HealthIndicator. ...
- nginx高性能WEB服务器系列之六--nginx负载均衡配置+健康检查
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
随机推荐
- 使用免费的SVN服务器
在本地环境中安装SVN window版本自行搜索图文教程. linux版本(以我的 ubuntu 为例子) 我尝试直接敲SVN svn 报错 Command 'svn' not found, but ...
- CodeForces - 1398C Good Subarrays
CodeForces - 1398C 挺简单的题目,但是没有想到还是整理一下 方法1 把每个元素都减1,那么满足题意的就是一段和的值是0,然后维护前缀和,如果发现这个前缀和之前出现过,就说明有满足题意 ...
- 金Gien乐道 | 10月热点回顾
收获之秋,中电金信Q4开篇捷报不断 Q4开篇,中电金信迎来多个捷报.公司与青岛财通集团联合打造的核心业务系统(一体化业务平台)一期项目顺利投产上线并平稳运行:中标华南某全国性股份制商业银行新一 ...
- 【金TECH频道】从第一性原理出发,数字原生银行原来可以这样做
"第一性原理",是最近商界特别流行的一个词. 这个来自于古希腊先贤的古老词汇,本意在于更多聚焦于事物本质,即是用物理学的角度来看待世界,一层层拨开事物表象,看到里面的本质,再从 ...
- k8s.HPA.使用自定义指标Pod自动扩容
k8s.HPA.使用自定义指标Pod自动扩容 环境 env : kubernetes v1.22 metrics-server 0.6.1 prometheus v2.36.1 prometheus- ...
- win10 ocx控件注册失败的解决办法
首先注意:ocx放在大部分系统目录无法注册,比如program file ,但windows目录可以. 第一步:关闭防火墙 第二步:确定是否缺少控件运行需要的微软运行库或其他运行环境 这里提供一个挺全 ...
- 【Javaweb】【Servlet】简单验证用户的登陆
点击查看代码 | jsp <%-- Created by IntelliJ IDEA. User: xrilang Date: 30/12/2021 Time: 17:31 --%> &l ...
- 【MyBatis】学习笔记10:添加功能获取自增的主键
[Mybatis]学习笔记01:连接数据库,实现增删改 [Mybatis]学习笔记02:实现简单的查 [MyBatis]学习笔记03:配置文件进一步解读(非常重要) [MyBatis]学习笔记04:配 ...
- Linux打印显示时间
Linux打印显示时间具体使用参数如下: 1.输出当前年月日echo $(date +%F)2.输出当前时间(时分)echo $(date +%R)3.输出当前时间(时分秒)echo $(date + ...
- thinkphp6.0封装数据库及缓存模型
项目中的thinkphp6.0\app\common\Model.php 1 <?php 2 /** 3 * 数据库及缓存模型 4 */ 5 namespace app\common; 6 7 ...