如何通过oshi实用工具高效获取Java应用运行的主机详细信息?
- 内容介绍
- 相关推荐
本文共计979个文字,预计阅读时间需要4分钟。
最近在规划一个监控系统。其中需要获取主机信息,遇到一些问题。在此做个记录,便于后续查阅。在监控系统里,想做到对主机的CPU、内存、磁盘、网络、线程、JVM内存等进行监控。
最近在筹划做一个监控系统。其中就要获取主机信息,其中遇到一些问题。在此做个记录,以便以后查阅。
在该监控系统中,想要做到主机的CPU、内存、磁盘、网络、线程、JVM内存、JVM GC 等维度的监控,JVM方面的监控还好说,直接用JMX做就行了,关键是主机信息不好做监控,JDK没有直接的方案获取系统主机信息。在刚开始想到了以下几种方式获取主机维度的信息。
一、命令行
刚开始想的是用最常用的命令行获取主机维度的信息,具体做法是针对不同的系统,写不同的命令。比如说Linux系统,使用TOP命令就能获取到CPU、内存等方面的信息。
top -b -n 1
执行该TOP命令就能获取到CPU、内存等维度的信息
Tasks: 515 total, 1 running, 511 sleeping, 3 stopped, 0 zombie Cpu(s): 14.5%us, 5.3%sy, 0.0%ni, 77.0%id, 0.8%wa, 0.0%hi, 2.4%si, 0.0%st Mem: 65779104k total, 62037048k used, 3742056k free, 425804k buffers Swap: 0k total, 0k used, 0k free, 21948492k cached
这种方式虽然好,但是需要针对不同系统做兼容。为了将懒字发挥到极致于是我就开始寻找现有的开源组件。然后找到了一个sigar的东西,貌似这个在业界内应用还挺广的。
本文共计979个文字,预计阅读时间需要4分钟。
最近在规划一个监控系统。其中需要获取主机信息,遇到一些问题。在此做个记录,便于后续查阅。在监控系统里,想做到对主机的CPU、内存、磁盘、网络、线程、JVM内存等进行监控。
最近在筹划做一个监控系统。其中就要获取主机信息,其中遇到一些问题。在此做个记录,以便以后查阅。
在该监控系统中,想要做到主机的CPU、内存、磁盘、网络、线程、JVM内存、JVM GC 等维度的监控,JVM方面的监控还好说,直接用JMX做就行了,关键是主机信息不好做监控,JDK没有直接的方案获取系统主机信息。在刚开始想到了以下几种方式获取主机维度的信息。
一、命令行
刚开始想的是用最常用的命令行获取主机维度的信息,具体做法是针对不同的系统,写不同的命令。比如说Linux系统,使用TOP命令就能获取到CPU、内存等方面的信息。
top -b -n 1
执行该TOP命令就能获取到CPU、内存等维度的信息
Tasks: 515 total, 1 running, 511 sleeping, 3 stopped, 0 zombie Cpu(s): 14.5%us, 5.3%sy, 0.0%ni, 77.0%id, 0.8%wa, 0.0%hi, 2.4%si, 0.0%st Mem: 65779104k total, 62037048k used, 3742056k free, 425804k buffers Swap: 0k total, 0k used, 0k free, 21948492k cached
这种方式虽然好,但是需要针对不同系统做兼容。为了将懒字发挥到极致于是我就开始寻找现有的开源组件。然后找到了一个sigar的东西,貌似这个在业界内应用还挺广的。

