Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(1) - 编程入门网
机的总活动。它们也可以划分为相同的指标,但是代表个别进程或相关进程组的消耗或活动。监控进程对资源的使用情况有助于解释主机上的每一个应用程序或者服务消耗的资源比例。有些应用程序只可以实例化一个进程;在其他情况下,一个诸如 Apache 2 Web Server 这样的服务可以实例化代表一个逻辑服务的一群进程。
Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(1)(2)时间:2011-02-13 IBM Nicholas Whitehead代理与无代理 不同的 OS 有着不同的性能数据获取机制。我将呈现的收集数据的方式很多,但是在监控领域您可能经常要区别的是基于代理的 和无代理的 监控。也就是说在某些情况下,无需在目标主机上安装其他特定的软件也可以收集数据。但显然监控通常都会涉及到某种代理,因为监控总是需要一个接口,数据要通过它来读取。所以这里真正区别的是是使用通常出现在给定 OS 中的代理 — 诸如 Linux® 服务器上的 SSH — 还是安装其他专用于监控和使收集的数据对外部收集器可用的软件。两种方法都涉及到如下的权衡标准: 代理需要安装其他的软件并可能需要应用定期的维护补丁。在带有大量主机的环境中,管理软件工作不利于使用代理。 如果代理实际上是与应用程序相同的进程的一部分的话,哪怕它是一个单独的进程,代理进程的故障也将会蒙蔽监控。虽然主机本身仍在运行且健康状况良好,但是 APM 一定会因为无法到达代理而假定主机已停机。 安装在主机上的代理可能要比无代理远程监控器的数据收集能力和事件监听能力强得多。而且,报告总体指标可能需要收集好几个原始底层指标,远程收集这些指标的效率会很低。而本地的代理则能够快速地收集数据,再合计数据,然后将合计的数据提供给远程监控器。 归根结底,最佳的解决方案可能就是既实现无代理的监控又实现基于代理的监控:本地代理负责收集大多数指标,而远程监控器负责检查诸如服务器的运行情况和本地代理的状态这样的基本内容。 代理也可以有不同的选项。自治 代理按照自己的计划收集数据,反之,响应 代理按请求递送数据。此外,有些代理只将数据提供给请求程序,而有些则直接或间接地跟踪数据一直到 APM 系统。 接下来我将呈现监控带有 Linux 和 UNIX® OS 的主机的技巧。 监控 Linux 和 UNIX 主机 监控代理可以用来实现专门的本机库以从 Linux 和 UNIX OS 收集性能数据。但是 Linux 和大多数 UNIX 变体都有很多内置数据收集工具,这些工具使得数据可以通过称为 /proc 的虚拟文件系统进行访问。该文件看起来像是普通文件系统目录里面的普通文本文件,但其实它们是常驻内存型数据结构,是通过文本文件抽取的。由于这种数据可以很容易地通过大量标准命令行的实用工具或自定义的工具来读取和解析,所以这些文件较易于使用,而且它们的输出既可以是通用的也可以是专用的。而且它们的性能也非常好,因为本质上它们是直接来源于内存的数据。 常见的用于从 /proc 中抽取性能数据的工具是 ps、sar、iostat 和 vmstat(参见 参考资料 查阅有关这些工具的参考文献)。因此,一个有效地监控 Linux 和 UNIX 主机的方法就是执行 shell 命令并解析响应。类似的监控器可以用于很多种 Linux 和 UNIX 实现;虽然它们之间都有着些许差异,但是,使用一种可以完全重用收集过程的方式格式化数据是很简单的。相反,专用的本机库可能要根据每一个 Linux 和 UNIX 发行版而进行重编码或重构(但它们正在读取的 /proc 数据有可能相同)。而编写专用于监控某一特定情况或可以标准化返回数据的格式这样的自定义 shell 命令很容易,并且开销较低。 现在我将展示几种调用 shell 命令和跟踪返回数据的方法。 Shell 命令的执行 要在一个 Linux 主机上执行数据收 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |