帮助分析glassfish服务器挂起问题

帮助分析glassfish服务器挂起问题,glassfish,java-metro-framework,Glassfish,Java Metro Framework,我们正在运行一个glassfish服务器,其中包含大约20个jax ws metro web服务。服务器规格为Core2Duo和8GB RAM。我们对所有web服务使用一个http侦听器。发展是真的。请求线程计数为2,接受线程计数为1。 最小和最大堆大小为1GB,Perm Gen设置为512MB。 这些服务通过Hibernate层访问Oracle数据库,服务之间有许多服务间调用。 前端是ASP.Net。我们的问题是,当4-5个用户尝试同时访问应用程序一段时间(1小时)时,glassfish服务器

我们正在运行一个glassfish服务器,其中包含大约20个jax ws metro web服务。服务器规格为Core2Duo和8GB RAM。我们对所有web服务使用一个http侦听器。发展是真的。请求线程计数为2,接受线程计数为1。 最小和最大堆大小为1GB,Perm Gen设置为512MB。 这些服务通过Hibernate层访问Oracle数据库,服务之间有许多服务间调用。 前端是ASP.Net。我们的问题是,当4-5个用户尝试同时访问应用程序一段时间(1小时)时,glassfish服务器会挂起,CPU将达到100%,但内存利用率约为10-11%。 我们找不到任何关于如何调试这个问题的指针。在某些情况下,日志文件会给出java.lang.OutofMemory异常:PermGenSpace。但也不是每次都是这样,即在许多情况下,日志文件在挂起时不会给出任何错误。另外,如果我们试图增加Perm Gen空间,glass fish服务器也不会启动。我们需要一些关于如何诊断和解决这个问题的方向。 我们使用的玻璃鱼版本是v2.1。 我们有以下意见: 1.添加更多http侦听器(每4-5个服务添加一个侦听器)确实会延长失败时间,但效果并不明显。 2.当使用SOAP-UI调用一些繁重的服务(一个接一个的操作)时,我们在同时运行多个线程时也会遇到挂起问题。(例如,8-10个螺纹) 3.我们观察到,当使用SOAP-UI调用服务操作(不调用任何其他服务)时,很少挂起,而调用其他服务的服务挂起的频率很高。

当您说“当服务调用其他服务时”,这是一个用于任何方法的直接调用,还是正在进行另一个web服务调用,即从另一个web服务调用web服务?所有的web服务都放在同一个盒子上吗?它们都是Metro web服务吗?如果您模拟DB层,会发生什么?当您说“当一个服务调用其他服务时”,这是您将用于任何方法的直接调用,还是您正在进行另一个web服务调用,即从另一个web服务调用web服务?所有的web服务都放在同一个盒子上吗?它们都是Metro web服务吗?如果模拟DB层,会发生什么?