大开测试:性能- 如何解决负载均衡将压力作用到一台机器(连载15)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大开测试:性能- 如何解决负载均衡将压力作用到一台机器(连载15)相关的知识,希望对你有一定的参考价值。

7.15  如何解决负载均衡将压力作用到一台机器

1.问题提出

如由IP地址为192.168.1.30192.168.1.31192.168.1.323台机器组成的ApacheTomcat集群和负载均衡系统,发现客户端发出请求后,都将请求发送到了IP192.168.1.30的机器上,请问这是为什么呢?

2.问题解答

随着互联网络技术的飞速发展,越来越多的应用已经从最早的单机操作变成基于互联网的操作。由于网络用户数量激增,网络访问路径过长,用户的访问质量容易受到严重影响,尤其是当用户与网站之间的链路被突如其来的流量拥塞时。而这种情况经常发生在异地互联网用户急速增加的应用上。这时如果在服务端应用负载均衡(GSLB)技术,就可以合理分担系统负载、提高系统可靠性、支持网站内容的虚拟化。

Web服务器负载均衡定义、作用及类型

1)负载均衡的定义。

负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。

2)负载均衡的作用。

如果发现Web站点负载量非常大时,应当考虑使用负载均衡技术来将负载平均分摊到多个内部服务器上。如果有多个服务器同时执行某一个任务时,这些服务器就构成一个集群(clustering)。使用集群技术可以用最少的投资获得接近于大型主机的性能。

3)类型。

目前比较常用的负载均衡技术主要有以下几种。

l  基于DNS的负载均衡。通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。

l  反向代理负载均衡。使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。Apusic负载均衡器就属于这种类型的。

l  基于NAT的负载均衡技术。网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此,如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。

在这里我们不对关于ApacheTomcat集群和负载均衡的部署进行描述,如果关心可以通过查找相关资料获得这部分知识。在了解一些关于负载均衡技术一些知识以后,接下来让我们分析一下如何解决上述问题。在Windows 2000以上的微软操作系统中,系统会自动将从DNS服务器上的查询结果保存在本地的DNS缓存中,那么下次再有重复的查询请求,系统会优先查询本地缓存。如果已有对应的内容,则不再向DNS服务器发起请求,缓存中无记录时才查询DNS服务器。本来设定此DNS缓存的目的是为了能减少DNS服务器的负荷,不对同一个域名解析多次,同时也能加快客户主机的访问速度。在DNS缓存中记录条目每隔一段时间将被更新一次,长时间不用的内容将被丢弃,这个时间间隔称为生存时间(TTL)。TTL值全称是“生存时间(Time To Live)”,简单地说它表示DNS记录在DNS服务器上缓存时间,直接地说,此值影响客户第2次访问站点的速度。默认情况下,得到肯定响应的条目TTL86400s1天),否定响应(Negative Cache Time)的TTL Windows 2000平台下是300s5min),在Windows XPWindows 2003中是900s15min)。正是由于肯定响应和否定响应的TTL时间过长,所以才造成了故障主机在得到一次否定的DNS解析之后,一段时间内无法再到DNS服务器上查询,只有等TTL时间过后,新的请求才有可能被别的负载均衡机器响应。可以通过调整注册表肯定和否定响应时间的大小来处理上面的问题。这里以Windows XP项中注册表为例。

调整“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters项中的MaxCacheEntryTtlLimitNegativeCacheTime,均设置为1,即1s,或者禁用0,这样上面问题就得到解决了。注册表相关操作前面章节已经详细描述过,不再赘述。


更多信息请关注大开科技公众号或官方网站

www.dakaikeji.com.cn

技术分享



以上是关于大开测试:性能- 如何解决负载均衡将压力作用到一台机器(连载15)的主要内容,如果未能解决你的问题,请参考以下文章

高并发解决方案--负载均衡

高并发解决方案之一 ——负载均衡

Nginx之二:负载均衡及高可用

网易MySQL中间件的负载均衡策略及性能优化

负载均衡器——LVS

lvs负载均衡群集