繁体   English   中英

Glassfish网络应用程序运行缓慢

[英]Glassfish web app running slow

我有一个在glassfish 3.1.2中运行的Web应用程序。 网络应用程序运行缓慢。 我无法理解原因。 在jvm选项中:-Xmx8192m,-XX:MaxPermSize = 3072m。

top命令给出:

Mem:  16269852k total, 16188212k used,    81640k free,   202544k buffers
Swap:  8208376k total,   937308k used,  7271068k free,  5715516k cached



  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                    
13037 root      20   0 13.5g 8.4g  65m S 114.7 54.3   9899:38 java                                                                                                      
13495 root      20   0 15288 1448  900 R 41.5  0.0 489:51.24 top                                                                                                        
29747 root      20   0  197m 2544 1524 R 36.6  0.0 449:20.08 mysql                                                                                                      
 8390 root      20   0 1693m 235m  20m S  3.3  1.5   1:12.61 java                                                                                                       
24987 user1     20   0  151m  52m 7092 S  1.3  0.3  38:13.69 Xvnc                                                                                                       
   12 root      20   0     0    0    0 S  1.0  0.0  17:31.10 events/1                                                                                                   
 7386 user1     20   0  304m  12m 7040 S  0.7  0.1   0:23.11 gnome-terminal                                                                                             
 8705 root      20   0 15276 1472  952 R  0.7  0.0   0:05.95 top                                                                                                        
    4 root      20   0     0    0    0 S  0.3  0.0   2:10.46 ksoftirqd/0                                                                                                
 1933 root      20   0 64116  624  524 S  0.3  0.0   5:27.69 sshd                                                                                                       
31445 mysql     20   0 1862m 335m 6280 S  0.3  2.1   4213:09 mysqld                                                                                                     
    1 root      20   0 19352 1208  996 S  0.0  0.0   1:05.27 init                                                                                                       
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.09 kthreadd   

free -g
             total       used       free     shared    buffers     cached
Mem:            15         15          0          0          0          5
-/+ buffers/cache:          9          5
Swap:            7          0          6

jvisualvm截图: 在此输入图像描述

在此输入图像描述

What can be the possible reason of slowness?
Why is gc consuming cpu even though the allocated max heap and max perm gen space is higher? 
Why is 99.5% RAM being used although the processes in top are not consuming much space? 
After restarting glassfish it runs fast, the ram consumption is slow.

谢谢,

你的最大permgen大小太大了。 在屏幕截图中,它仅使用300MB以上,因此将最大大小设置为超过3GB并不会有太大作用。 您可以明确设置所需的perm gen大小,但这不是一个好主意。

其次,你的堆大小看起来太大了。 即使最大大小为8GB,您仍然无法在该屏幕截图中达到5GB。 最好不要将堆的大小设置为大于您需要的大小。 如果您遇到漏洞应用程序的问题,或者只是堆耗尽,您会发现它的影响要严重得多。 当您设置堆的大小时,将Xmx (max)和Xms (min)都设置为相同的值,这将阻止堆调整大小。

可以在Visual GC选项卡中更好地查看此信息。 在我看来,你所看到的垃圾收集只是年轻的GC,这应该不值得关注。 当您在应用程序运行缓慢的情况下考虑GC时,首先要考虑的是暂停时间 - 每个完整GC需要多长时间,因为它们会暂停您的应用程序。

应用程序缓慢的可能原因可能是许多事情中的任何一个(或更多)。 这可能是由于资源争用,例如 - 您的JDBC连接池可能不够大,或者您的应用程序正在泄漏连接。

至于Top中的内存使用情况,请注意您已按%CPU列排序,而不是%Mem列,因此这是首先要查看的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM