系统优化总结

定位性能瓶颈

  可以从以下几个方面衡量系统的性能:

  1. 应用层面
  2. 系统层面
  3. JVM层面

应用层面

  1. QPS
  2. 响应时间

系统层面

  a.系统层面指标有CPU、内存、磁盘、网络等

    有一个强大的工具,可以实时监控cpu、磁盘、网络、io、内存等使用情况。

    dstat -lcdngy

    yum install -y dstat

    或者top -c 命令

    b. 磁盘

    df -h

    看磁盘使用情况

    du -sh //看当前文件夹下所有文件大小

       c. 网络

       netstat -nt

      如果存在大量的SYN-SENT的连接,则需要看下防火墙的配置。

JVM层面

    1 获取线程堆栈的步骤

      a 找到pid编号

        ps -ef|grep java

      b. jstack <pid> > jstack.txt

   2 jstack分析cpu占用过高

     a 找到对应的java pid

       ps -ef|grep java

     b 找到java进程中最消耗CPU的线程

       top -H -p <pid>

     c 将找出的线程id 转为16进制

       printf "0x%x" xxxx

     d 根据16进制的id从stacklog中找到堆栈信息

 ps: jstack只是某一个时间的堆栈信息,因此一定要在出现问题的时候收集。

   3 jmap 分析内存泄漏

     在服务器内存溢出时拿到当时的堆栈信息,并且使用MemoryAnalyzer进行分析

  jmap -dump:format=b,file=fileName.hprof pid
 拿到生成的二进制dump文件,丢进MemoryAnalyzer工具去分析

       

     

      

猜你喜欢

转载自www.cnblogs.com/xsg0011/p/9622879.html