电商网站的宕机案例分析

标签: 电商 网站 宕机 | 发表时间:2012-11-09 10:50 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

性能调优社区dynatrace在其 博客中分享了客户案例,电商网站在假日客流峰值期间数次崩溃,经过SQL优化和调整负载均衡算法解决了相关问题,值得读者借鉴。

按照博文的描述,该电子商务网站在圣诞节期间崩溃了七次,每次宕机的时间都超过5个小时。这种情况让企业损失了大量的收入和名誉。

我们的一个客户就曾经遭遇到这种情况,我们在此分享下他们的经历。宕机的原因有很多,不过我们这里只强调比较突出的一点,即负载均衡器在采用Round-Robin(轮询)算法时比Least-Busy (最休闲)算法更容易导致应用服务器因堆内存耗尽而崩溃。

在分析性能问题之前,先看一看该网站的拓扑结构。该电子商务网站部署在6个Tomcat应用服务器上,前面是3个Apache Web服务器。

面临的问题是,在负载高峰时刻,每个Tomcat实例处理的响应时间开始增长,等待队列中的请求数目增多。一段时间之后,这些Tomcat实例由于 OutOfMemory异常而崩溃,随后其他实例也因为承受不住由此增加的负载而宕机。

即使在采用平均分布负载的算法(Round Robin)下,有些Tomcat应用服务器也会出现响应时间的跳跃。一旦服务器开始拒绝客户连接,我们会发现一些连锁反应。数据库层出现大量的异常,同时应用层之间会抛出异常,Web服务器会返回给浏览器HTTP 500的错误。

比如,在实际的分析过程中,我们发现某一个Tomcat实例在30分钟内对43000个页面返回了HTTP 500错误。

原因分析:来自数据库层(JDBC)的异常是分析该问题的关键入口。仔细查看这些异常会发现连接池已经耗尽了,从而导致应用的各个部分出现问题。由于连接池的原因,每一个请求都需要平均等待3.8秒来从池里获取连接。

不光是连接池大小的设置问题,而且不少低效的数据库语句在执行应用的一些业务逻辑事务时花费了太长时间。这导致应用服务器维护这个连接的时间也较长。如果把负载均衡器设为Round Robin算法,应用服务器会继续获得其他的请求。最终,由于客户请求的随机性,某个应用服务器收到了不少执行低效数据库处理的请求。一旦连接池耗尽,应用服务器就开始抛出异常,并最终导致JVM崩溃。一旦第一个应用服务器出现问题,用不了多久其他服务器也挂掉了。

解决办法:优化应用程序和负载均衡器

首先要分析执行最慢的数据库语句,并做性能优化,比如增加索引等。同时也优化了连接池大小来满足高峰时刻的需求。然后,企业把负载均衡器的算法从Round-Robin改为了Least-Busy,在生产环境中这个配置经常被人遗忘。自从对应用程序和负载均衡器做了修改之后,网站再也没有崩溃。

该企业之前做过负载测试,但是存在两个问题:

  1. 没有使用预期的峰值负载长时间测试。
  2. 没有完全模拟用户行为,测试脚本太少、太简单,缺少了用户的高交互性访问场景。

由此等到的经验教训:在生产环境的低访问量时段(凌晨2点到6点)执行负载测试,这样可以虽然有小的交易风险,但是可以避免大的经济损失。高峰时间长为10小时,不要测试太短时间。

关于负载均衡的基本算法,主要有以下几种( 参考F5产品):

  • 随机:负载均衡方法随机的把负载分配到各个可用的服务器上,通过随机数生成算法选取一个服务器,然后把连接发送给它。虽然许多均衡产品都支持该算法,但是它的有效性一直受到质疑,除非把服务器的可运行时间看的很重。
  • 轮询:轮询算法按顺序把每个新的连接请求分配给下一个服务器,最终把所有请求平分给所有的服务器。轮询算法在大多数情况下都工作的不错,但是如果负载均衡的设备在处理速度、连接速度和内存等方面不是完全均等,那么效果会更好。
  • 加权轮询:该算法中,每个机器接受的连接数量是按权重比例分配的。这是对普通轮询算法的改进,比如你可以设定:第三台机器的处理能力是第一台机器的两倍,那么负载均衡器会把两倍的连接数量分配给第3台机器。
  • 动态轮询:类似于加权轮询,但是,权重值基于对各个服务器的持续监控,并且不断更新。这是一个动态负载均衡算法,基于服务器的实时性能分析分配连接,比如每个节点的当前连接数或者节点的最快响应时间等。
  • 最快算法:最快算法基于所有服务器中的最快响应时间分配连接。该算法在服务器跨不同网络的环境中特别有用。
  • 最少连接:系统把新连接分配给当前连接数目最少的服务器。该算法在各个服务器运算能力基本相似的环境中非常有效。
  • 观察算法:该算法同时利用最小连接算法和最快算法来实施负载均衡。服务器根据当前的连接数和响应时间得到一个分数,分数较高代表性能较好,会得到更多的连接。
  • 预判算法:该算法使用观察算法来计算分数,但是预判算法会分析分数的变化趋势来判断某台服务器的性能正在改善还是降低。具有改善趋势的服务器会得到更多的连接。该算法适用于大多数环境。

有关电商网站在假期峰值解决方案的经验分享,InfoQ中文站以前曾专门采访过淘宝的几位专家:

国内一年一度的光棍节电商促销又要开始了,开发和运维人员将面临巨大的挑战。有关技术分享,InfoQ中文站将持续关注。

崔康 热情的技术探索者,资深软件工程师,InfoQ编辑,从事企业级Web应用的相关工作,关注性能优化、Web技术、浏览器等领域。

您可能也会喜欢

相关 [电商 网站 宕机] 推荐:

电商网站的宕机案例分析

- - InfoQ cn
性能调优社区dynatrace在其 博客中分享了客户案例,电商网站在假日客流峰值期间数次崩溃,经过SQL优化和调整负载均衡算法解决了相关问题,值得读者借鉴. 按照博文的描述,该电子商务网站在圣诞节期间崩溃了七次,每次宕机的时间都超过5个小时. 这种情况让企业损失了大量的收入和名誉. 我们的一个客户就曾经遭遇到这种情况,我们在此分享下他们的经历.

电商网站的购买按钮

- Fay - 所有文章 - UCD大社区
一般上电子商务网站买东西的用户分三种:. 这样的需求反应到产品页的购买按钮上,我们一般会看到购买和收藏两个按钮,而购买又可以分为立即购买和加入购物车两种. 对于第一种用户来说,你按钮做的再大再合理也不关他的事,因为他压根就不想买. 对于第二种用户来说,购物车按钮或是收藏按钮对他来说是优先选择的按钮,因为他过一段时间才买.

主流电商网站视觉分析

- - 优设(UISDC)
最近在收集国外电商网站的视觉设计,看到很多极具前瞻性的网页设计,框架结构、内容排版、色彩搭配、图片运用上达到了非常和谐的统一. 下面总结出的几点,供大家参考和探讨:. 非常大胆的留白,给内容足够的呼吸空间. 各个页面的图文间距都控制得非常好,页面整体感觉更通透,衬托出信息内容. 这种留白,给用户思考和想象的空间,在引 导用户视觉和创造流畅的视觉感受方面却是至关重要的.

电商网站社交关系探索

- - 腾讯ISUX - 社交用户体验设计 - Better Experience Through Design
越来越多的电商网站努力在社交关系上寻求突破点,淘宝天猫一直在优化类似千人千面的用户体验,国外一些比较有趣的网站比如Svpply则是在feed推送上不断深入. 那么,在电商中融入社交关系有神马意义. 如何去巧妙的发动“群众的力量”,从商家对用户,发展到用户与用户之间的商品推送关系. 我们自从接触爱逛这个项目以来,思考了蛮多,咱就借着这篇博文来看看通过爱逛而收集到的数据,聊聊以后爱逛可能有些什么变化.

电商网站商品评价模块设计

- Fay - 所有文章 - UCD大社区
对于消费者而言,要买一样商品,或多或少都会受到他人的影响,各种各样的信息聚合在消费者的脑中,它们共同影响了一单交易的发生. 这其中很重要的一类信息就是别人的商品评价. 商品评价是很常见的电商网站的功能模块. 让我们来看看商品评价都有什么样的信息结构. 商品评价大致分两类,一类是商品评分,现在一般是五颗星的打分标准,另一类是商品评论,主要由消费者的评论组成.

解析电商网站优化过程的常见问题

- - CSDN博客互联网推荐文章
电子商务平台的发展跟随着互联网的脚步日益增强着,网络营销代替着各大企业的传统营销方式,在网络营销手段中搜索引擎优化成为电商网站的核心,电商网站是否具备营销的基础,要网站在seo优化方法是否完善,笔者给大家分享几个电商网站优化过程中常见的几个问题,希望能帮大家更好的去运营.   电商网站不同于其他营销型网站,产品页面并是网站的核心内容,产品页面能更好的被收录,可能给网站带来的流量是越多的.

电商网站如何正确进行屏幕适配设计

- - IT经理网
随着智能手机和平板电脑取代PC成为人们的主流上网设备,屏幕适配设计,或者说屏幕响应式设计(responsive design)已经成为新闻和电商网站的热门趋势之一,IDC公布的移动开发者调查显示: 开发者在选择移动平台时,首次将平板电脑放到与智能手机同等重要的地位. 屏幕适配设计的本质是移动web网站,相比原生移动应用具有跨平台、跨终端、无需安装应用、快速部署等优点.

垂直门户网站和电商的SEO思路

- - i黑马
一些大型网站内部SEO团队做的方案有上百页,根本无法执行. 为什么会出现这种情况呢?因为大型网站的关键词、栏目和内容太多,而SEO的优化点又比较琐碎,所以整出来的方案就繁琐的无法下手. 那怎么更高效的做SEO呢,i黑马看到这篇文章,希望能对纠结SEO的人有所用处. 王通接手大型网站的SEO咨询之后,并不直接上来就是整SEO的细节,而是站到网站策划与运营的角度来理清整体的思路,然后用一套系统化的SEO策略,把方案变成几页纸,也就是把复杂的SEO事情变的简单化,很快就可以快速的执行,网站团队执行力越狠,效果就越好!.

全球B2C电商网站创新模式研究

- - 互联网分析
过去的一年,国外的电商网站好过得多,尤其是在模式上有所创新的企业:. 大体上,不管是国内电商企业,还是国外电商公司,都有值得借鉴之处. 为此,我们总结了目前国外B2C电商网站创新模式及相关案例,以飨读者. (以团购为代表的每日特价模式在国内面临较大挑战,故不作为本报告研究对象). 简介:类似于报纸杂志的订阅,此类网站采用会员制度,用户在预先支付一定的费用后,可按月获得精美礼盒,里面装的是网站工作人员为用户精挑细选的商品.

浅谈电商网站客服的利与弊

- - 人人都是产品经理
现在的 电子商务,甭管是淘宝、京东还是其他神马店啊、站啊,几乎都少不了一个模块. 基本上现在很多人也形成了一个认知,就是想做 电子商务就必须要有 客服,那今天就说说 客服的那点事. 先声明,不是说客服的趣事也不是说客服怎么着啦之类的,而是就单纯的讨论一下客服这种东西(是说这种行为而非客服从业人员)在 电子商务领域中存在的利与弊.