AIOps 一场颠覆传统运维的盛筵
647
2022-09-13
从 4 个维度剖析:影响 Java 性能的那些因素(从姑获鸟开始)
我们可以在响应时间的总览视图中,清晰地看到4个维度「Web 事务,数据库,外部服务,后台任务」所对应的响应时间消耗情况,接下来,我们就可以针对每个维度对时间消耗情况进行深度分析。
1. Web 事务
我们可以从视图中看到缓慢 Web 事务的响应时间占比、平均响应时间、性能指数、吞吐量等等,同时,会按照耗时长短给 Web 事务做一个排序,以列表的形式展示出来,这样你就可以轻松地找出哪些 Web 事务在执行过程耗时比较长,并且可以看到所提供的 Top5 Web 事物响应时间折线图。
2. 数据库
从数据库的视图中,我们会把对数据库操作以 Table Name 和 SQL 操作类型的格式,按照响应时间耗时长短进行排序,将耗时较长的数据以列表形式展示出来,并且可以看到每次数据库操作时的平均响应时间、总响应时间以及吞吐量情况,这样就可以找出排除 Web 事务的维度外,还会有哪些耗时较长的 SQL,让你尽收眼底。 还给提供了 Top 5 数据库操作响应时间的视图,如下图所示:
通过这些图表数据,我们可以动态的看到每次数据库操作对应用性能消耗的整体情况。除此之外,我们还针对慢的数据库操作,提供了慢 SQL 的跟踪功能,如图:
3. 外部服务
通过这张图表,我们可以看到通过 WebService、Rest 等方式调用的第三方服务的平均响应时间、吞吐量,还可以看到在调用接口时所消耗的时间,并且每个外部服务调用也会提供数据视图,如下图所示:
响应时间和吞吐量图:展示该外部服务的响应时间和吞吐量变化情况
调用者时间占比图:展示调用该外部服务的事务执行时间
事务列表:展示调用该条外部服务的事务执行时间占比、响应时间和调用次数
从以上数据,我们可以得出结论,在性能消耗的角度上,耗时是主要发生在方法的调用方面,还是发生在接口那边。通过这些性能数据,我们就能够很快定位到导致应用性能问题的根本原因,再去解决问题话就会变得很轻松。
4. 后台任务
从后台任务的视图中,我们可以看到在应用程序中比较耗时的任务,包括每个任务的平均响应时间、性能指数、吞吐量、响应时间占比等等。然后,我们在后台任务这个维度中,就可以发现那些比较耗时的执行任务,并提供相应的 Top 5 后台任务响应时间,吞吐量,CPU 使用率等动态折线视图。
从上图中,我们可以找出非 HTTP 请求方法对于大量占用系统性能的瓶颈点,然后根据后台任务提供的 Top 5 响应视图,就能够直观的看到严重消耗性能的后台任务以及 CPU 的使用率和内存使用情况了。
通过后台任务性能消耗的剖析,我们还可以找出消耗资源比较严重的定时任务,对耗时的任务进行合理优化,那么应用就会变的更加流畅。
综合来讲,
通过对「Web 事务,数据库,外部服务,后台任务」 4 个维度的深度剖析,我们很容易找到影响 Java 系统缓慢的原因。在发现这些原因后,我们再去进行系统优化,整个处理问题的过程就会变的简单很多。
发表评论
暂时没有评论,来抢沙发吧~