中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 应用服务器
评测Tomcat5负载平衡与集群
作者:未知 时间:2005-07-24 21:25 出处:JR 责编:chinaitpower
              摘要:评测Tomcat5负载平衡与集群

硬件系统:

    CPU:AthlonXP 2500+

    内存:HY 1GB DDR333 SDRAM

    硬盘:Matrox 金钻 40GB (7200rpm、 2MB缓存)

    主板:华擎K7VM4

软件系统:

    操作系统:Microsoft Windows XP with Service Pack 2

    负载平衡器:Apache Httpd Server2.0.52+ mod_jk2.0.4

    集群节点:Tomcat 5.5.4 × 4

    测试应用:struts-blank.war中的/Welcome.do

    测试客户端:ApacheBench

测试结果:

次数每秒处理请求数次数每秒处理请求数
平衡负载集群
并发1请求,执行请求总数为40000
1263.61172.26
2263.96284.82
3263.32385.03
并发200请求,执行请求总数为40000
1529.55194.89***
2534.42293.11
3529.76391.22
并发500请求,执行请求总数为100000*
1522.44186.33**/***
2511.26286.87**/***
3521.48386.51**/***

注解:

*:在并发五百连接的测试中,负载平衡器会抛出“指定网络名称不可用”的错误,具体在这里:

    [Mon Nov 17 01:43:39 2003] [warn] (OS 64)The specified network name is no longer available. : winnt_accept: Asynchronous AcceptEx failed.

    出现这样的问题,我的解决方法是:禁止使用AcceptEx,方法为在httpd.conf文件中增加Win32DisableAcceptEx标记,例如:

        <IfModule mpm_winnt.c>

        …

        Win32DisableAcceptEx

        …

    </IfModule>

    虽然这样会使负载平衡器的性能降低一些,但是总之还是通过了严格的并发五百连接的测试。

**:数据是在提供集群服务的本机上进行测试得到的。

***:测试前重启集群节点和负载平衡器。

结论

1.平衡负载

    本测试使用mod_jk默认的以轮循方式进行平衡负载,以这次测试举例:假设有10个请求,则四个节点分别接受请求编号如下:

Node 1Node 2Node 3Node 4
1234
5678
910  

    以下的集群方式也是使用这种方法进行平衡。

    由测试结果可以看出,负载平衡是为拥有高并发量的网站准备的。同样是40000个请求,使用并发二百个连接比单连接执行效率高出近两倍。而并发五百个请求的重型测试性能并不比并发连接数少的测试低多少。

    因此,平衡负载对于流量大且对高可用性(主要是会话服务)需求不是很苛刻的网站来说还是一个比较实用的方案。

2.集群

    Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制。

    这里提示一下就是,对每个请求的处理,Tomcat都会进行会话复制,复制后的会话将会慢慢变得庞大,例如该项并发五百连接的集群测试,测试后复制的会话大小达到了70MB,而使用的总内存更是达到了1GB以上,因此如果进行下一项测试,就必须对系统进行重新启动来初始化内存以得到正确的数据,这就是测试数据内有“***”符号的原因。

    相对于单纯的负载平衡,由于集群服务需要在处理请求之间不断地进行会话复制,因此它的资源占用率是非常高的,这也降低了连接请求的处理速度,但增加了系统的高可用性。

    因此,对于硬件性能高(尤其是内存要大)且对用户高可用性需求苛刻(不需重复保存会话中的数据,例如用户连接任何一台节点服务器不需要重新输入密码)的站点,选择集群方式可以满足需求。

后续情况, 可以到偶的Blog中查看: http://blog.yipsilon.com

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有