性能优化总纲(转)
性能优化总论
一谈到优化,就首先要有问题,这里谈到性能优化,那么就先有性能问题。性能优化涉及到的问题有以下几个:
(1)怎么衡量一个系统的性能指标,怎么评价一个系统到底有没有性能问题。
(2)怎么通过性能测试得出系统的性能指标,从性能测试结果得出的系统到底有没有性能问题?有哪几方面的性能问题。
(3)知道系统有哪些性能问题后,怎么找出具体影响系统性能的详细原因呢?
(4)怎么解决影响系统性能的因素呢?
性能指标
性能测试
性能监控
性能调优
1.硬件网络层面
1.1网络带宽(路由器是采用百兆还是千兆速率)
1.2是否采用磁盘阵列(特别是数据库很容易出现瓶颈)
1.3机器的网卡是采用百兆网卡还是千兆网卡
1.4应用服务器的发送和接收是否采用两个独立的网卡
2.操作系统层面
2.1操作系统最大Socket数设置
2.2操作系统Socket关闭等待时间设置
3.WEB容器层面
3.1是否采用本地的IO读
3.2是否采用容器提供的连接池
3.3容器的运行模式是否生产模式
4.数据库层面
4.1数据库连接最大数设置
4.2回滚段大小设置
4.3共享SGA大小设置
4.4数据切分(水平切分、垂直切分)
4.5使用索引
5.J2EE程序层面
5.1前台技术
5.1.1减少HTTP请求的次数
(1)合并Javascript/CSS以减少请求次数
(2)合并前台请求次数成一次操作
5.1.2减少网络数据的传输量
(1)将大JSP页面的JS挪到JS文件
(2)将JS文件进行压缩传输
(3)最小化JS文件的大小(去掉空格和替换变量名等)
5.2后台技术
5.2.1减少数据库访问次数
(1)使用数据缓存的存取方式
(2)使用批量处理的方式
5.2.2减少SQL语句的执行时间
(1)使用占位符的访问方式
5.2.3减少程序执行的时间
(1)使用异步调用代替同步调用