<b>Java运行时监控,第3部份: 监控操纵程序生态系统的性能与可用性(</b>[Java编程]
本文“<b>Java运行时监控,第3部份: 监控操纵程序生态系统的性能与可用性(</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在本系列(共三篇文章)的 第 1 部份 和 第 2 部份 中,我介绍了监控 Java 利用程序的本领和情势,在这两部份中我把重点放在了 JVM 和利用程序类上.在这最后一期中,我将介绍从利用程序的依靠项(诸如底层操作系统、网络大概利用程序的后端数据库)汇集性能与可用性数据的本领.在文章末尾我将阐述管理汇集数据的情势以及报告和可视化数据的办法.
基于 Spring 的汇集器
在 第 2 部份 中,我实现了一个用于管理监控服务的基本的基于 Spring 的组件模子.该模子的基本原理及好处有:
利用基于 XML 的配置,使得管理大量用于配置更复杂性能数据汇集器的参数集变得越发简单.
采取关注点别离 的构造,这样便可以利用更简单的组件,这些组件之间的彼此交互可以通过注入 Spring 的依靠项来实现.
Spring 给简单的汇集 bean 供应了一个生命周期,该周期由初始化、启动 和终止 操作构成,还供应了将 Java 管理扩大(Java Management Extension,JMX)管理接口公开给 bean 的选项,这样便可以在运行时举行掌握、监控和弊端解除.
下面我将在本文的每个小节中介绍有关基于 Spring 的汇集器的更多细节.
监控主机和操作系统
Java 利用程序老是运行于底层硬件和支持 JVM 的操作系统之上.一个全面的监控底子设备中最关键的构成就是从硬件和 OS — 普通是通过 OS 汇集 — 那边汇集性能、安康情况和可用性指标的本领.本节就涵盖了一些通过在 第 1 部份 中介绍的 ITracer 类获得这类数据并一向跟踪到利用程序性能管理系统(application performance management,APM)的本领.
典型的 OS 性能指标
下面这份择要列出了典型指标,这些指标跨域操作系统的多个部份相关.固然数据汇集的细节迥异,并且数据的注释也必须在给定的 OS 上下文中举行,但是这些指标在大大都尺度主机上基本都是等效的:
CPU 利用:表示特定主机上的 CPU 的占用情形.单位普通为百分比的利用率,在较低的级别将 CPU 繁忙时间表示为消逝的时钟时间的某个特按期间的百分比.主机可以有多个 CPU,而 CPU 又可以包含多个内核,但多个内核普通都被 OS 抽象出来代表一个 CPU.比方,一个带有两个双核 CPU 的主机会被说成有四个 CPU.指标普通可以按照每个 CPU 汇集大概作为总资源操纵率汇集,后者表示全部处理器的总体利用情形.毕竟是要辨别监控每一个 CPU 还是监控总体 CPU,普通要取决于软件的本质及其内部架构.尺度的多线程 Java 利用程序普通默许均衡全部 CPU 上的负载,所以监控总体较符合.但在某些情形下,个体 OS 进程是 “特定于” 特定 CPU 的,这时总体指标大概无法捕捉到得当级别的粒度.
CPU 的利用普通被拆分成四个范围:
系统:履行系统的大概 OS 内核级的活动耗费的处理器时间
用户:履行用户活动耗费的处理器时间
I/O 等候:处于闲暇状况等候完成某个 I/O 恳求耗费的处理器时间
闲暇:暗指没有举行任何处理器活动
别的两个相关指标为运行行列长度(即等候 CPU 时间的恳求的待处理事项)和上下文转换(行将处理器时间分配从一个进程转换到另一个进程的实例).
内存:最简单的内存指标为可用或利用中的物理内存的百分比.其他需求考虑的有虚拟内存、内存分配率和重新分配率以及表明内存有哪些区域被利用的更细粒度的指标.
磁盘与 I/O:磁盘指标为每一个逻辑或物理磁盘设备的可用或利用中的磁盘空间的简单(但是至关重要的)报告,还有这些设备的读取和写入速率.
网络:指网络接口上的数据传输速率和错误发生率,它普通被分为高级的网络协议范围,如 TCP 和 IP.
进程与进程组:可以说前面所述的指标都是特定主机的总活动.它们也可以划分为相同的指标,但是代表个体进程或相关进程组的损耗或活动.监控进程对资源的利用情形有助于注释主机上的每一个利用程序大概服务损耗的资源比例.有些利用程序只可以实例化一个进程;在其他情形下,一个诸如 Apache 2 Web Server 这样的服务可以实例化代表一个逻辑服务的一群进程.
以上是“<b>Java运行时监控,第3部份: 监控操纵程序生态系统的性能与可用性(</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |