【独家】如今,各种网站的用户和流量规模逐年成倍增长,前端的压力越来越大系统也相应翻倍。如何缓解这种压力?目前有两种方法。第一种方法是增加前端系统服务器的数量。前期通过不断增加服务器数量进行扩容,确实可以缓解这种压力。但是当服务器数量达到一定数量、达到一定规模后,成本就成了一个大问题,于是必须启动第二种方法——优化和性能优化。优化,大家都在说优化,现在各种系统都需要优化,什么时候开始优化?优化时应该注意什么?会不会影响系统稳定性?带着这一系列的问题,记者在2011年QCon大会上采访了淘宝资深系统分析师江江伟先生。:Java查询系统的性能优化瓶颈有什么迹象或特点,如何找到瓶颈?蒋江伟:其实找到瓶颈并没有想象中那么难。首先,你可以找到大块。使用一些工具可以快速帮助工程师找到瓶颈大的地方,例如:瓶颈是CPU或某些I/O引起的。其次,具体的细节,可能需要借助工程师的经验,当然也有一些工具可以帮你找到。淘宝有自己的一些小工具,可以用来分析每个Java类消耗的CPU时间。以后我们可能还会做一些内存分析。但是大部分还是靠工程师的经验,每个工程师都可以判断小瓶颈在哪里。大多数工具都是为新人准备的,可以帮助他们快速找到它们。:找到瓶颈并优化它。做优化,需要注意什么?蒋江伟:说说我们这边的经历吧。淘宝可以说是一个不会出错的网站。在外界看来,淘宝出了问题,影响了别人的正常交易和销售。恐怕很多人会说:不行。那么,淘宝该不该做优化呢?答案是肯定的,淘宝一定要优化。优化后出现问题怎么办?所以,我们做优化最需要注意的是:需要勇气。优化是必须做的,所以要有承担结果的勇气,有放手一搏的勇气。即使中间犯了错,我们也得认错。但是,谁都不想犯错,如何避免犯错呢?一方面,人员素质很重要。此外,还需要一些系统的工作。我们在推荐优化的时候,需要一点一点的优化。但是涉及到大规模的优化,比如框架的优化,除了要做好内测,还要做好回滚。一旦出现问题,立即回滚。其实,优化并不是什么深奥的东西。只要你有勇气去做,基本上不会有问题。:优化对稳定性有影响吗?蒋江伟:优化和稳定性关系不大。甚至可以说,优化对系统的稳定性是有好处的。单机的容量越高,其处理交易的能力就越好。当然,优化也会导致系统稳定性出现一些问题。出现问题怎么办?回滚。优化肯定是有风险的,但利远大于弊。所以要有勇气勇敢去做。:如何增强网站的持久稳定性?江江伟:去年有人说淘宝的稳定性要提高,但是应该怎么做呢?答:监控。除了监控?答:必须加强代码的容错能力和系统的容错能力。经过我们的研究,稳定性是有一定规律的。可以通过“稳定”这样的大系统来保证淘宝系统的稳定性。去年为了稳,我们做了三件事:第一,产能。我们已经估计了所有系统的容量。只有了解自身系统的容量,才能在高峰期做出最及时的响应。第二件事是依赖。每一个淘宝工程师都应该对自己负责的系统的依赖有一个大概的了解,做系统的依赖。第三件事是了解整个系统。一个监控运行时的系统,数据,包括操作系统、中间件、硬件和一些业务,必须是透明的。我们产品技术部的稳定性控制在140分钟不可用。全年因事故造成的不可用时间仅为24分钟。:你能对工程师说点什么吗?蒋江伟:我就说两个字:承诺。人只有勇于承担责任,才能有勇气、敢于承担自己的错误。勇于承担错误,才会勇于做事。不管做什么,只要是对的,就一定要去做,并且要勇敢的去做。一个人犯了错误,接受了错误,改正了错误,没有人可以责怪。#p#编者按蒋江伟先生在这次采访中反复强调了“承诺”二字。做优化要有勇气去做,要有承担错误和压力的勇气。只有这样做,你才能有勇气继续做下去,才能在优化上做到最好。请记住“承诺”二字。【编者推荐】海量数据存储新存储设备性能优化精益求精jQuery代码分析优化开发者,没事别优化!