根据监控指标,只要有一项指标不超了,就不满足性能,根据这个指标,分析数据流向,看下到底什么原因导致这个指标超了,是本身原因还是其它原因,分析客户端、网络、硬件、中间件、数据库、应用程序等,逐步展开分析。
通过客户端(负载工具端)、服务器端的日志,可以迅速确定瓶颈可能存在的方向。一些在大用户量大并发情况下的功能问题,也会在错误日志中体现。
在性能测试过程中,一般情况是不把全部日志打开的,而是尽量保持与生产环境的设置相同,生产环境开启什么样的日志级别,在性能测试环境中也应该开启同样的级别。
但是往往在生产环境出于性能考虑,并不会把日志级别开的非常高,所以在发现系统存在性能问题时,我们可以适当调高日志级别,以便获得更多的信息。
在日志中,我们可以由一些关键字直接推断出系统的问题所在,比如:
· Too many open files
Linux下存在句柄数限制,系统的默认值较小,在测试前应该优化,另外还要怀疑是否程序存在打开句柄却在某些情况下没有关闭。
· OutOfMemoryError/Cannot allocate memory
Java环境的虚拟内存异常,往往需要关注是否有溢出。
· SQLException
数据库语句执行异常,一般日志中还会有数据库返回的信息。
· Connection closed/connection refused
连接被关闭被拒绝,一般是连接数限制不能承担当前的压力。
硬件资源也是系统性能达到瓶颈点的重要指征,如果没有在日志中找到异常,那么通过监控硬件资源消耗,往往可以发现系统的资源瓶颈。
以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了
各位想获取资料的朋友请点赞 + 评论 + 收藏,三连!
三连之后我会在评论区挨个私信发给你们~