服务器负载感知的URL HASH

负载均衡设备的URL哈希(HASH)功能主要应用在两种场合:

1. 大型网站。大型网站为了提高访问速率,将视频和图片等可缓存的内容缓存到CDN节点。每个CDN节点有很多台缓存服务器,前端配置负载均衡器进行流量分 担。为了提高缓存服务器的存储效率和命中率,负载均衡器通常选择URL HASH算法分配流量到缓存服务器。正常的情况下,不同缓存服务器所缓存内容是不同的,而相同URL的访问一定会到达同一台缓存服务器。

2. 互联网出口。可以是运营商城域网出口,也可以是大型企业的出口。为了提高访问速度,负载均衡设备与缓存配合将视频和图片等静态内容缓存到本地。与网站应用类似,URL HASH可以提高缓存效率和命中率。

下图是一个简单的URL HASH示例,该例子只使用最后3个字节计算HASH值,结果就是不同后缀的文件分布在不同服务器。实际应用中通常使用较长url或整个URL计算HASH值。

在有些负载均衡器的HASH算法中,增加或减少服务器会导致整个内容重新分布,所有缓存服务器原来存储的内容大部分失效,需要重新下载。这会大大影 响用户体验。在A10的HASH负载均衡算法中,除了根据url计算出hash值外,还要根据服务器IP地址和HASH值计算一个分数。分数最高的服务器 将被选作该HASH值对应使用的服务器。当增加或减少服务器时,只需要重新计算HASH值对应服务器的分数并更新HASH表即可。如下表所示,服务器正常 时,HASH值H1,H2,H3分别对应服务器S1,S2,S3。当服务器S1宕机或删除后,HASH表将更新HASH值H1对应的服务器为分数次高的 S2,这部分访问就被分流到S2,而HASH值为H2和H3的流量不会受影响,仍然分配到原来的服务器。HASH值的数量远大于服务器数量,而每个 HASH值对应不同服务器的分数有可能不同,因此,去除一台服务器时,其对应的多个HASH值基本可以平均分散到其它服务器。

服务器\HASH值 H1 H2 H3
S1 100 60 80
S2 80 100 60
S3 60 80 100

上面这种HASH算法在消耗很少资源的情况下保证了服务器增减不会引起大面积内容重新分布。但在极端情况下,受HASH本身算法设计限制,还是会有 一些问题产生。由于HASH保证了内容的分散,但对每个url的访问量并没有考虑进去。比如当一些热门事件发生时,个别热点链接会超过该HASH值对应服 务器的服务能力。这种情况下就需要负载均衡器可以和服务器配合,根据服务器的负担对HASH流量进行相应处理。A10根据用户需求开发了服务器负担感知的 HASH算法。其工作原理如下:

1. 服务器根据自身负担情况,在HTTP响应头中插入“Server-Status”字段,该字段的值为0、1或2。

2. 负载均衡器根据”Server-Status“反应的服务器负担,进行相应的流量调整。具体处理方式如下:

服务器状态 字段含义 负载均衡器措施
0
  • 服务器可以处理属于自己的流量
  • 也可以协助其它服务器处理流量
  • 负载均衡器正常处理该服务器对应的HASH值的流量
  • 如需要协助其它服务器处理流量
1
  • 服务器可以处理属于自己的流量
  • 但无能力协助其它服务器处理流量
  • 负载均衡器正常处理该服务器对应的HASH值的流量
  • 不会使用该服务器协助其它服务器处理流量
2
  • 服务器已经过载需要其它服务器协助
  • 至少需要另外1台状态为0的服务器进行轮询分配流量
  • 负载均衡器使用所有状态为0的服务器轮询分担该服务器的流量
  • 如没有服务器状态为0,则轮询分担流量到所有服务器

A10通过使用这种具有服务器负载感知的HASH算法,缓存部署碰到的问题基本得以解决。这也是越来越多缓存厂家希望与功能丰富的负载均衡厂商配合的原因之一,而不是缓存独立部署或者使用WCCP等方式引导流量。

时间: 2024-10-11 13:31:20

服务器负载感知的URL HASH的相关文章

服务器负载均衡基础概念

服务器负载均衡:按字面理解就是将网络流量负载负担.根据不同网络层次可分为二层负载.三层负载.四层负载.七层负载. 三层负载:三层负载最好理解,所以先讲三层负载.三层负载基于IP地址来分担的.对于了解NAT技术的人来说更好理解.一般拓扑如下: 负载设备(SLB)对外提供一个VIP(虚拟IP),客户端通过访问虚IP,SLB将客户端流量调调度服务器端.类似NAT中一对多效果.如客户端C1第一访问VIP调度到服务器A上,第二次访问就调度到服务器B上.我们称这种轮询调度为轮询调度算法,调度规则称为调度算法

PIOLINK服务器负载均衡解决方案设计

PIOLINK服务器负载均衡解决方案设计 系统设计的基本原则 l 实用.先进.安全.可扩展是本系统设计的基本原则 本建议书首先是满足现有和可预见未来几年内的应用要求:其次是考虑在投资增加很少的前提下,选择目前可以提供最先进技术手段的设备和系统方案:最后要考虑实现的安全系统面对应用要有长远发展的能力. l 稳定性和可靠性 对于业务系统的底层传输平台的网络系统必须要保证其工作的可靠性和稳定性,保证常年的不间断运行,这样才能提供及时.准确.可靠的信息支持. l 安全性 安全性是信息系统建设所必须优先解

LVS详解及基于LVS实现web服务器负载均衡

前言 LVS(Linux Virtual Server)Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.通过LVS提供的负载均衡技术和Linux操作系统可实现一个高性能.高可用的服务器群集,从而以低成本实现最优的服务性能. 集群基础 集群简介 集群(Cluster)是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用

HAProxy+Keepalived实现Web服务器负载均衡

2014年03月31日  HAProxy  暂无评论  被围观 12,941次+ 说明: 操作系统:CentOS 5.X 64位 Web服务器:192.168.21.127.192.168.21.128 站点:bbs.osyunwei.com和sns.osyunwei.com部署在两台Web服务器上 实现目的: 增加两台服务器(主主模式),通过HAProxy+Keepalived实现Web服务器负载均衡 架构规划: HAProxy服务器:192.168.21.129.192.168.21.130

pfsense Web服务器负载平衡配置示例

在pfsense的网关和服务器中有两种类型的负载平衡功能.网关负载平衡可以通过多个WAN连接分发Internet绑定的流量.服务器负载平衡管理传入流量,因此它利用多个内部服务器进行负载分配和冗余,服务器负载平衡允许流量在多个内部服务器之间分配,它最常用于Web服务器和SMTP服务器.下面我们就以实例来介绍服务器负载平衡的设置. 下面介绍如何通过pfsense2.32配置Web服务器的负载平衡. 网络环境 服务器负载平衡示例网络环境 上图为示例网络环境.它由单个防火墙组成,使用其WAN IP地址池

linux10个命令快速掌握linux服务器负载

如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?通过十条命令在一分钟内对机器性能问题进行诊断. 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n TCP,ETCP 1 top 其中一些命令需要安装sysstat包,有一些由pr

关于服务器负载

这两天公司的服务器好像有问题,听旁边的大神说看看服务器的负载情况,我开始慢慢了解一下服务器负载的知识! 当我们使用top命令查看系统的资源使用情况时会看到load average,它表示系统在1,5,15分钟的平均工作负载. load average:系统平均负载是CPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息,这个数字越小越好. 1.CPU负载和CPU的使用率的区别    CP

网站访问慢,服务器负载高-查找问题方法

如果以后出现报警各网站无法ping通,或者服务器负载过高,可通过以下几条途径查找原因:1,查看访问日志,查看是否有访问异常,如有,过滤IP,进行IP封装 cat my.xoyo.com | awk '{print $1}' | sort | uniq –c | sort –n >/tmp/ip.txt  netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort –n 2,查看网卡是否有严重丢包现象,ifconfig

网站访问慢,服务器负载高-系列查找问题方法

如果以后出现报警各网站无法ping通,或者服务器负载过高,可通过以下几条途径查找原因: 1,查看访问日志,查看是否有访问异常,如有,过滤IP,进行IP封装 cat access.log | awk '{print $1}' | sort | uniq –c | sort –n >/tmp/ip.txt netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort –n 2,查看网卡是否有严重丢包现象,ifconfig查