0

再会,

我在具有 4gig RAM(2gig 始终免费)的 Windows 2003 32 位服务器上运行 Coldfusion 8 MX,但我无法为 JVM 分配超过 550m 的内存。

我已经提交了这个问题,但是它太长了,并且与我的所有编辑都混淆了。我最接近它的开始是当我设置 -Xmn 时,它在崩溃前运行了 10 分钟。崩溃后,即使使用相同的参数,它也不会再次以 1024m 开始。

这些崩溃日志适用于 Java 1.6.0_38。我已经尝试过使用 Java 5,它给出了相同的结果。我什至无法让 CF8 从 Java 7 开始(这是一个单独的问题)。

我需要为 JVM 分配更多 RAM,这样 CF 就不会在重负载下不断崩溃,因此我们将不胜感激任何对此行为的深入了解。

Java Args 是:

java.args=-server -Xmx1024m -Xms1024m -Xmn200m -XX:MaxPermSize=256m -XX:PermSize=256m -Xloggc:{application.home}/../logs/CFGC/CFGC.log -XX:+PrintGCDetails -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Dcoldfusion.rootDir={application.home}/../ -Dcoldfusion.libPath={application.home}/../lib

崩溃日志 #1(服务器运行了 10 分钟后才生成此日志):

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c82a5c4, pid=4604, tid=4760
#
# JRE version: 6.0_38-b05
# Java VM: Java HotSpot(TM) Server VM (20.13-b02 mixed mode windows-x86 )
# Problematic frame:
# C  [ntdll.dll+0x2a5c4]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x5c4f0400):  JavaThread "jrpp-2" [_thread_in_native, id=4760, stack(0x638d0000,0x639d0000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x00000000

Registers:
EAX=0x680bd710, EBX=0x003e0000, ECX=0x00000000, EDX=0x00000000
ESP=0x639cc950, EBP=0x639cc95c, ESI=0x680bd708, EDI=0x680b56f8
EIP=0x7c82a5c4, EFLAGS=0x00010246

Top of Stack: (sp=0x639cc950)
0x639cc950:   003e0000 680b56f8 00000000 639cca44
0x639cc960:   7c82a69b 003e0000 00000000 639cca24
0x639cc970:   00000000 00000057 680b5700 00008004
0x639cc980:   04c0a470 7c827b79 71b219d6 000018a4
0x639cc990:   00000001 639cc9ac 000018a4 00000103
0x639cc9a0:   00000103 639cc9c0 7c826e39 ffb3b4c0
0x639cc9b0:   ffffffff 0014dfa8 00000000 00000000
0x639cc9c0:   639cca38 580d0000 000018a4 00002020 

Instructions: (pc=0x7c82a5c4)
0x7c82a5a4:   85 db a6 02 00 8a 46 05 24 10 a8 10 88 47 05 0f
0x7c82a5b4:   85 02 0f 00 00 8b 4e 0c 8d 46 08 8b 10 89 4d 0c
0x7c82a5c4:   8b 09 3b 4a 04 89 55 14 0f 85 f5 72 01 00 3b c8
0x7c82a5d4:   0f 85 ed 72 01 00 56 53 e8 17 fa ff ff 8b 45 14 


Register to memory mapping:

EAX=0x680bd710 is an unknown value
EBX=0x003e0000 is an unknown value
ECX=0x00000000 is an unknown value
EDX=0x00000000 is an unknown value
ESP=0x639cc950 is pointing into the stack for thread: 0x5c4f0400
EBP=0x639cc95c is pointing into the stack for thread: 0x5c4f0400
ESI=0x680bd708 is an unknown value
EDI=0x680b56f8 is an unknown value


Stack: [0x638d0000,0x639d0000],  sp=0x639cc950,  free space=1010k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [ntdll.dll+0x2a5c4]  wcslen+0x1d6
C  [ntdll.dll+0x2a69b]  wcslen+0x2ad
C  [MSVCR71.dll+0x218a]  free+0x39
C  [net.dll+0x711f]  Java_java_net_SocketInputStream_socketRead0+0x1c6
j  java.net.SocketInputStream.socketRead0(Ljava/io/FileDescriptor;[BIII)I+0

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  java.net.SocketInputStream.socketRead0(Ljava/io/FileDescriptor;[BIII)I+0
J  macromedia.jdbc.sqlserver.SQLServerByteOrderedDataReader.makeMoreDataAvailable()V
j  macromedia.jdbc.sqlserver.SQLServerByteOrderedDataReader.receive()V+14
j  macromedia.jdbc.sqlserver.tds.TDSRPCRequest.submitRequest(Lmacromedia/jdbc/sqlserver/SQLServerImplStatement;)V+132
j  macromedia.jdbc.sqlserver.tds.TDSRPCNonCursorExecuteRequest.submitPrepExec(Lmacromedia/jdbc/sqlserver/SQLServerImplStatement;Lmacromedia/jdbc/base/BaseWarnings;)V+26
j  macromedia.jdbc.sqlserver.tds.TDSRPCExecuteRequest.doPrepExec(Lmacromedia/jdbc/sqlserver/SQLServerImplStatement;Lmacromedia/jdbc/base/BaseWarnings;)V+29
j  macromedia.jdbc.sqlserver.tds.TDSRPCExecuteRequest.execute(Lmacromedia/jdbc/sqlserver/SQLServerImplStatement;Lmacromedia/jdbc/base/BaseWarnings;)V+339
j  macromedia.jdbc.sqlserver.SQLServerImplStatement.execute()V+468
j  macromedia.jdbc.base.BaseStatement.commonExecute()V+40
j  macromedia.jdbc.base.BaseStatement.executeInternal()Z+5
j  macromedia.jdbc.base.BasePreparedStatement.execute()Z+42
j  macromedia.jdbc.base.BasePreparedStatementPoolable.execute()Z+4
j  coldfusion.sql.Executive.executeQuery(Ljava/sql/Connection;Ljava/lang/String;Lcoldfusion/sql/ParameterList;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;[IIIZZ)Lcoldfusion/sql/Table;+507
j  coldfusion.sql.Executive.executeQuery(Ljava/sql/Connection;Ljava/lang/String;Lcoldfusion/sql/ParameterList;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;[ILcoldfusion/sql/DataSourceDef;)Lcoldfusion/sql/Table;+181
j  coldfusion.sql.Executive.executeQuery(Ljava/sql/Connection;Ljava/lang/String;Lcoldfusion/sql/ParameterList;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;[ILjava/lang/Object;)Lcoldfusion/sql/Table;+61
j  coldfusion.sql.SqlImpl.execute(Z)Lcoldfusion/sql/Table;+138
j  coldfusion.tagext.sql.QueryTag.executeQuery(Z)Lcoldfusion/sql/Table;+5
j  coldfusion.tagext.sql.QueryTag.doEndTag()I+65
j  cfTransferGateway2ecfc585582040$funcLISTBYPROPERTYMAP.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+2719
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Map;Lcoldfusion/runtime/CfJspPage;Lcoldfusion/filter/FusionContext;)Ljava/lang/Object;
J  coldfusion.runtime.CfJspPage._invoke(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
j  cfSQLManager2ecfc937842696$funcLISTBYPROPERTYMAP.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+450
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod.runFilterChain(Ljava/lang/Object;Ljava/lang/Object;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;
j  coldfusion.runtime.UDFMethod.invoke(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+26
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Map;Lcoldfusion/runtime/CfJspPage;Lcoldfusion/filter/FusionContext;)Ljava/lang/Object;
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;Ljava/util/Map;Ljavax/servlet/jsp/PageContext;)Ljava/lang/Object;
j  coldfusion.runtime.CfJspPage._invoke(Ljava/lang/Object;Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Object;+58
j  cfTransfer2ecfc1333771829$funcREADBYPROPERTYMAP.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+278
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Map;Lcoldfusion/runtime/CfJspPage;Lcoldfusion/filter/FusionContext;)Ljava/lang/Object;
J  coldfusion.runtime.CfJspPage._invoke(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
j  cfUserService2ecfc1575820687$funcGETUSERBYPROPERTYMAP.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+116
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Map;Lcoldfusion/runtime/CfJspPage;Lcoldfusion/filter/FusionContext;)Ljava/lang/Object;
J  coldfusion.runtime.CfJspPage._invoke(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
j  cfCardListener2ecfc1071855549$funcGETCARD.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+333
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod.runFilterChain(Ljava/lang/Object;Ljava/lang/Object;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;
j  coldfusion.runtime.UDFMethod.invoke(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+26
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Map;Lcoldfusion/runtime/CfJspPage;Lcoldfusion/filter/FusionContext;)Ljava/lang/Object;
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;Ljava/util/Map;Ljavax/servlet/jsp/PageContext;)Ljava/lang/Object;
j  coldfusion.runtime.CfJspPage._invoke(Ljava/lang/Object;Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Object;+58
j  coldfusion.tagext.lang.InvokeTag.doEndTag()I+176
j  cfEventInvoker2ecfc577457096$funcINVOKELISTENER.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+412
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Map;Lcoldfusion/runtime/CfJspPage;Lcoldfusion/filter/FusionContext;)Ljava/lang/Object;
J  coldfusion.runtime.CfJspPage._invoke(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
j  cfNotifyCommand2ecfc1810625261$funcEXECUTE.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+295
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Map;Lcoldfusion/runtime/CfJspPage;Lcoldfusion/filter/FusionContext;)Ljava/lang/Object;
J  coldfusion.runtime.CfJspPage._invoke(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
j  cfEventHandler2ecfc451386063$funcHANDLEEVENT.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+322
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Map;Lcoldfusion/runtime/CfJspPage;Lcoldfusion/filter/FusionContext;)Ljava/lang/Object;
J  coldfusion.runtime.CfJspPage._invoke(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
j  cfRequestHandler2ecfc128659239$funcHANDLEEVENT.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+862
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod.runFilterChain(Ljava/lang/Object;Ljava/lang/Object;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;
J  coldfusion.runtime.CfJspPage._invokeUDF(Ljava/lang/Object;Ljava/lang/String;Lcoldfusion/runtime/CFPage;[Ljava/lang/Object;)Ljava/lang/Object;
j  cfRequestHandler2ecfc128659239$funcHANDLENEXTEVENT.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+181
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod.runFilterChain(Ljava/lang/Object;Ljava/lang/Object;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;
J  coldfusion.runtime.CfJspPage._invokeUDF(Ljava/lang/Object;Ljava/lang/String;Lcoldfusion/runtime/CFPage;[Ljava/lang/Object;)Ljava/lang/Object;
j  cfRequestHandler2ecfc128659239$funcPROCESSEVENTS.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+390
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod.runFilterChain(Ljava/lang/Object;Ljava/lang/Object;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;
J  coldfusion.runtime.CfJspPage._invokeUDF(Ljava/lang/Object;Ljava/lang/String;Lcoldfusion/runtime/CFPage;[Ljava/lang/Object;)Ljava/lang/Object;
j  cfRequestHandler2ecfc128659239$funcHANDLEREQUEST.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+1738
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Map;Lcoldfusion/runtime/CfJspPage;Lcoldfusion/filter/FusionContext;)Ljava/lang/Object;
J  coldfusion.runtime.CfJspPage._invoke(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
j  cfmach2dii2ecfc392524582$funcHANDLEREQUEST.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+1653
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod.runFilterChain(Ljava/lang/Object;Ljava/lang/Object;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;
J  coldfusion.runtime.CfJspPage._invokeUDF(Ljava/lang/Object;Ljava/lang/String;Lcoldfusion/runtime/CFPage;[Ljava/lang/Object;)Ljava/lang/Object;
j  cfApplication2ecfc1704547219$funcONREQUESTSTART.runFunction(Lcoldfusion/runtime/LocalScope;Ljava/lang/Object;Lcoldfusion/runtime/CFPage;Lcoldfusion/runtime/ArgumentCollection;)Ljava/lang/Object;+829
J  coldfusion.runtime.UDFMethod.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(Lcoldfusion/filter/FusionContext;)V
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;[Ljava/lang/Object;Ljava/util/Map;Lcoldfusion/runtime/CfJspPage;Lcoldfusion/filter/FusionContext;)Ljava/lang/Object;
J  coldfusion.runtime.TemplateProxy.invoke(Ljava/lang/String;[Ljava/lang/Object;Ljavax/servlet/jsp/PageContext;)Ljava/lang/Object;
j  coldfusion.runtime.AppEventInvoker.invoke(Ljava/lang/String;[Ljava/lang/Object;Lcoldfusion/filter/FusionContext;)Z+28
j  coldfusion.runtime.AppEventInvoker.onRequestStart([Ljava/lang/Object;Lcoldfusion/filter/FusionContext;)Z+5
j  coldfusion.filter.ApplicationFilter.invoke(Lcoldfusion/filter/FusionContext;)V+676
j  coldfusion.filter.RequestMonitorFilter.invoke(Lcoldfusion/filter/FusionContext;)V+56
j  coldfusion.filter.MonitoringFilter.invoke(Lcoldfusion/filter/FusionContext;)V+12
j  coldfusion.filter.PathFilter.invoke(Lcoldfusion/filter/FusionContext;)V+124
j  coldfusion.filter.ExceptionFilter.invoke(Lcoldfusion/filter/FusionContext;)V+13
j  coldfusion.filter.ClientScopePersistenceFilter.invoke(Lcoldfusion/filter/FusionContext;)V+5
j  coldfusion.filter.BrowserFilter.invoke(Lcoldfusion/filter/FusionContext;)V+35
j  coldfusion.filter.NoCacheFilter.invoke(Lcoldfusion/filter/FusionContext;)V+120
j  coldfusion.filter.GlobalsFilter.invoke(Lcoldfusion/filter/FusionContext;)V+13
j  coldfusion.filter.DatasourceFilter.invoke(Lcoldfusion/filter/FusionContext;)V+5
j  coldfusion.filter.RequestThrottleFilter.invoke(Lcoldfusion/filter/FusionContext;)V+82
j  coldfusion.CfmServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+114
j  coldfusion.bootstrap.BootstrapServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+30
j  jrun.servlet.FilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+53
j  com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doHttpServletRequest(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+468
j  com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFusionRequest(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+262
j  com.intergral.fusionreactor.filter.FusionReactorCoreFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+45
j  com.intergral.fusionreactor.filter.FusionReactorFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+39
j  jrun.servlet.FilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+80
j  coldfusion.monitor.event.MonitoringServletFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+9
j  coldfusion.bootstrap.BootstrapFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+25
j  jrun.servlet.FilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+80
j  jrun.servlet.FilterChain.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+3
j  jrun.servlet.ServletInvoker.invoke(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljrun/servlet/InvokerChain;)V+183
j  jrun.servlet.JRunInvokerChain.invokeNext(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+55
j  jrun.servlet.JRunRequestDispatcher.invoke(Ljrun/servlet/ServletConnection;)V+249
j  jrun.servlet.ServletEngineService.dispatch(Ljrun/servlet/ServletConnection;)V+74
j  jrun.servlet.jrpp.JRunProxyService.invokeRunnable(Ljava/lang/Runnable;)V+24
j  jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(Ljava/lang/Runnable;)V+113
j  jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(Ljava/lang/Runnable;)V+16
j  jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(Ljava/lang/Runnable;)V+47
j  jrunx.scheduler.WorkerThread.run()V+24
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------
[I removed this section due to StackOverflow question size limits. Please let me know if you need to see this]

Other Threads:
0x56879000 VMThread [stack: 0x566d0000,0x567d0000] [id=5156]
0x568af000 WatcherThread [stack: 0x57260000,0x57360000] [id=3788]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
par new generation   total 184320K, used 34086K [0x039d0000, 0x101d0000, 0x101d0000)
eden space 163840K,  11% used [0x039d0000, 0x04cc5c60, 0x0d9d0000)
from space 20480K,  71% used [0x0edd0000, 0x0fc23e68, 0x101d0000)
to   space 20480K,   0% used [0x0d9d0000, 0x0d9d0000, 0x0edd0000)
concurrent mark-sweep generation total 843776K, used 325395K [0x101d0000, 0x439d0000, 0x439d0000)
concurrent-mark-sweep perm gen total 262144K, used 146524K [0x439d0000, 0x539d0000, 0x539d0000)

Code Cache  [0x00710000, 0x010f8000, 0x03710000)
total_blobs=2699 nmethods=2465 adapters=187 free_code_cache=40016832 largest_free_block=17152

Dynamic libraries:
[I removed this section due to StackOverflow question size limits. Please let me know if you need to see this]

VM Arguments:
jvm_args: -Xmx1024m -Xms1024m -Xmn200m -XX:MaxPermSize=256m -XX:PermSize=256m -Xloggc:C:\ColdFusion8\runtime/../logs/CFGC/CFGC.log -XX:+PrintGCDetails -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Dcoldfusion.rootDir=C:\ColdFusion8\runtime/../ -Dcoldfusion.libPath=C:\ColdFusion8\runtime/../lib -Dsun.io.useCanonCaches=false -Djmx.invoke.getters=true 
java_command: <unknown>
Launcher Type: generic

Environment Variables:
PATH=C:\ColdFusion8\runtime\..\lib;C:\ColdFusion8\runtime\..\jintegra\bin;C:\ColdFusion8\runtime\..\jintegra\bin\international;C:\Program Files\CollabNet Subversion Server;C:\ColdFusion8\verity\k2\_nti40\bin;C:\CFusionMX7\verity\k2\_nti40\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\PROGRA~1\NcFTP;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\WINDOWS\system32\WindowsPowerShell\v1.0;D:\StrawberryPerl\c\bin;D:\StrawberryPerl\perl\site\bin;D:\StrawberryPerl\perl\bin;D:\php\ext;
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 23 Stepping 6, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows Server 2003 family Build 3790 Service Pack 2

CPU:total 2 (1 cores per cpu, 1 threads per core) family 6 model 23 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1

Memory: 4k page, physical 3919344k(2146400k free), swap 7963284k(5585376k free)

vm_info: Java HotSpot(TM) Server VM (20.13-b02) for windows-x86 JRE (1.6.0_38-b05), built on Nov 14 2012 01:50:25 by "java_re" with MS VC++ 7.1 (VS2003)

time: Wed Feb 06 17:21:55 2013
elapsed time: 401 seconds

崩溃日志 #2(在它崩溃之后,我尝试使用相同的配置重新启动 CF 服务,但它甚至无法启动,并产生此错误):

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c8194cd, pid=6020, tid=5608
#
# JRE version: 6.0_38-b05
# Java VM: Java HotSpot(TM) Server VM (20.13-b02 mixed mode windows-x86 )
# Problematic frame:
# C  [ntdll.dll+0x194cd]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x568a2c00):  JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=5608, stack(0x57060000,0x57160000)]

siginfo: ExceptionCode=0xc0000005, writing address 0x0000e010

Registers:
EAX=0x5b644638, EBX=0x5a9f0000, ECX=0x5b652658, EDX=0x0000e010
ESP=0x5715e534, EBP=0x5715e56c, ESI=0x003e0000, EDI=0x5b652650
EIP=0x7c8194cd, EFLAGS=0x00010283

Top of Stack: (sp=0x5715e534)
0x5715e534:   5b652650 5b652658 5b652650 580d0000
0x5715e544:   00000000 5b673000 00000000 567d0140
0x5715e554:   00000000 00000000 00000000 00000136
0x5715e564:   00000000 00000000 5715e590 7c81727a
0x5715e574:   5b653000 00020000 00000136 00001000
0x5715e584:   5b652650 003e0000 00000071 5715e7b8
0x5715e594:   7c82b460 003e0000 00007ff4 00007ff4
0x5715e5a4:   579f2508 7c86a7b2 00000000 5715e5d4 

Instructions: (pc=0x7c8194cd)
0x7c8194ad:   ff ff 0f b7 c8 8d 84 ce 78 01 00 00 39 00 0f 84
0x7c8194bd:   1d 55 ff ff 8b 50 04 8d 4f 08 89 01 89 51 04 57
0x7c8194cd:   89 0a 56 89 48 04 e8 5d 0f 01 00 66 83 7d fc 00
0x7c8194dd:   0f 85 0b 73 ff ff 8b 45 ec 85 c0 0f 85 8a 2d ff 


Register to memory mapping:

EAX=0x5b644638 is an unknown value
EBX=0x5a9f0000 is pointing into the stack for thread: 0x57608400
ECX=0x5b652658 is an unknown value
EDX=0x0000e010 is an unknown value
ESP=0x5715e534 is pointing into the stack for thread: 0x568a2c00
EBP=0x5715e56c is pointing into the stack for thread: 0x568a2c00
ESI=0x003e0000 is an unknown value
EDI=0x5b652650 is an unknown value


Stack: [0x57060000,0x57160000],  sp=0x5715e534,  free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [ntdll.dll+0x194cd]  RtlFreeThreadActivationContextStack+0x418
C  [ntdll.dll+0x1727a]  towlower+0xb1
C  [ntdll.dll+0x2b460]  wcscpy+0x175
C  [MSVCR71.dll+0x16b3]  _crtLCMapStringA+0x305
C  [MSVCR71.dll+0x16db]  _crtLCMapStringA+0x32d
V  [jvm.dll+0x5edd3]
V  [jvm.dll+0x5eff2]
V  [jvm.dll+0x5f273]
V  [jvm.dll+0x27ed7e]
V  [jvm.dll+0x27c263]
V  [jvm.dll+0x259bf9]
V  [jvm.dll+0x2600a3]
V  [jvm.dll+0x261382]
V  [jvm.dll+0x24fa4a]
V  [jvm.dll+0x4882d]
V  [jvm.dll+0x493bf]
V  [jvm.dll+0x12e8a4]
V  [jvm.dll+0x15719c]
C  [MSVCR71.dll+0x9565]  endthreadex+0xa0
C  [kernel32.dll+0x2482f]  GetModuleHandleA+0xdf


Current CompileTask:
C2:   4520  97      java.util.Arrays.mergeSort([Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)V (235 bytes)


---------------  P R O C E S S  ---------------
[I removed this section due to StackOverflow question size limits. Please let me know if you need to see this]

Other Threads:
0x56879000 VMThread [stack: 0x566d0000,0x567d0000] [id=320]
0x568a6c00 WatcherThread [stack: 0x57260000,0x57360000] [id=5852]

VM state:synchronizing (normal execution)

VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x003e61c8] Threads_lock - owner thread: 0x56879000

Heap
par new generation   total 184320K, used 37692K [0x039d0000, 0x101d0000, 0x101d0000)
eden space 163840K,  23% used [0x039d0000, 0x05e9f248, 0x0d9d0000)
from space 20480K,   0% used [0x0d9d0000, 0x0d9d0000, 0x0edd0000)
to   space 20480K,   0% used [0x0edd0000, 0x0edd0000, 0x101d0000)
concurrent mark-sweep generation total 843776K, used 1673K [0x101d0000, 0x439d0000, 0x439d0000)
concurrent-mark-sweep perm gen total 262144K, used 12535K [0x439d0000, 0x539d0000, 0x539d0000)

Code Cache  [0x00710000, 0x00950000, 0x03710000)
total_blobs=244 nmethods=121 adapters=77 free_code_cache=49693952 largest_free_block=21888

Dynamic libraries:
[I removed this section due to StackOverflow question size limits. Please let me know if you need to see this]

VM Arguments:
jvm_args: -Xmx1024m -Xms1024m -Xmn200m -XX:MaxPermSize=256m -XX:PermSize=256m -Xloggc:C:\ColdFusion8\runtime/../logs/CFGC/CFGC.log -XX:+PrintGCDetails -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Dcoldfusion.rootDir=C:\ColdFusion8\runtime/../ -Dcoldfusion.libPath=C:\ColdFusion8\runtime/../lib -Dsun.io.useCanonCaches=false -Djmx.invoke.getters=true 
java_command: <unknown>
Launcher Type: generic

Environment Variables:
PATH=C:\ColdFusion8\runtime\..\lib;C:\ColdFusion8\runtime\..\jintegra\bin;C:\ColdFusion8\runtime\..\jintegra\bin\international;C:\Program Files\CollabNet Subversion Server;C:\ColdFusion8\verity\k2\_nti40\bin;C:\CFusionMX7\verity\k2\_nti40\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\PROGRA~1\NcFTP;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\WINDOWS\system32\WindowsPowerShell\v1.0;D:\StrawberryPerl\c\bin;D:\StrawberryPerl\perl\site\bin;D:\StrawberryPerl\perl\bin;D:\php\ext;
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 23 Stepping 6, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows Server 2003 family Build 3790 Service Pack 2

CPU:total 2 (1 cores per cpu, 1 threads per core) family 6 model 23 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1

Memory: 4k page, physical 3919344k(2858352k free), swap 7963284k(5630528k free)

vm_info: Java HotSpot(TM) Server VM (20.13-b02) for windows-x86 JRE (1.6.0_38-b05), built on Nov 14 2012 01:50:25 by "java_re" with MS VC++ 7.1 (VS2003)

time: Wed Feb 06 17:22:00 2013
elapsed time: 4 seconds
4

2 回答 2

2

您在 32 位 VM 上运行,这对堆的大小施加了一些限制。我不是这方面的世界上最好的权威,所以你可能需要做进一步的谷歌搜索来确认/澄清其中一些观点。

每个进程只有 2 Gig 的内存限制,所以你有很多东西可以适应:

  • 你的堆。这是上面示例中的 1 个演出
  • 你的 Perm gen (我相信它没有放在堆里)。那是 256 兆。
  • 栈内存:每个线程都有一个栈,在上面的例子中至少是一个meg。将线程数乘以 1 meg 并将其添加到上面的 1.25 gig 中。
  • 本机 Java 代码。JVM的代码和本机内存需要加载或映射到内存空间。
  • 其他 DLL,例如 Windows 功能(ntdll.dll 和 MSVCR71.dll),而且我相信防病毒软件和其他各种杂乱无章的东西都可以映射进去。

我相信如果将 DLL 映射到整个 2 Gig 空间中的内存位置,您可能会遇到内存分配问题,您会得到一种碎片,其中没有大的连续内存块可用。

计算活动线程的数量(可能是你必须从上面的转储中剪掉的那部分),看看你的记忆中有多少凹痕。我们的应用程序使用 -Xss256k 将线程堆栈大小减少到 256k,我们已经在规模和负载下对其进行了测试,它适用于我们的应用程序,但您需要测试自己的应用程序。

在CF根本无法启动的崩溃之后,它会以较低的-Xmx设置启动吗?

尝试使用 SysInternals 中的 VMMap.exe工具。它会比你想知道的更多地告诉你你的过程在做什么。ProcMon 对于更高级别的进程信息也非常有用。

于 2013-02-07T10:40:29.940 回答
1

我想我会与大家分享我的最终解决方案。

我将为您省去有关我如何达到此解决方案的无聊细节。可以说,我收到的最好的建议是“首先找出问题所在”。

我最终安装了JRockit来识别哪些代码块占用的 RAM 最多。

在此过程中,需要将 Coldfusion 使用的 JRE 更改为 JRockit 内部的 JRE。

#java.home=D:/Program Files/Java/jdk1.6.0_38/jre
java.home=D:/Program Files/Java/jrockit-jdk1.6.0_37-R28.2.5-4.1.0/jre

我相信这个JRE是由BEA而不是SUN制造的?不要引用我的话。但我需要按如下方式更改我的 java args:

java.args=-server -Xmx1200m -Xms1200m -Xns300m -Xgc:singlecon -Dcoldfusion.rootDir={application.home}/../ -Dcoldfusion.libPath={application.home}/../lib -Dcom.sun.management.jmxremote.port=53578 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

我打开了一个随机端口,JRockit 可以使用它来分析 JVM 堆的使用情况。它为我指明了几段代码的方向,我永远不会认为这是有问题的。

但是,我也一直在修改 RAM 设置,发现 1200m 似乎工作得很好。

经验教训:并非所有 JRE 都是平等的。

于 2013-02-11T07:59:40.980 回答