Ale*_*Rlz 11 performance tomcat web-applications
我实现了一个Web应用程序来启动Tomcat服务非常快速,但是花费数小时和更多用户进入的速度变得越来越慢(大约15个用户).
检查RAM使用情况统计信息(20%),CPU(25%)
服务器功能:
我不使用Web服务器,我们直接在Tomcat上发布.
进入午夜缓慢仍然保持(只有1个用户在线)
我的解决方案是重启Tomcat服务,响应时间再次出色.
是否有人遇到过这个问题?任何线索将不胜感激.
没有提供足够的细节。需要更多信息:(
使用htop或top查找每个进程和每个线程的内存和 CPU 使用率。
4 核系统中恒定 25% 的 CPU 使用率可以表明单核应用程序/线程在它能够使用的唯一内核上运行 100% 的 CPU。
哪个应用程序正在吃 CPU?
20% 的内存约为 1.6GB。对于仅运行 tomcat + mysql 的空闲服务器,这比我预期的要多一些。该-Xms1024告诉Tomcat预先分配1GB内存,这样解释它。
将 tomcat 设置更改为-Xms512和-Xmx2048。当你把一些用户扔给它时,观察 tomcat 的内存使用情况。如果它一直增长直到达到 2GB...然后冻结,这可能表明内存泄漏。
使用df -h检查磁盘的使用情况。完整的分区可能会导致您遇到的问题。
Filesystem Size Used Avail Usage% Mounted on
/cygdrive/c 149G 149G 414M 100% /
Run Code Online (Sandbox Code Playgroud)
(如果您刚刚在此示例中发现我的笔记本电脑空间不足。您做对了:D)
日志很棒。然而,他们有一个坏习惯来填满磁盘。检查日志磁盘使用情况。新用户连接时是否正确写入/擦除/旋转日志?擦除日志可以解决问题吗?(在删除它们之前将它们复制到某处以供将来分析)
如果不。日志仍然很棒。他们有帮助您跟踪错误的好习惯。检查 tomcat 日志。您可能希望将日志记录级别设置为调试。当网站死亡时,最后会发生什么?任何有用的错误信息?用户连接是否仍然被 tomcat 接收和接受?
我想 25% 的 CPU 去 tomcat(而不是 mysql)。Tomcat 本身不会失败。在其上运行的应用程序一定失败了。尝试从 tomcat 中删除该应用程序(您最终可以改为使用 hello world)。没有您的应用程序,tomcat 可以保持通宵工作吗?它可能可以,在这种情况下,故障出在应用程序上。
在您的应用程序中启用完整的调试日志记录并尝试跟踪问题。在调试模式下直接从 Eclipse 运行它并让用户使用它。它是否始终以相同的方式失败?
如果是,请在 Eclipse 调试器中点击“暂停”并检查应用程序在做什么。查看每个线程当前正在运行的代码段 + 其调用堆栈。重复几次。如果出现死锁、无限循环或类似情况,您可以通过这种方式找到它。
如果你幸运的话,你现在已经发现了这个问题。如果没有,那你就很不幸了,这是一个可能深藏在应用程序内部的棘手错误。这可能很难追踪。决心会导致成功。祝你好运=)
我们遇到了类似的问题,原因是“catalina.out”。它是“System.out”和“System.err”的标准目标日志文件。它的大小不断增加,从而减慢了速度,最终 tomcat 崩溃了。通过旋转“catalina.out”解决了这个问题。我们使用的是 redhat,因此我们制作了一个 shell 脚本来旋转“catalina.out”。
以下是一些链接:-
Mulesoft关于catalina的文章(还包含两种旋转方法):
如果“catalina.out”不是问题,请尝试以下操作:-
Mulesoft 关于优化 tomcat 的文章: 调整 Tomcat 性能以获得最佳速度
| 归档时间: |
|
| 查看次数: |
35390 次 |
| 最近记录: |