为什么要做性能调优?
在互联网项目开发中,总是不断针对新的需求去研发新的系统,而很多系统的设计都是可以触类旁通的,在系统架构设计中,我们必须遵循一些原则:
海恩法则:
-
事故的发生是量的积累的结果 (并发量,数据量,服务量…….)
-
再好的技术、再完美的规章, 在实际操作层面也无法取代人自身的素质和责任心 。
墨菲定律:
-
任何事情都没有表面看起来那么简单 。
-
所有事情的发展都会比你预计的时间长 。
-
会出错的事总会出错。
-
如果你担心某种情况发生,那么它更有可能发生。
这些原则警示我们,在互联网公司里,对生产环境发生的任何怪异现象和问题 都不要轻易忽视,对于其背后的原因一定要彻查。
同样,海恩法则也强调任何严重事故的背后 都是多次小问题的积累,积累到一定的量级后会导致质变,严重的问题就会浮出水面 。
那么,我们需要对线上服务产生的任何征兆,哪怕是一个小问题,也要刨根问底。
这就需要我们有技术攻关的能力,对任何现象都要秉着以下原则:为什么发生?发生了怎么应对?怎么恢复?怎么避免?对问题要彻查,不能因为问题的现象不明显而忽略 。
一款线上产品如果没有经过性能测试,那它就好比是一颗定时炸弹,你不知道它什么时候会出现问题,你也不清楚它能承受的极限在哪儿。
性能测试的目的在于验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,以优化软件。
有些性能问题是时间累积慢慢产生的,到了一定时间自然就爆炸了;而更多的性能问题是由访问量的波动导致的,例如,活动或者公司产品用户量上升。
所以,要不要做性能调优,这个问题其实很好回答。所有的系统在开发完之后,多多少少都会有性能问题,我们首先要做的就是想办法把问题暴露出来,例如进行压力测试、模拟可能的操作场景等等,再通过性能调优去解决这些问题。
好的系统性能调优不仅仅可以提高系统的性能,还能为公司节省资源,实现降本增效。这也是我们做性能调优的最直接的目的。
什么时候开始介入调优?
解决了为什么要做性能优化的问题,那么新的问题就来了:如果需要对系统做一次全面的性能监测和优化,我们从什么时候开始介入性能调优呢?是不是越早介入越好?
其实,在项目开发的初期,我们没有必要过于在意性能优化,这样反而会让我们疲于性能优化,不仅不会给系统性能带来提升,还会影响到开发进度,甚至获得相反的效果,给系统带来新的问题。
<