您的位置:首页 > 编程语言 > Java开发

Java性能调优思路

2011-10-05 14:04 148 查看
1  被动的性能调优【自下而上】: 计算机及网络(cpu,内存,文件,I/O,网络,), 操作系统(线程,内存,I/O,网络),
应用服务器和数据库(cpu,内存,文件,I/O,网络,),应用程序
在设计,开发,测试阶段进行。
2  主动的性能调优【自上而下】:应用程序,应用服务器和数据库(cpu,内存,文件,I/O,网络,),
操作系统(线程,内存,I/O,网络),计算机及网络(cpu,内存,文件,I/O,网络,)
在测试结束,时间紧迫不能修改代码时,实施,上线,升级时。

被动的性能调优步骤:
(1)计算机及网络,操作系统
1) cpu的监控: Unix/Linux  用 top , vmstat , mpstat 命令查看cpu情况,Windows 任务管理器产看
2) 进程资源的监控: top, prstat
3)  内存的监控:vmstat
4)  磁盘的I/O的监控: iostat
5)  网络的I/O的监控: netstat, netstat -ps tcp
6)  系统锁的监控: plockstat
解决方法,增加硬件,修改操作系统参数
(2)Java虚拟机层次的监控 jps
1) jstat -gcutil 5711000
2)  线程互锁的监控: socket, heap, dump, kill -3 <pid>, ps -ef|grep java
3)  内存泄漏的监控: jmap  , jhat  , jmap -histo 1123
解决方法: 修改参数
(3)应用服务器,数据库层次的监控
1)EJB Container
2)Web Container
3)HTTP Server
4)JDBC Connection Pool
5)JMS Connection Pool
6)ORM Connection Pool
7)高速缓存命中率问题
解决方法:调整参数
(4)应用代码的跟踪
JVMTI
NetBeans Profiler
profiler.netbeans.org
解决方法:代码分析工具,找到瓶颈,修改代码。

被动性能调优的案例分析:
1 内存泄漏问题 : jstat
2 DB连接池: jmap
kill -3 pid, dump
3 大缓存问题
4 外部命令问题 mpstat
5 文件操作问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: