Windows性能计数器端口,用于Linux,HP-UX和AIX
我们实现了仅在Windows上可用的服务器应用程序。现在,我们也希望将其移植到Linux,HP-UX和AIX。此应用程序通过性能计数器向Windows性能监视器提供内部统计信息。
更准确地说:该应用程序是一个数据库,我们希望向管理员提供诸如已连接用户数或者已执行请求数之类的信息。因此,这些是我们应用程序专有的"新"信息。但是我们希望使它们在操作系统提供诸如CPU等信息的相同环境中可用。目标是使它们易于管理员读取。
在Linux,HP-UX和AIX下合适且常用的性能监视器是什么?
解决方案
我会说:这取决于我们要监视的性能。已用的CPU时间?可用内存?磁盘IO?冰柜中啤酒的数量...
但是无论如何,我们都可以查看/ proc下的任何文件。我不确定HP,但是至少Linux和AIX应该具有该树(如果在内核编译时未将其禁用)。
管理是大多数操作系统彼此分离的地方。因此,在所有操作系统之间没有很多通用的工具。
此外,Unix工具遵循单进程单职责习惯用法,其中一个工具获取cpu信息,另一个工具获取内存等。
我在Unix世界中看到的唯一将所有这些信息集中到一处的工具就是top。几乎所有系统管理员都熟悉此工具,并且可以在我们感兴趣的所有OS上使用。它还具有开源的其他优点。我们可以简单地扩展此工具以显示我们感兴趣的计数器,并将其与应用程序一起提供。
执行此操作的另一种方法可能是通过SNMP公开计数器,然后将其留给某些第三方SNMP工具(例如HP开放视图),该工具可以收集并提供一致的视图以及其他管理信息。这可能是一种更实用的解决方案,可能会吸引营销人员。
我还要说,编写一个独立的控制台工具是一个好主意,管理员可以从其自定义的自家编写的脚本中使用(那里有很多超级人为管理员/为此而付了高薪的员工)。
我认为,所有这些共同为需求提供一个健康的解决方案。
用于此类数据的最标准的Unix工具是* stat(iostat,vmstat,netstat)工具和sar。在Linux上,我们可以在/ proc中找到所有这些信息,但是大多数Unix并没有很好地将/ proc填满我们要查找的内容。提到的工具已经非常标准化,可以用来收集所需的数据。