JVM系列-001-JVM监控工具
JVM系列-001-JVM监控工具
在我们安装的jdk里面的bin目录下有一个jconsole.exe程序。这就是一个JVM的监控工具。我们可以直接打开它,如果配置了环境变量,也可以在命令中直接输入jconsole命令来打开它
-
在控制台输入jconsole,当我们打开jconsole之后,界面如下:
-
本地进程中列出了本地所有运行的java进程(使用jps命令可以查看到当前所有的java进程)。如下图
注:jps进程只是在当时出现,敲击完成之后就结束了。
在jconsole中选择了进程,点击连接就能进入监控。
- 下图为连接后的jvm监视和管理控制台页面,此页面可以体现出堆栈使用情况。以及可以直接调用GC方法进行垃圾回收。
Jconsole界面由以下六个选项卡组成:
- Summary选项卡:显示JVM和被监视值的汇总信息
- Memory选项卡:显示内存使用信息。
- Threads选项卡:显示线程使用信息。
- Classes选项卡:显示类(class)加载信息。
- MBeans选项卡:显示MBeans信息
- VM选项卡:显示JVM信息。
下面我们写一段测试代码来看一下对应内存消耗曲线图
import java.util.ArrayList; import java.util.List; /** * @ClassName:TestJConsole * @Description: 测试JConsole * @Author: bilaisheng * @Date 2018/10/23 6:12 */ public class TestJConsole { private byte[] bytes = new byte[1024*5]; public static void main(String[] args) { // 给使用jconsole连接的程序留下5秒时间 try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("开始测试 :"); fill(1000); } /** * =========================================================== * @Description:不断的在List中添加对象,使得堆内存消耗量增加 * @param: count * @return: void * @Author: bilaisheng * @date: 2018/10/23 6:15 * =========================================================== */ private static void fill(int count) { List jConsoleList = new ArrayList(); for (int i = 0; i <count ; i++) { // 减慢程序运行速度,否则速度过快容易抛出java.lang.OutOfMemoryError: Java heap space try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } jConsoleList.add(new TestJConsole()); } } }
监控结果如下图
- 大家可以看到jconsole.exe本身只有17K,其实实现功能是在jdk的lib目录下中的tools实现的此功能
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SQL数据库学习之路(四)
要求:通过SQL语句创建以下基本表: 教师关系 T(T#, TNAME,TITLE) 课程关系 C(C#,CNAME,T#) 学生关系 S(S#,SNAME,AGE,SEX) 选课关系SC(S#,C#,SCORE) 班级关系CLASS(CLASSID,CLASSNAME) 其中红色粗体为主键,带下划线的属性为外键。 通过SQL语句在CLASS表的CLASSID列上创建聚集索引IDX_CLASSID 通过SQL语句创建在S#和C#两个列上创建索引IDX_S#_C#,并指定索引按S#降序,C#升序有序。 通过SQL语句实现以下操作: 撤销索引IDX_CLASSID及IDX_S#_C# 在学生关系中增加班级号属性列CLASSID 撤销学生关系中的班级号属性列CLASSID 撤销班级关系CLASS 方法: 1.打开SQL Server Mangement Studio, 连接到本地数据库。在对象资源管理 器中,点击数据库,然后选择新建查询。输入创建数据库的代码,点击执行,在消息窗口出现命令已成功完成。在存放的文件夹中产生mdf主数据文件和ldf日志文件。在对象资源管理...
- 下一篇
Django Request简介
在当代的web应用中,清晰优雅的URL非常重要,在Django框架中,你可以随心所欲的设计你的URL,不用担心框架的限制。 概览 为了给一个app设计URL,你创建一个Python模块叫做URLConf,这个模块是纯Python代码并且用于于映射URL路径和Python的功能或视图。 这个映射关系可以写的比较短,它也可以引用其它的映射,并且由于它是纯代码,所有它可以动态的构建。 Django如何处理请求 当用户请求一个由Django构建的网站,下面是Django的处理方式来决定执行那一部分的Python代码 Django找到root(根)URLconf模块,根模块一般与项目同名的目录下,当然这个可以在ROOT_URLCONF配置中设置,但是如果请求的HttpRequest对象由urlconf属性(通过中间件设置),它的值将会用于替换 ROOT_URLCONF的设置。 Django加载python的模块,然后朝找urlpattern变量,这个应该是一系列的django.urls.path()或者django.urls.re_path()的实例 Django遍历URL样式,在第一个匹配请求...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6