Web2.0负载均衡应用优化
本文分七个方面为大家介绍了Web2.0的负载均衡应用优化问题。
四、增加Cache系统的整体利用率
Cache系统的利用率过低的原因是每个Squid服务器缓存了同样的内容,追源宿底,是由于传统的Cache应用模式(Squid+四层负载均衡)的工作原理造成的。最好的解决办法就是利用Array APV Web Accelerator的Hash Header技术,把用户对不同内容的请求分配到不同的Squid服务器上,最终使得每个Squid服务器缓存不同的内容。
Hash Header技术是Array独有的七层负载均衡算法,他基于七层的HTTP Proxy,分析每个请求中的HTTP Header,并对Header中的特定字段值执行Hash算法,根据算法结果把用户请求分配到特定的服务器上。
最常用到的是Hash URL的方法,根据HTTP Header中的URL,进行Hash计算,并做智能分配,可以到达以下效果:
1, 根据不同的URL,用户请求被分配到不同的服务器上;
2, 对同样的URL的用户请求,都会由同一台服务器进行响应。
回忆前面谈到的例子,同样还是2TB的图片存储,配置10个200GB的Squid服务器做Cache,在传统的Cache应用模式(Squid+四层负载均衡)下,整个Cache系统的缓存量最终趋向于只有200GB;但是如果采用Hash Header-URL的方法,通过把用户对不同内容的请求分配到不同的Squid服务器上,最终使得每个Squid服务器缓存不同的内容,最终整个Cache系统的缓存量将趋向于2TB;而且每个后续的用户访问请求都被智能的分配到已经有相应内容缓存的Squid服务器上,不会产生回到后台服务器的请求。如下图:Hash

Header-URL帮助ICP有效解决了以下两个问题:
1, 充分利用在Squid服务器上的投资,成倍的提高了Cache系统的利用率——上面的例子中,Cache系统的利用率被提高了10倍;
2, 由于回后台服务器的请求大大减少,因此不需要在服务器上做更多的投资。
五、降低Web2.0应用的性能压力
随着(不论是Squid还是Web)服务器上的TCP连接的增加——这是Web2.0应用的一个重要特征,也是Web2.0应用的性能压力的主要原因——最后服务器会用完全部的资源。这并不一定意味着服务器没有足够可用的内存或带宽,而是表明这个服务器的TCP/IP处理能力不能接受如此高的连接建立/拆除速率。引入TCP连接复用的技术,可以有效降低服务器消耗在处理TCP连接方面的资源。
TCP连接复用的目的是把大量的HTTP/TCP短连接转变为可以承载更多吞吐量的较少的HTTP/TCP长连接。这允许客户可以在不需要改变任何配置或内容的前提下,利用服务器的优化的批量吞吐处理能力。
TCP连接复用是通过利用HTTP/1.1中允许在同一个TCP连接中发出多个HTTP请求这一特性而设计的。因此Array APV Web Accelerator把许多用户端发来的单独的HTTP请求/TCP连接,捆绑到相对较少的连接服务器的TCP长连接中,而不是采用一对一的方式把每一个HTTP请求/TCP连接从用户端传递到后台服务器,这样Array APV Web Accelerator在处理多个用户端请求时,与服务器的TCP连接始终保持打开状态,从而消除了服务器消耗大量资源处理TCP连接的现象。

TCP连接复用技术的一个重要价值,是它将服务器频繁建立和拆除TCP连接的负担转移到了更加优化的TCP连接处理设备上——Array APV Web Accelerator。Array独特的SpeedStack技术和优化的TCP/IP协议栈,可以保证高性能的TCP连接处理。这样在没有对后台服务器进行任何改变或升级的情况下,相同的服务器硬件配置,却可以获得更好的业务性能。另一个可以降低Squid服务器性能压力的技术是Array APV Web Accelerator特有的基于内存的Cache技术。不同于传统的Cache技术,Array的Cache是完全基于内存的,用户经常请求的内容以Frame的方式存储在2GB的内存Cache中,可以快速响应用户的请求。如下图:

由于用户请求被Array的内存Cache直接响应,因此不再需要先后台Squid服务器发送请求,也进一步降低了Squid服务器的性能压力。
以下是一组说明组合使用TCP连接复用和内存Cache技术后,对降低Web应用性能压力的效果:
Stress parameters:99 threadsReal server statusRequests per Second
Client->Server
No APVCPU:33%135.86
Client->APV->Server
APV(Cache + connect reused)CPU:3% (Imporved 30%)151.76 (Imporved 12%)
很重要的一点,由于Web2.0应用的特点,Array APV Web Accelerator的内存Cache并不能取代Squid Cache系统,但是一起使用他们,会给ICP带来最佳的投资回报率(ROI)。
六、为用户提供持续稳定的高质量访问体验
Hash Header-URL对Blog应用具有非常大的应用价值。当某个用户的Blog在被访问时,访问请求中的URL通常会包含该用户的UserID,比如:http://blog.sina.com.cn/array,这里array就是一个UserID,因此基于Header-URL的Hash算法,可以使得每个用户的Blog内容都被固定的缓存在确定的Squid服务器上。
然而要彻底解决Blog应用的特殊需求――可以持续性的保持对某个用户内容的更新、访问请求与某个Squid服务器之间的对应关系——我们需要在Hash Header-URL基础上更进一步。这里的关键是如何解决内容更新的保持性,以及系统维护后的保持性恢复的问题。
内容更新涉及到HTTP Post和Purge的方法(通常我们访问Web应用时用到的是Get的方法)。Array APV Web Accelerator的Hash Header-URL算法不仅支持一般性的Get方法,而且也支持Post和Purge方法,因此如果Blog网站的IT管理员希望Preload或者清除某个用户在Squid中的内容缓存,Array APV Web Accelerator可以将这类操作请求定向到与这个用户的UserID对应的Squid服务器上,当下一个对该用户的Blog内容的访问请求到达时,这台Squid服务器就可以准确的把更新的内容响应给请求者。
Squid服务器下线维护是每个ICP必须要做的工作。下线维护必然带来保持性的暂时中断,这时Blog网站可以利用Array APV Web Accelerator的其他算法,把对下线服务器上缓存的用户内容的访问,暂时定向到一个友好的提示页面上,或者一个作为备份的Squid服务器上进行响应。但是当维护工作结束后,怎样能恢复原有的,对某个用户内容的更新、访问请求与某个Squid服务器之间的对应关系呢?
Array APV Web Accelerator提供了一种增强型的Hash Header-URL算法——Consistent Hash Header算法,他通过在系统启动时就预先确定某个用户内容与一台Squid服务器之间的保持性对应关系,使得即使短暂的对应关系中断,但是一旦这台Squid服务器恢复服务,仍然可以立刻恢复原有的某个用户内容与这台Squid服务器之间的保持性对应关系。
Consistent Hash Header算法的另外一个重要价值在于,为了提供高可靠性保障,Array APV Web Accelerator往往配置成两台以上的主备集群工作模式,如果集群中的主用设备出现故障,服务被切换到备用设备上时,某个用户内容与一台Squid服务器之间的保持性对应关系也不会发生中断。
总而言之,Array APV Web Accelerator的Hash Header-URL/Consistent Hash Header算法可以帮助Blog网站在充分利用Squid服务器资源的基础上,为用户提供持续稳定的访问体验。
Array APV Web Accelerator还提供增值的功能——Web内容压缩,提高用户访问Web系统的服务质量。Web内容压缩技术采用所有浏览器都支持的压缩算法,动态的根据浏览器的特性调整压缩策略,实时对多种Web内容进行压缩,包括:
·Text (text/plain)
·HTML (text/HTML)
·XML (text/XML)
·DOC (application/MSWord)
·Java Scripts (application/x-javascript)
·Cascade Style Sheets (text/css, application/x-pointplus)
·PDF documents (application/pdf)
·PPT documents (application/powerpoint)
·XLS documents (application/MSExcel)

经过压缩后的数据在Internet上传输时速度更快,特别是在低带宽,或者带宽质量不稳定的网络环境中(在中国,这样的网络环境还比较多,特别考虑到电信和网通的互联互通问题),因此用户访问的体验得到很大提升。
七、提高Web2.0 Cache系统的ROI
面对Web2.0的挑战,ICP企业综合利用Array APV Web Accelerator负载均衡的各项特有的技术,可以为Web2.0应用带来巨大价值:
1.充分利用在Squid服务器上的投资,成倍的提高了Cache系统的利用率;
2.由于回后台服务器的请求大大减少,因此不需要在服务器上做更多的投资;
3.在没有对Squid服务器进行任何改变或升级的情况下,相同的服务器硬件配置,却可以获得更好的业务性能;
4.可以帮助Blog网站在充分利用Squid服务器资源的基础上,为用户提供持续稳定的高质量访问体验。
现在ICP企业可以修正他们的投资曲线,用有限的投资带来更多的回报,即更高的ROI!


