一、背景

有题目中的需求,也不是空穴来风;前一阵给公司搭建了一个持续集成服务器,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其配置的堆大小的更多相关文章

  1. Docker查看运行中容器并进入容器

    一.简述 Docker查看运行中容器并进入容器. 二.方法 $ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash 将黄色文字替换 ...

  2. 【Spring】28、Spring中基于Java的配置@Configuration和@Bean用法.代替xml配置文件

    Spring中为了减少xml中配置,可以生命一个配置类(例如SpringConfig)来对bean进行配置. 一.首先,需要xml中进行少量的配置来启动Java配置: <?xml version ...

  3. IntelliJ IDEA远程调试运行中的JAVA程序/项目

    一.IntelliJ IDEA配置 1.添加一个运行配置(remote项) 2.打开remote项配置对话框 3.远程jvm参数配置提示 4.远程调试的ip地址和端口号,ip就是java项目所在机器i ...

  4. Spring中基于Java的配置@Configuration和@Bean用法

    spring中为了减少xml中配置,可以声明一个配置类(例如SpringConfig)来对bean进行配置. 一.首先,需要xml中进行少量的配置来启动Java配置: <?xml version ...

  5. Spring中基于Java的配置@Configuration和@Bean用法 (转)

    spring中为了减少xml中配置,可以生命一个配置类(例如SpringConfig)来对bean进行配置. 一.首先,需要xml中进行少量的配置来启动Java配置: <?xml version ...

  6. Spring中基于java的配置

    Spring中为了减少XML配置,可以声明一个配置类类对bean进行配置,主要用到两个注解@Configuration和@bean 例子: 首先,XML中进行少量的配置来启动java配置: <? ...

  7. 使用 top instance 命令查看运行中 MaxCompute 作业

    我们都知道,在 MaxCompute Console 里,可以使用下面的命令来列出运行完成的 instance 列表. show p|proc|processlist [from <yyyy-M ...

  8. Linux 查看运行中进程的 umask

    线上某台虚机因为故障重装了系统(基线 CentOS 6.9 内核 2.6.x),重新部署了应用.这个应用会生成一个文件,到NFS挂载目录. 而这个 NFS 挂载目录是一个 FTP 服务器的目录.另一台 ...

  9. JMX——以可视化形式管理与监控正在运行中的Java程序

    简单理解: MBean:管理的最小单元,一个MBean就是一个可以被监控的JavaBean. MBeanServer:一个池子,各个MBean都会注册到该池子中,并且该池子提供一系列的管理.监控API ...

随机推荐

  1. hibernate.cfg配置mysql方言

    hibernate自动建表,mysql高版本不支持 type=InnoDB 中的type关键字. 应该使用engine关键字 而非type 所以需要在hibernate.cfg.xml中配置方言.否则 ...

  2. 前端页面——Cookie与Session有什么差别

    我们在实际生活中总会遇到这种事情,我们一旦登录(首次输入username和password)某个站点之后,当我们再次訪问的时候(仅仅要不关闭浏览器),无需再次登录.而当我们在这个站点浏览一段时间后,它 ...

  3. 主调度器schedule

    中断处理完毕后,系统有三种执行流向:                                                                               1)直 ...

  4. libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'

    没有别的原因: 找正确的 libstdc++.so.5 包就成. 我这儿有,需要的可以下载奥!

  5. CStringArray error C2248: 'CObject::CObject' : cannot access private member declared in class

    在开发中将一个字符串分割,并将子字符串保存在CStringArray中,专门写了一个函数,如下: SplitStringToCString(CString str, TCHAR tszSplit, C ...

  6. 【乐呵一下】WINDOWS有个非常低级的错误!

    该错误来自微软windows附带的计算器(开始附件计算器). 1. 当你尝试用9216除以96并按下=按钮时,计算器竟然没有反应!!! 而9216除以97,98却正常. 2. 还有一个错误,当你尝试用 ...

  7. 最简单安装laravel

    http://laravelacademy.org/resources-download

  8. 史上最强大的python selenium webdriver的包装

    1.之前已经发过两次使用单浏览器了,但是这个最完美,此篇并没有使用任何单例模式的设计模式,用了实例属性结果缓存到类属性. 2.最简单的控制单浏览器是只实例化一次类,然后一直使用这个对象,但每个地方运行 ...

  9. 找不同diff-打补丁patch

    Q:为什么要找不同,为什么要打补丁? A: 在Linux应用中,作为DBA,我们知道MySQL跑在Linux系统之上,数据库最重要的追求就是性能,“稳”是重中之重,所以不能动不动就是换系统或是换这换那 ...

  10. Linux Redis安装,Linux如何安装Redis,Linux Redis自动启动,Redis开机启动

    Linux Redis安装,Linux如何安装Redis,Linux Redis自动启动,Redis开机启动 >>>>>>>>>>>& ...