Java性能调优思路

      性能调优

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

被动的性能调优步骤:
    (1)计算机及网络,操作系统,  

          Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。
         1) cpu的监控: Unix/Linux  用 top , vmstat , mpstat 命令查看cpu情况,Windows 任务管理器产看,sar(系统活动报告)
         2) 进程资源的监控: top, prstat
         3)  内存的监控:vmstat ,free
         4)  磁盘的I/O的监控: iostat
         5)  网络的I/O的监控: netstat, netstat -ps tcp

              netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}';

              "可以用工具iptraf工具查看网络流量: $ iptraf -g

               "针对某个Interface的网络流量可以通过比较两个时间网络接口的RX(Rx Packets是接收数据包)和TX(Tx Packets是发送数据包)数据来获得
                $ date; ifconfig eth1
                $ date; ifconfig eth1
         6)  系统锁的监控: plockstat
         解决方法,增加硬件,修改操作系统参数
    (2)Java虚拟机层次的监控 jps
         1) jstat -gcutil 571 1000          

                jstat -gcutil  21308 250 10


         2)  线程互锁的监控: socket, heap, dump, kill -3 <pid>, ps -ef|grep java
         3)  内存泄漏的监控: jmap  , jhat  ,

               jmap -heap 953,jmap -histo 1123

  • 请尝试用后面提到 的-XX:+ShowMessageBoxOnError让Java进程在退 出前先暂停,然后手动从外部执行需要的命令
  • 16. 事前准备• 若要让JVM在检测到crash后不立即退出, 而是提示打开调试器 – 可使用 -XX:+ShowMessageBoxOnError – 主要用于crash时的现场调试 – 通常不需要启用 – 遇到很诡异的bug时可以靠该参数获取更直接 的现场信息
         解决方法: 修改参数
    (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        (Head Dump)
                            kill -3 pid (Java Core/Thread Dump)
  3 大缓存问题
  4 外部命令问题 mpstat
  5 文件操作问题

猜你喜欢

转载自blog.csdn.net/ajian005/article/details/6422362