Невозможно назначить дополнительную память для Coldfusion JVM

Добрый день,

Я запускаю Coldfusion 8 MX на 32-битном сервере Windows 2003 с 4 ГБ ОЗУ (2 ГБ всегда бесплатно), но я не могу назначить JVM намного больше 550 МБ.

Я уже отправил этот вопрос, но он стал слишком длинным и запутанным из-за всех моих правок. Ближе всего к его запуску я подошел, когда я установил -Xmn, он работал в течение 10 минут, прежде чем вылетел. После сбоя он больше не запускался с 1024 м, даже с теми же аргументами.

Эти журналы сбоев относятся к Java 1.6.0_38. Я пробовал с Java 5, и он дает тот же результат. Я даже не могу запустить CF8 с Java 7 (это отдельная проблема).

Мне нужно назначить JVM больше ОЗУ, чтобы CF не продолжал давать сбой при большой нагрузке, поэтому любое понимание этого поведения будет оценено по достоинству.

Аргументы Java:

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

person M Lamb    schedule 06.02.2013    source источник
comment
Это, вероятно, здесь не по теме, и его следует задать на serverfault.com   -  person BKK    schedule 07.02.2013
comment
Кто-то упомянул об этом в прошлый раз, и ответ был таким: «Этот сайт недостаточно обслуживается людьми из Coldfusion». Я просто надеюсь на ответ, вот и все.   -  person M Lamb    schedule 07.02.2013


Ответы (2)


Вы работаете на 32-битной виртуальной машине, что накладывает некоторые ограничения на размер кучи. Я не лучший специалист в мире по этому поводу, поэтому вам, возможно, придется продолжить поиск в Google, чтобы подтвердить / прояснить некоторые из этих моментов.

У вас есть лимит памяти только в 2 гигабайта на процесс, поэтому у вас есть несколько вещей, которые нужно учесть:

  • Твоя куча. Это 1 гиг в приведенном выше примере
  • Ваш пермский генерал (который, как мне кажется, в куче не хранится). Это 256 мегабайт.
  • Стековая память: у каждого потока есть стек, который в приведенном выше примере составляет не менее мегабайта. Умножьте количество потоков на 1 мегабайт и прибавьте к указанным выше 1,25 гигабайта.
  • Собственный код Java. Код и внутренняя память JVM должны быть загружены или отображены в пространство памяти.
  • Другие библиотеки DLL, такие как функциональность Windows (ntdll.dll и MSVCR71.dll), а также я считаю, что антивирус и различные другие хлам могут быть отображены.

Я считаю, что у вас могут возникнуть проблемы с распределением памяти, если библиотеки DLL сопоставлены с ячейками памяти по всему вашему 2-гигабайтному пространству, вы получите своего рода фрагментацию, при которой нет доступного большого непрерывного блока памяти.

Подсчитайте количество активных потоков (проверьте бит, который вам пришлось вырезать из дампов выше) и посмотрите, сколько вмятин осталось в вашей памяти. В нашем приложении используется -Xss256k, чтобы уменьшить размер стека потоков до 256 КБ, и мы протестировали это в масштабе и при нагрузке, и оно хорошо работает для нашего приложения, но вы захотите протестировать свое собственное приложение.

После сбоя, когда CF вообще не запускается, запустится ли он с более низким значением -Xmx?

Попробуйте использовать инструмент VMMap.exe из SysInternals. Это покажет вам больше, чем вы когда-либо хотели знать о том, что делает ваш процесс. ProcMon также очень полезен для получения информации о процессах более высокого уровня.

person barnyr    schedule 07.02.2013
comment
Спасибо, я разберусь. - person M Lamb; 08.02.2013

Я думал, что поделюсь своим окончательным решением со всеми вами.

Я избавлю вас от скучных подробностей о том, как я пришел к этому решению. Достаточно сказать, что лучший совет, который я получил, был: «Сначала выясни, в чем проблема».

В итоге я установил JRockit как средство определения того, какие части код пожирает больше всего ОЗУ.

В процессе этого было необходимо изменить JRE, используемую Coldfusion, на внутреннюю JRockit.

#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 следующим образом:

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 и обнаружил, что 1200 м, похоже, работает вполне нормально.

Извлеченный урок: не все JRE созданы равными.

person M Lamb    schedule 11.02.2013
comment
Хороший, рад, что ты разобрался. Спасибо, что нашли время написать и о своем решении. - person barnyr; 11.02.2013