如何通过日志分析性能

2022-02-24 10:59发布

根据监控指标,只要有一项指标不超了,就不满足性能,根据这个指标,分析数据流向,看下到底什么原因导致这个指标超了,是本身原因还是其它原因,分析客户端、网络、硬件、中间件、数据库、应用程序等,逐步展开分析。

通过客户端(负载工具端)、服务器端的日志,可以迅速确定瓶颈可能存在的方向。一些在大用户量大并发情况下的功能问题,也会在错误日志中体现。

  在性能测试过程中,一般情况是不把全部日志打开的,而是尽量保持与生产环境的设置相同,生产环境开启什么样的日志级别,在性能测试环境中也应该开启同样的级别。

  但是往往在生产环境出于性能考虑,并不会把日志级别开的非常高,所以在发现系统存在性能问题时,我们可以适当调高日志级别,以便获得更多的信息。

  在日志中,我们可以由一些关键字直接推断出系统的问题所在,比如:

  · Too many open files

  Linux下存在句柄数限制,系统的默认值较小,在测试前应该优化,另外还要怀疑是否程序存在打开句柄却在某些情况下没有关闭。

  · OutOfMemoryError/Cannot allocate memory

  Java环境的虚拟内存异常,往往需要关注是否有溢出。

  · SQLException

  数据库语句执行异常,一般日志中还会有数据库返回的信息。

  · Connection closed/connection refused

连接被关闭被拒绝,一般是连接数限制不能承担当前的压力。

  硬件资源也是系统性能达到瓶颈点的重要指征,如果没有在日志中找到异常,那么通过监控硬件资源消耗,往往可以发现系统的资源瓶颈。