[英]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.