Java性能调优思路

      性能调优

 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 文件操作问题

posted @ 2011-05-15 13:39  ajian005  阅读(176)  评论(0)    收藏  举报