tomcat内存使用情况
预发布阿里云服务器的容器 tomcat会自己无缘无故重启,故引出一些查看tomcat内存使用情况观察的细枝末节:
1️⃣当前端口号进程信息和GC使用情况
(1)显示端口的PID:lsof -i:端口
示例:lsof -i:7074
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 3195 ligang 34u IPv4 37416693 0t0 TCP *:7074 (LISTEN)
(2)gc信息统计:jstat -gcutil PID
示例:jstat -gcutil 3195
S0 S1 E O P YGC YGCT FGC FGCT GCT
12.63 0.00 52.03 78.63 99.13 4148 24.274 200 40.246 64.520
(3)输出线程数:ps -mp PID -o THREAD,tid,time | wc -l
示例:ps -mp 3195 -o THREAD,tid,time | wc -l
2️⃣查看进程内存使用情况及定位到对应程序
(1)内存使用情况:top -p PID
示例:top 3195
top - 15:29:27 up 25 days, 20:05, 2 users, load average: 0.01, 0.05, 0.01
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8058868k total, 6821684k used, 1237184k free, 181936k buffers
Swap: 2097144k total, 492300k used, 1604844k free, 1897320k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3195 ligang 20 0 4862m 196m 10m S 0.0 2.5 7:57.48 java
(2)找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:
ps -mp PID -o THREAD,tid,time | sort -rn | head -10
示例:ps -mp PID -o THREAD,tid,time | sort -rn | head -10
USER %CPU PRI SCNT WCHAN USER SYSTEM TID TIME
ligang 0.6 - - - - - - 00:07:58
ligang 0.2 19 - futex_ - - 3270 00:02:49
ligang 0.0 19 - inet_c - - 3277 00:00:00
ligang 0.0 19 - inet_c - - 3273 00:00:00
ligang 0.0 19 - inet_c - - 3271 00:00:00
ligang 0.0 19 - inet_c - - 3203 00:00:05
ligang 0.0 19 - futex_ - - 7644 00:00:00
ligang 0.0 19 - futex_ - - 3420 00:00:00
ligang 0.0 19 - futex_ - - 3288 00:00:06
(3)将需要的线程ID转换为16进制格式:printf "%x\n" TID
示例:printf "%x\n" 3270
cc6
(4)最后打印线程的堆栈信息:jstack PID |grep cc6 -A 30
示例:
jstack 2633 |grep e18 -A 30
tomcat内存使用情况的更多相关文章
- 查看TOMCAT内存使用情况 以及修改方法
查看TOMCAT内存使用情况 <% double total = (Runtime.getRuntime().totalMemory()) / (1024.0 * 1024); double m ...
- tomcat内存、连接数优化
1.检測系统能够设置的内存大小 java -Xmx1024M -version(当中1024表示检測内存能否够调整到这个数) 2.设置tomcat内存 在tomcat_home/bin/catalin ...
- Tomcat内存溢出的三种情况及解决办法分析
Tomcat内存溢出的原因 在生产环境中tomcat内存设置不好很容易出现内存溢出.造成内存溢出是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三种 ...
- Tomcat中查看JVM内存使用情况
TOMCAT运行时,实时监控当前应用JVM的使用情况:可以利用Tomcat自带的应用manager查看详情. 首先,确认服务目录webapps下有manager应用 其次,需要创建角色manager和 ...
- 查看程序占用tomcat内存情况
近期,公司线上tomcat常常无缘无辜宕机.总结了一下定位问题的方法,仅供參考: 报错信息: Maximum number of threads (200) created for connector ...
- Tomcat 内存溢出对应解决方式
1.Tomcat内存溢出的原因 生产环境中Tomcat内存设置不好很容易出现内存溢出.造成内存溢出是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三 ...
- eclipse内存设置,tomcat内存设置,查看内存大小
首先可以通过java/jdk/bin下的java visualVM查看eclipse的内存大小和tomcat的内存大小,主要看堆,PermGen两个大小 如图: 多数情况下,eclipse抛出内存溢出 ...
- Linux 下增大tomcat内存
我的服务器的配置: # OS specific support. $var _must_ be set to either true or false. JAVA_OPTS="-Xms10 ...
- 【收藏】Linux下tomcat内存配置
常见的内存溢出有以下两种: java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemoryError: Java heap space ...
随机推荐
- python-验证功能的装饰器示例
user_list=[ {'}, {'}, {'} ] current_dict={'username':None,'login':False} def auth(auth_type): def au ...
- flask之路径与函数的映射
一:运行报错 OSError: [Errno 98] Address already in use:5000端口可能被占 lsof -i:端口号 查看端口被那个进程使用,结果是python3.5 k ...
- jmeter性能工具 之监控cpu,内存等信息(四)
1.jmeter 本身不支持直接监控 cpu,内存等信息,需要去官网下载控件 JMeterPlugins-Standard-1.4.0.zip 解压好将其中\lib\ext\JMeterPlug ...
- LeetCode--052--N皇后II(java)
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回 n 皇后不同的解决方案的数量. 示例: 输入 ...
- JavaScript学习第一篇
在学习之前让我们了解了解JavaScript的由来 Javascript是一种web技术,最初起名叫LiveScript,它是Netscape开发出来一种脚本语言,其目的是为了扩展基本的Html的功能 ...
- 我们打开Podfile修改一下,以便将flutter包括在里面
platform :ios, '9.0'target 'myproject' do end #新添加的代码flutter_application_path = '../'eval(File.read( ...
- 纯文本编辑语言markdown
Markdown的主要目的是生成可以复制到网页或写入平台的HTML代码.但你不必那样使用它.Markdown也可以作为强大记笔记的基础,许多Markdown编辑可以将您的写作导出为其他格式,如Word ...
- Label设置行间距
内容摘要 UILabel显示多行文本 UILabel设置行间距 解决单行文本 & 多行文本显示的问题 场景描述 众所周知,UILabel显示多行的话,默认行间距为0,但实际开发中,如果显示多行 ...
- 前端二倍图的思考(涉及Retina)
EXCELL格式 1 csv格式导出来之后不能用EXCELL打开,会乱码.用记事本打开,然后将"(英文的引号出掉),就可以了. 关于二倍图的操作 概念: 设备像素:也叫物理像素,显示设备上最 ...
- day08—css布局解决方案之多列布局
转行学开发,代码100天——2018-03-24 本文将记录CSS布局之垂直布局解决方案. 常见的多列布局包括以下: 1.定宽+自适应 2.两列定宽+一列自适应 3.不定宽+自适应 4.两列不定宽+一 ...