项目登陆有时会出现卡死现象,有经验的朋友请进

newLife_bj 2011-09-09 03:12:32
问题描述:[项目登陆的时候一般都是没问题的,但是又时候登陆会出现卡住。
补充描述:有的时候卡住一段时间(时间稍长)之后,也能登陆。在登陆某个账户又退出之后电脑的cpu会连续在50%以上,这种情况出现后比较容易出现登陆卡住的现象,有时候甚至会出现提示tomcat重启。
项目信息:web端项目Spring、Hibernate注解,DWR注解。数据库:MySQL。服务器:tomcat
解决过程:刚开始认为有可能是数据库死锁或者计算机的内存不够,不过后来看了数据库的InnoDB信息和机器任务管理器之后均被排除。
提问:这种情况是不是tomcat服务器出了某些问题,例如tomcat服务器的启动内存等等
希望大家能够提出有可能的问题,并根据自己提出的问题,做出验证或者解决的相应处理
下面是MySql数据库InnoDB信息:

----------------------------------------------------------+
| InnoDB | |
=====================================
110908 13:27:36 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 52 seconds
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 4, signal count 4
Mutex spin waits 0, rounds 20, OS waits 0
RW-shared spins 8, OS waits 4; RW-excl spins 0, OS waits 0
------------
TRANSACTIONS
------------
Trx id counter 0 430612
Purge done for trx's n:o < 0 429783 undo n:o < 0 0
History list length 3
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0 0, not started, OS thread id 2520
MySQL thread id 16, query id 580 localhost 127.0.0.1 root
show innodb status
---TRANSACTION 0 0, not started, OS thread id 2532
MySQL thread id 13, query id 579 callcenter 192.168.8.247 root
---TRANSACTION 0 430611, ACTIVE 128 sec, OS thread id 1624 fetching rows, thread
declared inside InnoDB 452
mysql tables in use 13, locked 0
MySQL thread id 15, query id 552 callcenter 192.168.8.247 root Sending data
SELECT * FROM Models WHERE Gid IN (SELECT Gid FROM Models WHERE showMenu = 1 and
state=1 And appModelGid = '6fe8a93f-64b3-d10f-964f-5aaa08191e5e' and Gid in(SE
LECT parent_id FROM Models WHERE Gid IN (SELECT Model_id FROM Actions WHERE Gid
IN (SELECT actions_id FROM Roles_Actions WHERE roles_id = '1b86fe4d-3e7b-2e30-e6
02-aaf71c48f435,9cab2734-e92d-831c-2e87-e30306a0bcc9' ))))or Gid IN (SELEC
T Gid FROM Models WHERE showMenu = 1 and state=1 And appModelGid = '6fe8a93f-64
b3-d10f-964f-5aaa08191e5e' and Gid in(SELECT Model_id FROM Actions WHERE Gid IN
(SELECT actions_id FROM Roles_Actions W
Trx read view will not see trx with id >= 0 430612, sees < 0 430612
--------
FILE I/O
--------
I/O thread 0 state: wait Windows aio (insert buffer thread)
I/O thread 1 state: wait Windows aio (log thread)
I/O thread 2 state: wait Windows aio (read thread)
I/O thread 3 state: wait Windows aio (write thread)
Pending normal aio reads: 0, aio writes: 0,
ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
Pending flushes (fsync) log: 0; buffer pool: 0
226 OS file reads, 10 OS file writes, 10 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s
-------------------------------------
INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
Ibuf: size 1, free list len 0, seg size 2,
0 inserts, 0 merged recs, 0 merges
Hash table size 1187107, node heap has 1 buffer(s)
0.52 hash searches/s, 0.00 non-hash searches/s
---
LOG
---
Log sequence number 0 292717601
Log flushed up to 0 292717601
Last checkpoint at 0 292717601
0 pending log writes, 0 pending chkp writes
11 log i/o's done, 0.00 log i/o's/second
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 327041672; in additional pool allocated 1551360
Dictionary memory allocated 43208
Buffer pool size 18304
Free buffers 18215
Database pages 88
Modified db pages 0
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages read 88, created 0, written 2
0.00 reads/s, 0.00 creates/s, 0.00 writes/s
Buffer pool hit rate 1000 / 1000
--------------
ROW OPERATIONS
--------------
1 queries inside InnoDB, 0 queries in queue
2 read views open inside InnoDB
Main thread id 1512, state: waiting for server activity
Number of rows inserted 0, updated 0, deleted 0, read 405772588
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 712664.89 reads/s
----------------------------
END OF INNODB MONITOR OUTPUT
============================
...全文
440 29 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
newLife_bj 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 donghua123 的回复:]
程序应该是没有问题,估计是环境方面的问题。 日志不要用debug打印出来,我之前碰到过类似的情况,在自己这边没有问题,到客户那边就出现问题,后来发现是日志打印太多出现过内存溢出。
[/Quote]
哥们,你帮了我大忙了,谢谢啦
newLife_bj 2011-09-14
  • 打赏
  • 举报
回复
顶一下
newLife_bj 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 donghua123 的回复:]
程序应该是没有问题,估计是环境方面的问题。 日志不要用debug打印出来,我之前碰到过类似的情况,在自己这边没有问题,到客户那边就出现问题,后来发现是日志打印太多出现过内存溢出。
[/Quote]
先谢了,我去试一下
无聊找乐 2011-09-13
  • 打赏
  • 举报
回复
卡死很有可能是因为正在进行垃圾回收

你们用户登录/退出时做了很多建立/释放缓存区数据之类的工作吧;或者在数据库里写了很多日志信息。
donghua123 2011-09-13
  • 打赏
  • 举报
回复
程序应该是没有问题,估计是环境方面的问题。 日志不要用debug打印出来,我之前碰到过类似的情况,在自己这边没有问题,到客户那边就出现问题,后来发现是日志打印太多出现过内存溢出。
newLife_bj 2011-09-13
  • 打赏
  • 举报
回复
顶一下
romanitc 2011-09-13
  • 打赏
  • 举报
回复
友情帮顶!!!
newLife_bj 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 trocp 的回复:]
“在登陆某个账户又退出之后电脑的cpu会连续在50%以上”这个指的服务器CPU还是客户端CPU
[/Quote]
服务器的cpu
oO临时工Oo 2011-09-13
  • 打赏
  • 举报
回复
“在登陆某个账户又退出之后电脑的cpu会连续在50%以上”这个指的服务器CPU还是客户端CPU
newLife_bj 2011-09-13
  • 打赏
  • 举报
回复
顶一下
newLife_bj 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 zxingchao2009 的回复:]
可能是数据连接池的问题,连接数都用完了一直在等待
[/Quote]
mysql默认连接数是100,但是使用软件的人数根本就没那么多啊。有的时候刚重启了tomcat之后就出现了卡死现象
UPC_思念 2011-09-13
  • 打赏
  • 举报
回复
可能是数据连接池的问题,连接数都用完了一直在等待
newLife_bj 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 lxlsoft 的回复:]
我觉得是数据连接池的问题,以前有个项目也是用了数据连接后又不关,导致越来越慢,后来直接挂掉了
[/Quote]
这个软件的用户量基本上可以说是很少,而且也不是越来越慢,直接就是卡死,重启tomcat之后都有可能出现……
江郎才近 2011-09-13
  • 打赏
  • 举报
回复
我觉得是数据连接池的问题,以前有个项目也是用了数据连接后又不关,导致越来越慢,后来直接挂掉了
newLife_bj 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 xr19251 的回复:]
我也遇到过 ,但不知道是怎么回事~~
[/Quote]
最后解决了么?怎么解决的?
xr19251 2011-09-13
  • 打赏
  • 举报
回复
我也遇到过 ,但不知道是怎么回事~~
a619225471 2011-09-13
  • 打赏
  • 举报
回复
顶一下
newLife_bj 2011-09-13
  • 打赏
  • 举报
回复
顶一下
newLife_bj 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 donghua123 的回复:]
程序应该是没有问题,估计是环境方面的问题。 日志不要用debug打印出来,我之前碰到过类似的情况,在自己这边没有问题,到客户那边就出现问题,后来发现是日志打印太多出现过内存溢出。
[/Quote]
在后台输出了日志,同事也生成了文本日志,还有错误信息的文本日志。我应该去掉哪个?或者修改哪一个比较合适?
newLife_bj 2011-09-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 clnlkw3 的回复:]
既然在公司没事,就不是代码的问题
应该是环境,中间件tomcat之类的问题
[/Quote]
能举例说明一下么
加载更多回复(9)

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧