JAVA 程序监控基础简述
最近在项目中自感程序木有问题,也没有什么错误日志出来。但就是有人反映服务慢,有时连不上的情况。为了解决这么妖的问题只能去详细的看看运行中的程序到底出了什么情况,这时如果有个比较好的监控工具可以监控运行中的程序那就完美了。问了度娘才知道原来jdk已经给我们提供了非常多的监控工具,方便我们实时了解我们些程序哪出问题了。不得不说人家考虑的就是周全。下面就来介绍下几款自带的监控程序吧。
oracle jdk 自带非常多的小程序,可以进到%JAVA_HOME%\bin中查看
监控工具一:JvisualVm
1,在命令行中敲入JvsiualVm可以启动

打开后进入页面

打开后他会自动关联本机的已经运行的java程序,点击某个进入某个程序后可以了解选中程序的运行情况。
2,当我们在使用JvisualVm做程序监控的时候,我们更多的是希望去监控远程服务器中程序,以便我们能做更好的分析。如果想去监控远程程序,前提需要远程程序支持才能连接的上去。那么我们就来看下如何配置程序以支持远程监控。
进入到\jre\lib\management 目录下

依赖jmxremote.password.template 生成*.password 文件
这里我将他拷贝到/opt/service/jmx目录下,方便我统一管理
cp jmxremote.access /opt/service/jmx/jmx.access
cp jmxremote.password.template /opt/service/jmx/jmx.password
为避免访问权限问题,我们要确保他们有权限,可以使用命令:chmod 600 jmx.* 授权
打开jmx.password 文件添加用户名和密码,用户名和密码之间使用空格分开,多个账号可以使用换行分开
例如:

打开jmx.access 为添加的账号授权

这些基础配置好后,我们来看下程序需要做哪些设置。
2.1 再启动参数中需要添加参数,开启远程监控的端口
以下是我写的一个测试脚本:
#!/bin/bash
opts="-Xmx256M -Djava.rmi.server.hostname=11.11.1.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8998 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=/opt/service/jmx/jmx.password -Dcom.sun.management.jmxremote.access.file=/opt/service/jmx/jmx.access"
java $opts -jar /opt/service/whroid-java-1.0-SNAPSHOT.jar &
参数说明:
-Djava.rmi.server.hostname=11.11.1.1 //远程服务器的ip地址
-Dcom.sun.management.jmxremote.port=8998 //jmx开启的监控端口,必须保证没有被占用
-Dcom.sun.management.jmxremote.ssl=false //是否开启ssl验证
-Dcom.sun.management.jmxremote.authenticate=true //是否需要验证
-Dcom.sun.management.jmxremote.password.file=/opt/service/jmx/jmx.password //账号存放的文件
-Dcom.sun.management.jmxremote.access.file=/opt/service/jmx/jmx.access" //账号权限管理
启动上面的脚本启动服务后,远程机器和程序已经支持了远程监控,使用JvisualVm链接既可以对启动的程序进行监控
监控二:jconsole
服务器和程序按照上面的配置好后,也可以使用jconsole进行监控。
启动方式和JvisualVm一样,改成Jconsole 既可以打开jconsole。
同样使用上面的账号进行登录。

监控三:除上面两款可视化的监控工具外,jdk还提供了很多的命令小工具,可以通过相关命令了解程序的运行情况。
JAVA 程序监控基础简述的更多相关文章
- Java程序监控---Metrics
概念 Metrics是一个给JAVA服务的各项指标提供度量工具的包,在JAVA代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控 目前最为流行的 metrics 库是来自 Coda ...
- 利用jdk中工具完成Java程序监控方法记录
转载加自己整理的部分内容,转载自:http://jiajun.iteye.com/blog/810150 记录下JConsole使用方法 一.JConsole是什么 从Java 5开始 引入了 ...
- 使用eclipse编写和运行java程序(基础)
1.首先java程序的运行你需要下载和安装JDK,这是java运行的必备环境. 2.在桌面上找到eclipes,双击打开. 3.在eclipes启动的过程中,会弹出一个窗口,让你填写java工作区的保 ...
- Java程序监控指标
监控指标: 1.CPU平均使用率 2.内存平均使用率 3.应用程序错误数 4.应用程序请求量 5.应用平均响应时间 6.硬件I/O指标 7.JMX 7.1.Full gc count 7.2.Full ...
- java程序监控tomcat中部署的项目的状态以及控制某些项目的启动停止
原文:http://blog.csdn.net/liuyuqin1991/article/details/49280777 步骤如下: ①:首先授权用户使获得这些权限 You can find the ...
- JAVA程序员工作常用英语(细心整理)
基础----进阶 A. array数组accessible 可存取的 area面积audio 音频 addition 加法 action 行动 arithmetic 算法adjustment 调整 a ...
- 使用记事本开发第一个java程序
记事本是开发java程序最基础的一个工具 第一步:编写 新建一个文件名为Hello的文本文档,并将文件扩展名改为.java. 在文本框内输入我们的程序代码 ——————————————我是分割线——— ...
- Java程序设计基础笔记 • 【第1章 初识Java】
全部章节 >>>> 本章目录 1.1 程序的概念及Java语言介绍 1.1.1 生活中的程序 1.1.2 计算机程序 1.1.3 算法和流程图 1.1.4 实践练习 1.2 ...
- Java 监控基础 - 使用 JMX 监控和管理 Java 程序
点赞再看,动力无限.Hello world : ) 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码网站 已经收录,有很多知识点和系列文章. 此篇文 ...
随机推荐
- 在编辑Spring的配置文件时的自动提示
打 开MyEclipse—>Windows--->referenecs——>General,选择下面的Keys,这就是快捷键的设 置,可将Content Assist的快捷键改为 A ...
- Flutter /bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: No such file or directory
自己写项目中遇到的一个问题, 可以出来是路径找不到,应该是FLUTTER_ROOT这个全局变量没有取到值的原因 1.检查xcode_backend.sh 是否真的存在 2.网上说的:Target -& ...
- ScriptMaker
0x00 前言 pwn脚本千篇一律,之前也是保存了一份模板,每次都用它,但还是觉得每次都复制一次各种名字还是有的累,于是就写了一份脚本生成器 0x01 ScriptMaker #!/usr/bin/e ...
- RabbitMQ使用教程(五)如何保证队列里的消息99.99%被消费?
1. 前情回顾 RabbitMQ使用教程(一)RabbitMQ环境安装配置及Hello World示例 RabbitMQ使用教程(二)RabbitMQ用户管理,角色管理及权限设置 RabbitMQ使用 ...
- SQL Server中通用数据库角色权限的处理详解
SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除 ...
- BZOJ3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(dp)
题意 约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛.牛们要站成一排.但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡牛之间至少要有K( ...
- 生产环境LAMP搭建 - 基于 fastcgi
生产环境LAMP搭建 - 基于 fastcgi 由于在module模式,php只是已http的模块形式存在,无形中加重了http的服务负载,通常在企业架构中,使用fastcgi的模式,将所有的服务都设 ...
- javascript sprintf方法
转载自: http://demon.tw/programming/javascript-sprintf.html function str_repeat(i, m) { for (var o = [] ...
- 宏基笔记本升级bios(2012-12-28-bd 写的日志迁移
首先到宏基官网下载中心 去下载你需要的新版本的bios安装包如图: 我的是宏基4750g的win7旗舰版64位,这里一定要根据自己的电脑的型号和安装的系统来选择,你可以选择最新的版本也可以选择老的版本 ...
- [Python]有关pygame库中的flip和update的区别
pygame.display.flip()和pygame.display.update()的用法上的区别: 资料一. 资料二. (资料最后更新时间:2019年1月9日)