定位性能瓶颈方法

碰到过的性能问题:

  1. 在高并发的情况下,产生的处理失败(比如:数据库连接池过低,服务器连接数超过上限,数据库锁控制考虑不足等)

  2. 内存泄露(比如:在长时间运行下,内存没有正常释放,发生宕机等)

  3. CPU使用偏离(比如:高并发导致CPU使用率过高)

  4. 日志打印过多,服务器无硬盘空间

  如何定位这些性能问题:

  1. 查看系统日志,日志是定位问题的不二法宝,如果日志记录的全面,很容易通过日志发现问题。

  比如,系统宕机时,系统日志打印了某方法执行时抛出out of memory的错误,我们就可以顺藤摸瓜,很快定位到导致内存溢出的问题在哪里。

  2. 利用性能监控工具,比如:JAVA开发B/S结构的项目,可以通过JDK自带的Jconsole,或者JProfiler,来监控服务器性能,Jconsole可以远程监控服务器的CPU,内存,线程等状态,并绘制变化曲线图。

  利用Spotlight可以监控数据库使用情况。

  我们需要关注的性能点有:CPU负载,内存使用率,网络I/O等

  3. 工具和日志只是手段,除此之外,还需要设计合理的性能测试场景

  具体场景有:性能测试,负载测试,压力测试,稳定性测试,浪涌测试等

  好的测试场景,能更加快速的发现瓶颈,定位瓶颈

  4. 了解系统参数配置,可以进行后期的性能调优

        最后要说的是:做性能测试的时候,我们一定要确保瓶颈不要发生在我们自己的测试脚本和测试工具上

猜你喜欢

转载自blog.csdn.net/zhailihua/article/details/79571355