linux上tomcat不断吃内存,web app的问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux上tomcat不断吃内存,web app的问题。相关的知识,希望对你有一定的参考价值。

linux上的tomcat不断吃内存,每次deploy都会多占用300兆左右的内存。
请问我用什么方法可以查出我的web app上有哪些吃内存的进程啊?

参考技术A pmap + 进程号
可以看到这个程序占用的所有进程
如我开启vsftpd
用PS AUX|grep vsftpd
查到进程号
在使用pmap + 进程号就可以看到这个进程占用了多少内存

几种常见的操作tomcat的linux命令

参考技术A 重启tomcat
ps x 查看pid
kill -9 pid 杀死进程
/app/tomcat/bin/startup.sh 启动tomcat
追踪日志
tail -f /app/tomcat/log/*.log
配置文件
vi /app/tomcat/webapp/root/WEB-INF/server.properties 查看服务器配置
vi /app/tomcat/webapp/root/WEB-INF/web.xml 查看后端文件位置
vi /app/tomcat/webapp/root/WEB-INF/common-applicationcontext.xml 查看数据库
查看内存溢出
top 查看系统性能
jmap -heap pid 打印heap的概要信息
jmap -histo pid 打印每个class的实例数目,内存占用,类全名信息
jmap -dump:format=b,file=heap.bin pid 输出heap信息到heap.bin文件
jhat -J-mx768m heap.bin 分析heap.bin文件
最好使用eclipse的MAT查看heap.bin,相比jhat等更加直观,容易发现内存溢出
查看死锁
jstack -l pid > deadlock.jstack 输出stack信息到deadlock.jstack
vi deadlock.jstack 使用vi查看
数据库导出
/usr/local/mysql/bin/mysqldump -u root -p test > test_new.sql
数据库导入
/usr/local/mysql/bin/mysql -u root -p test < test_new.sql
选择性查看日志
grep * /app/tomcat/log/*.log|cut -d '#' -f 8-9|sort -t '#' -u

以上是关于linux上tomcat不断吃内存,web app的问题。的主要内容,如果未能解决你的问题,请参考以下文章

Linux下找出吃内存的方法总结

几种常见的操作tomcat的linux命令

JVM_FindSignal 函数不断分配本机内存

Tomcat随笔

linux中将war包放入tomcat的web apps,访问tomcat是成功的,但访问jsp文件就报404,怎么办在线急等

JBoss Web和 Tomcat的区别