您的位置:首页 > 大数据 > 人工智能

某项目中“Session failed”问题的分析解决---Alteon交换机负载均衡策略引发的会话失败问题

2008-04-12 16:11 435 查看
某项目中“Session failed”问题的分析解决1、错误现象用户运行Appeon Web应用时,在登录后的某个时刻,IE突然弹出一条错误信息:Your session failed. Please open the IE and run the application again.Session是用户运行Appeon Web应用开始后,客户端与服务器端建立的一个会话连接。如果用户在一段时间内,没有做服务器相关的操作,AppeonServer会清除用户的session,用户需要重新打开IE运行Web应用。在Appeon Enterprise Management控制台中可以设置“会话超时时间”。以秒为单位,默认为3600秒,即一个小时。设为0表示永远不超时。根据客户项目的实际情况,用户希望在早上上班登录后,一直保持连接状态到下班时间。这就需要将“会话超时时间”设为8到10个小时。但是,系统管理人员在将超时时间设置为8小时,或者更长的时间,并未达到预期的效果。Session常常在用户正在操作的时候,突然出现上述超时提示。而且没有什么规律,有时几分钟就出现,有时半天也没什么事。这种错误的出现给用户正常工作带来很多困扰。2、错误定位由于客户项目中的Web应用是采用了Alteon交换机负载均衡(Server Load Balancing,SLB)的技术。所有用户通过域名访问Web应用,IP地址被解析到交换机的对外的一个IP和端口。交换机根据某种策略将用户的Http请求分发给后台服务器(Real Server Group)中的一台。考虑到单独访问一台Appeon Server的情况下,很少出现Appeon Session Failed的错误。初步估计,Session failed的错误与交换机有关。为了验证这个初步的想法,对项目中使用的交换机和服务器做了如下调整(见图1):l    将Server3从Server group中分离出来,不接受交换机分发的用户请求。l    部分用户和开发人员通过交换机提供的一个虚拟IP地址直接访问Server3。

[align=center]图 1 将一台服务器从交换机分离出来单独访问[/align]运行一天后,分析三台服务器上的Appeon Server日志信息。结果发现,通过L4交换机分发请求到64和65两台服务器时,必然会出现此session failed错误信息。而单独访问66机器的则没有此错误信息。虽然仅仅测试了有限的一段时间,但是试验结果进一步证实了前面的想法,即session failed错误在很大程度上与交换机有关。或者说,L4交换机有关分发的某些设置或策略可能对Appeon Session产生了影响3、问题分析既然确定了与交换机的设置或分发策略有关,那么就需要根据交换机的型号查阅和研究相关的设置。通过与网络管理人员的交流,我们得知该项目中使用的交换机是Nortel公司生产的Alteon708交换机。通过浏览Nortel公司网站,查阅和下载相关PPT资料和Alteon 708手册。

[align=center]图 2 Alteon交换机负载均衡原则(Nortel)[/align]从图2可以看出,服务器负载均衡原则通常有五种,这五种原则各有特点,分别适合于不同的场合和不同的应用。Minimum misses原则对于Server Load Balancing由于同时基于源IP和Real Server IP确定分发给哪个Real Server,对会话一致性的影响最小。在与项目网管人员的进一步交流中得知,当前采用的是Hash原则。那会不会就是因为Hash原则设置,导致Appeon Session failed呢?我们进一步下载和查看了Alteon交换机Web OS的相关文档——Web OS 7.2 Configure Guide on Alteon 708 (050156a.pdf, download from www.nortel.com)图3和图4分别是Web OS配置文档中关于Minimum misses和hash原则的说明。[align=center] [/align]

[align=center]图 3 minmisses ---- Metrics for Real Server groups(Chapter 7)[/align]

[align=center]图 4 Hash ---- Metrics for Real Server groups(Chapter 7)[/align]4、问题解决[align=left]经过前面的分析和研究后,我们将Alteon交换机的“Server Load Balancing Metric”设置进行了调整,由原来的“[b]Hash”调整为“Minmisses。[/b][/align][align=left]2005年12月14日下午16:30分左右,我们调整Alteon交换机的设置。此后一直抓取和分析所有服务器的日志文件。尽管调整设置后,依然出现超时错误,但是从12月15日凌晨3点起,日志文件中“Session Failed的异常”全部消失。[/align][align=center]
时间段[/align] [align=left]Server1(64[/align] [align=left]Server2(65)[/align] [align=left]Server3(66)[/align]
[align=left]12月14日[/align] [align=left]12:00:00~23:59:59[/align] [align=left]有超时错误[/align] [align=left]有超时错误[/align] [align=left]有超时错误[/align]
[align=left]12月15日[/align] [align=left]00:00:00~23:59:59[/align] [align=left]无[/align] [align=left]02:55:45之前有错误,之后消失[/align] [align=left]无[/align]
[align=left]12月16日[/align] [align=left]00:00:00~19:40:00[/align] [align=left]无[/align] [align=left]无[/align] [align=left]无[/align]
[align=left]连续观察了将近48小时内所有服务器的日志,没有发现“session failed”异常。电话询问用户,反映说使用过程中再没有出现超时错误。我们可以认为,此问题已基本解决。[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐