查看运行中的Java其配置的堆大小
一、背景
有题目中的需求,也不是空穴来风;前一阵给公司搭建了一个持续集成服务器,Jenkins。最近发现,运行一段时间后,就变慢了。
随便一个操作,cpu就飙高了。然后就思考会不会是内存不够用,频繁GC导致的呢?
Jenkins是个war包,我直接放在tomcat运行的。所以,我需要查看下,当前运行的这个tomcat的堆大小。
二、步骤
- [root@pas jenkins-apache-tomcat-8.5.28]# jmap -heap 90170
- Attaching to process ID 90170, please wait...
- Debugger attached successfully.
- Server compiler detected.
- JVM version is 25.161-b12
- using thread-local object allocation.
- Parallel GC with 8 thread(s)
- Heap Configuration:
- MinHeapFreeRatio = 0
- MaxHeapFreeRatio = 100
- MaxHeapSize = 4160749568 (3968.0MB) -----------堆的最大容量
- NewSize = 86507520 (82.5MB)
- MaxNewSize = 1386741760 (1322.5MB)
- OldSize = 173539328 (165.5MB)
- NewRatio = 2
- SurvivorRatio = 8
- MetaspaceSize = 21807104 (20.796875MB)
- CompressedClassSpaceSize = 1073741824 (1024.0MB)
- MaxMetaspaceSize = 17592186044415 MB
- G1HeapRegionSize = 0 (0.0MB)
- Heap Usage:
- PS Young Generation
- Eden Space:
- capacity = 1306001408 (1245.5MB)
- used = 1123777200 (1071.7174530029297MB)
- free = 182224208 (173.7825469970703MB)
- 86.04716603797107% used
- From Space:
- capacity = 37748736 (36.0MB)
- used = 17255448 (16.456077575683594MB)
- free = 20493288 (19.543922424316406MB)
- 45.711326599121094% used
- To Space:
- capacity = 37224448 (35.5MB)
- used = 0 (0.0MB)
- free = 37224448 (35.5MB)
- 0.0% used
- PS Old Generation
- capacity = 212336640 (202.5MB)
- used = 90248224 (86.06741333007812MB)
- free = 122088416 (116.43258666992188MB)
- 42.50242633584105% used
- 44622 interned Strings occupying 4789016 bytes.
具体的字段意思,我查阅了oracle的官方资料,如下,但也没有看到具体解释,只能慢慢探索了:
https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr014.html#BABJIIIH
可以看到,上面的tomcat的最大堆容量还是很大的,当然,我们自己没有配置过,应该是JVM根据机器的物理内存大小,自动计算的。
查看运行中的Java其配置的堆大小的更多相关文章
- Docker查看运行中容器并进入容器
一.简述 Docker查看运行中容器并进入容器. 二.方法 $ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash 将黄色文字替换 ...
- 【Spring】28、Spring中基于Java的配置@Configuration和@Bean用法.代替xml配置文件
Spring中为了减少xml中配置,可以生命一个配置类(例如SpringConfig)来对bean进行配置. 一.首先,需要xml中进行少量的配置来启动Java配置: <?xml version ...
- IntelliJ IDEA远程调试运行中的JAVA程序/项目
一.IntelliJ IDEA配置 1.添加一个运行配置(remote项) 2.打开remote项配置对话框 3.远程jvm参数配置提示 4.远程调试的ip地址和端口号,ip就是java项目所在机器i ...
- Spring中基于Java的配置@Configuration和@Bean用法
spring中为了减少xml中配置,可以声明一个配置类(例如SpringConfig)来对bean进行配置. 一.首先,需要xml中进行少量的配置来启动Java配置: <?xml version ...
- Spring中基于Java的配置@Configuration和@Bean用法 (转)
spring中为了减少xml中配置,可以生命一个配置类(例如SpringConfig)来对bean进行配置. 一.首先,需要xml中进行少量的配置来启动Java配置: <?xml version ...
- Spring中基于java的配置
Spring中为了减少XML配置,可以声明一个配置类类对bean进行配置,主要用到两个注解@Configuration和@bean 例子: 首先,XML中进行少量的配置来启动java配置: <? ...
- 使用 top instance 命令查看运行中 MaxCompute 作业
我们都知道,在 MaxCompute Console 里,可以使用下面的命令来列出运行完成的 instance 列表. show p|proc|processlist [from <yyyy-M ...
- Linux 查看运行中进程的 umask
线上某台虚机因为故障重装了系统(基线 CentOS 6.9 内核 2.6.x),重新部署了应用.这个应用会生成一个文件,到NFS挂载目录. 而这个 NFS 挂载目录是一个 FTP 服务器的目录.另一台 ...
- JMX——以可视化形式管理与监控正在运行中的Java程序
简单理解: MBean:管理的最小单元,一个MBean就是一个可以被监控的JavaBean. MBeanServer:一个池子,各个MBean都会注册到该池子中,并且该池子提供一系列的管理.监控API ...
随机推荐
- PHP 开发者该知道的 5 个 Composer 小技巧
From: https://segmentfault.com/a/1190000000355928 Composer是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer P ...
- linux下nginx安裝
1.yum安裝 yum安裝 http://nginx.org/packages/centos/7/noarch/RPMS/ 第一步: 安裝命令: yum localinstall http://ng ...
- Unity3d 动态加载材质方法
Texture img = (Texture)Resources.Load("LedPicture"); GameObject.Find("Led").rend ...
- http 断点续传
一.序 Hi,大家好,我是承香墨影! HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报文头(Header)和实体组成.大多数 HTTP 协议的使用 ...
- VC++ 内存泄露与检测的一种方法
本文介绍,当VC++或者MFC程序,出现内存泄露时,如何快速定位的方法,这种方法有一定的局限性,在注意事项中会给出的. MFC程序 当MFC程序出现内存泄露时,退出程序时的VS调试输出 ...
- mint-ui的search组件如何在键盘显示搜索按钮
<form action="" target="frameFile"> <mt-search v-model="value" ...
- 安全检测:2013 Top 10 List
转自:https://www.owasp.org/index.php/Top_10_2013-Top_10 Risk 2013 Table of Contents 2013 Top 10 List ...
- svg文字与图像
摘要: svg与canvas一样都可以将文本和图像放在画布中,制作出不一样的效果.下面是如何使用svg来渲染文本与图像. 简介: SVG的强大能力之一是它可以将文本控制到标准HTML页面不可能有的程度 ...
- springboot+jps+druid项目搭建
pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...
- Java使用泛型实现栈结构
泛型是Java SE5.0的重要特性,使用泛型编程可以使代码获得最大的重用.由于在使用泛型时要指明泛型的具体类型,这样就避免了类型转换.本实例将使用泛型来实现一个栈结构,并对其进行测试. 思路分析:既 ...