Java应用系统监控方法简介
1. tsar
阿里巴巴开源的实时系统监控工具。其内部的sunfire有部分指标就是基于该工具每分钟采集一次来获取的。
github
监控项及数据来源一览
| 监控项 | 来源 | 细分项 |
|---|---|---|
| CPU | /proc/stat | user: 表示CPU执行用户进程的时间,通常期望用户空间CPU越高越好. |
| sys: 表示CPU在内核运行时间,系统CPU占用率高,表明系统某部分存在瓶颈.通常值越低越好. | ||
| wait: CPU在等待I/O操作完成所花费的时间.系统部应该花费大量时间来等待I/O操作,否则就说明I/O存在瓶颈. | ||
| hirq: 系统处理硬中断所花费的时间百分比 | ||
| sirq: 系统处理软中断所花费的时间百分比 | ||
| util: CPU总使用的时间百分比 | ||
| nice: 系统调整进程优先级所花费的时间百分比 | ||
| steal: 被强制等待(involuntary wait)虚拟CPU的时间,此时hypervisor在为另一个虚拟处理器服务 | ||
| ncpu: CPU的总个数 | ||
| mem | /proc/meminfo | free: 空闲的物理内存的大小 |
| used: 已经使用的内存大小 | ||
| buff: buff使用的内存大小,buffer is something that has yet to be "written" to disk. | ||
| cach: 操作系统会把经常访问的东西放在cache中加快执行速度,A cache is something that has been "read" from the disk and stored for later use | ||
| total: 系统总的内存大小 | ||
| util: 内存使用率 | ||
| load | /proc/loadavg | load1: 一分钟的系统平均负载 |
| load5: 五分钟的系统平均负载 | ||
| load15:十五分钟的系统平均负载 | ||
| runq: 在采样时刻,运行队列的任务的数目,与/proc/stat的procs_running表示相同意思 | ||
| plit: 在采样时刻,系统中活跃的任务的个数(不包括运行已经结束的任务) | ||
| traffic | /proc/net/dev | bytin: 入口流量byte/s |
| bytout: 出口流量byte/s | ||
| pktin: 入口pkt/s | ||
| pktout: 出口pkt/s | ||
| tcp | /proc/net/snmp | active:主动打开的tcp连接数目 |
| pasive:被动打开的tcp连接数目 | ||
| iseg: 收到的tcp报文数目 | ||
| outseg:发出的tcp报文数目 | ||
| EstRes:Number of resets that have occurred at ESTABLISHED | ||
| AtmpFa:Number of failed connection attempts | ||
| CurrEs:当前状态为ESTABLISHED的tcp连接数 | ||
| retran:系统的重传率 | ||
| udp | /proc/net/snmp | idgm: 收到的udp报文数目 |
| odgm: 发送的udp报文数目 | ||
| noport:udp协议层接收到目的地址或目的端口不存在的数据包 | ||
| idmerr:udp层接收到的无效数据包的个数 | ||
| io | /proc/diskstats | 指标较多,略 |
| partition | /etc/mtab + statfs | bfree: 分区空闲的字节 |
| bused: 分区使用中的字节 | ||
| btotl: 分区总的大小 | ||
| util: 分区使用率 | ||
| ifree: 可用文件结点数 | ||
| itotl: 文件结点总数 | ||
| iutil: 文件结点使用率 | ||
| pcsw | cswch: 进程切换次数 | |
| proc: 新建的进程数 | ||
| tcpx | /proc/net/netstat /proc/net/snmp | 多个指标,略 |
| percpu ncpu | 同cpu模块 | |
| pernic | 同traffic模块 | |
| 应用proc | /proc/pid/stat:获取进程的cpu信息 /proc/pid/status:获取进程的mem信息 /proc/pid/io:获取进程的读写IO信息 | user: 某个进程用户态cpu消耗 |
| sys: 某个进程系统态cpu消耗 | ||
| total:某个进程总的cpu消耗 | ||
| mem: 某个进程的内存消耗百分比 | ||
| RSS: 某个进程的虚拟内存消耗,这是驻留在物理内存的一部分.它没有交换到硬盘.它包括代码,数据和栈 | ||
| read: 进程io读字节 | ||
| write:进程的io写字节 | ||
| nginx | nginx采集模块 |
2. JAVA应用监控 —— metric
注册监听点及监控周期,进行被监控指标的输出。
引用及使用方式:系统监控-Metric
3. 企业级集群监控 —— open-falcon
Java应用系统监控方法简介的更多相关文章
- 浅析IT系统监控方法和应用
浅析IT系统监控方法和应用 http://blog.csdn.net/zhangman117/article/details/35549363
- java枚举类Enum方法简介(valueof,value,ordinal)
Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口. 当我们在声明一个enum类型时,我们应该注意到en ...
- java sigar 系统监控
<dependency> <groupId>org</groupId> <artifactId>sigar</artifactId> < ...
- Metaspace 之二--Java 8的元空间(metaspace)、metaspace监控方法
很多开发者都在其系统中见过“java.lang.OutOfMemoryError: PermGen space”这一问题.这往往是由类加载器相关的内存泄漏以及新类加载器的创建导致的,通常出现于代码热部 ...
- Java系统监控(淘汰sigar)
Sigar是Hyperic-hq产品的基础包,是Hyperic HQ主要的数据收集组件.它用来从许多平台收集系统和处理信息. 这些平台包括:Linux, Windows, Solaris, AIX, ...
- Java如何实现系统监控、系统信息收集(转
Java如何实现系统监控.系统信息收集.sigar开源API的学习 系统监控(1) Jar资源下载:http://download.csdn.net/detail/yixiaoping/4903853 ...
- 获取当前应用的系统路径工具类和java的System.getProperty()方法介绍
java的System.getProperty()方法可以获取的值,如下: 对于Java程序,无论是未打包的还是打包的JAR或WAR文件,有时候都需要获取它运行所在目录信息,如何做到这一点呢? /** ...
- Linux系统监控命令及如何定位到Java线程
>>PID.TID的区分 uid是user id,即用户id,root用户的uid是0,0为最高权限,gid是group id,用户组id,使用 id 命令可以很简单的通过用户名查看UID ...
- [论文笔记] 一种Java遗留系统服务化切分和封装方法 (计算机学报, 2009)
李翔,怀进鹏,曾晋,高鹏. 一种Java遗留系统服务化切分和封装方法. 计算机学报, 32(9), 2009, p1084-1815 (gs:5) 1. 本文研究从Java遗留系统中切分并封装出Web ...
- Linux系统监控命令及定位Java线程
1.PID.TID的区分 uid是user id,即用户id,root用户的uid是0,0为最高权限,gid是group id,用户组id,使用 id 命令可以很简单的通过用户名查看UID.GID:~ ...
随机推荐
- Django 对实体的增删改查样例
class UserInfo(models.Model): """ 人员信息 """ user_id = models.CharField( ...
- Web3初步实践总结
大家好~Web3是2021年才开始的浪潮,我非常赞同Web3的去中心化的理念,并且最近从Web2全面转向Web3了. 现在与大家分享我的实践的经验,希望对大家有所帮助,谢谢! 目录 为什么要转向Web ...
- 如何一键私有化部署 Laf ?
太长不看:Laf 上架了 Sealos 的模板市场,通过 Laf 应用模板即可一键部署! Laf 是一个完全开源的项目,除了使用公有云之外,还有大量的用户选择私有化部署 Laf.然而,私有化部署通常伴 ...
- Redis 也支持全文搜索 了?这也太强了
在 2021 年我就了解到 RediSearch 这个项目,并已经把它用于我的开源项目 newbee-mall-pro 中. 就我的使用体验来说,简单场景下,用来平替 Elasticsearch 的使 ...
- python常见面试题讲解(十一)字符串反转-五种解法
题目描述 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串.(字符串长度不超过1000) 输入描述: 输入N个字符 输出描述: 输出该字符串反转后的字符串 示例1 输入 abcd 输出 d ...
- docker 原理之 namespace (上)
1. namespace 资源隔离 namespace 是内核实现的一种资源隔离技术,docker 使用 namespace 实现了资源隔离. Liunx 内核提供 6 种 namespace 隔离的 ...
- 如何使用ps抠图(两种扣图方法)
PS抠图的方法有很多种,以下是其中两种常用的方法: 方法一:适用于背景颜色单一.较为简单的图片. 选中魔棒工具/魔术橡皮擦,点击背景,出现选区,点击Delete键删除. 点击快速选择工具,沿着所需图形 ...
- 基于python+django的电影搜索网站-搜索引擎系统设计与实现
该项目是基于python的web类库django开发的一套web网站,给师弟做的课程设计. 本人的研究方向是一项关于搜索的研究项目.在该项目中,笔者开发了一个简单版的搜索网站,实现了对数据库数据的检索 ...
- 3. Oracle数据库异常关闭,导致错误3. Oracle数据库异常关闭,导致错误ERROR: ORA-01034: ORACLE ngt available; ORA-27101: shared memory realm does not exist
之前由于电脑没电,强制关机,导致Oracle数据库异常关闭,再次启动电脑登陆数据库时,发生以下错误: 当我尝试重新启动数据库时,发生错误: 经过查阅资料后得知:缺少INITXE.ORA文件,需要从下图 ...
- 【Linux】技术收集
Linux进程间通信(六)---信号量通信之semget().semctl().semop()及其基础实验 https://blog.csdn.net/mybelief321/article/deta ...