1.4.1 上线优化或从未达到过性能期望的系统优化

如果业务系统未进行充分的性能测试就上线,那么有相当一部分会出现性能问题,不会出现性能问题的系统往往建立在有强大硬件的基础之上。这类缺乏性能设计考虑的业务系统部分或全部具有以下特点。

❑ 开发人员(业务系统)假设资源是无限的,可以任意使用,忘记了任何系统都是在一个资源受限的系统中运行业务。

❑ 开发人员(业务系统)认为只有我一个人在做事,忘记了同时会有很多人在使用,缺乏并发性方面的考虑。

❑ 开发人员(业务系统)认为程序在任何时候的处理效率都是一样的,不应该出现大的波动,不应该出现异常。

❑ 各种任务调度频率远远超过业务实际需要。

❑ SQL语句消耗了无限的资源。

❑ 无法充分利用资源,缺乏并行处理或异步处理的能力。

❑ 缺乏有效的索引设计,业务系统并发能力低下。

❑ 具有很长的同步处理链条,性能表现极其脆弱。

❑ 运行在默认的完全不匹配物理资源的数据库上。

上线优化的场景有些比较简单,有些会很复杂。也许你的运气足够好,仅仅是简单的数据库配置问题或操作系统配置问题,这在DBA力量比较弱的开发商中存在。更多时候,你遇到的会是索引优化问题或SQL优化问题,当然,只要你愿意付出精力,总能完成这类任务。如果你运气不好,遇到除此之外的复杂性能优化问题,就需要你拥有更多的知识和经验,以及更好的协调和沟通能力了。