今天给客户部署新系统,一个 前台应用,一个后台应用,由于用的是同一个架子,日志文件路径也没改,所以两个应用的日志文件是同一个文件,这样应用运行时,就会出现只能访问一个应用的情况,如果两个应用同时访问,两个应用都会奇慢。
事情是这样的:
部署完之后,同时访问两个应用测试一下,发现出奇慢,根本加载不出来;
就去查找日志文件;没发现什么奇怪的东西;用vi命令查看日志文件的时候,整个系统都变得非常卡;
查看内存,几乎都用上了;
用下面的命令查看内存的使用情况;
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
发现前面3个都是tomcat的,如下是其中一个,奇怪,怎么会有3个?
root 3493 10.5 13.2 4658452 1067264 pts/0 Sl 23:13 0:53
/opt/deploy/jdk1.8.0_73/bin/java -Djava.util.logging.config.file=/opt/deploy/apache-
tomcat-7.0.63/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -
Djava.endorsed.dirs=/opt/deploy/apache-tomcat-7.0.63/endorsed -classpath
/opt/deploy/apache-tomcat-7.0.63/bin/bootstrap.jar:/opt/deploy/apache-tomcat-
7.0.63/bin/tomcat-juli.jar -Dcatalina.base=/opt/deploy/apache-tomcat-7.0.63 -
Dcatalina.home=/opt/deploy/apache-tomcat-7.0.63 -Djava.io.tmpdir=/opt/deploy/apache-
tomcat-7.0.63/temp org.apache.catalina.startup.Bootstrap start
进程杀掉,内存瞬间都释放了;
继续重启,还是老样子;
由于日志运行了很久了,就想把日志文件删了,重新看下;
文件一删,一直在加载中的两个网页,突然一下都加载出来了;
突然想到,这两个应用的日志文件路径相同;
很可能是两个应用获取这个文件的写权限时死锁了;
于是更改了其中一个应用的日志路径;
于是问题解决;
这时用上边的查看内存使用情况的命令查看,就只有一个tomcat了;
有时间再测试下这个3个tomcat进程的问题!
转自http://blog.csdn.net/xichenguan/article/details/51020518