一个典型的J2EE系统由DB、应用、应用(WEB)服务器、JVM组成。
调优可分别针对这几个部分调优,下面介绍一下各个部分调优的一些经验。
1. DB调优:DB调优主要关注下面几个方面:1)选择合适索引;2)避免复杂查询;3)尽量将复杂运算挪到应用中,以降低DB复杂,因为让应用可伸缩的代价远比让DB可伸缩的代价低;4)避免关联查询;调优的过程中,可借助Oracle的sql将比较耗时的SQL查询出来,再针对性的优化。
2. 应用调优:应用调优主要分成两个方面:1)用Jprofiler或optimizeit等工具找出执行比较耗时的代码,并针对性的优化;2)应用运行时,通过打JVM的堆栈来分析应用的线程是否因资源竞争导致block,然后导致CPU无法充分利用,从而应用性能上不去,找出性能瓶颈后可针对性的做优化。
3. 应用服务器调优:主要调节数据库连接池大小,连接数大小(tomcat就有连接数大小)等
4. JVM调优:主要针对应用的特点,调整JVM参数,使应用运行更稳定。
判断性能调优是否到位的方法是看数据库服务器和应用服务器的CPU占用率,首先要确认不是内存的问题,确认服务器没有产生页面交换;然后就看应用侧和DB侧的CPU是否能够达到90%以上了,一般来讲,要求应用侧的CPU使用率达到90%以上。