AnsweredAssumed Answered

JVM Heap size

Question asked by onyme on Nov 2, 2010
Latest reply on Nov 19, 2010 by rguinot
Bonjour,

Je suis en test sur la 3.4a déployée de manière standard sans modification (VMware - OS de la VM : Open Suse 10.2).
Alfresco se déploie bien la première fois et lors d'un reboot de la machine j'ai un symptôme de dépassement de heap size :

2 nov. 2010 12:44:41 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /opt/alfresco/alf/java/jre/lib/i386/client:/opt/alfresco/alf/java/jre/lib/i386:/opt/alfresco/alf/java/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib
2 nov. 2010 12:44:42 org.apache.coyote.http11.Http11Protocol init
INFO: Initialisation de Coyote HTTP/1.1 sur http-8080
2 nov. 2010 12:44:42 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2281 ms
2 nov. 2010 12:44:42 org.apache.catalina.core.StandardService start
INFO: Démarrage du service Catalina
2 nov. 2010 12:44:42 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.26
2 nov. 2010 12:44:42 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Déploiement du descripteur de configuration alfresco.xml
2 nov. 2010 12:44:45 org.apache.catalina.core.StandardContext addApplicationListener
INFO: The listener "org.apache.myfaces.webapp.StartupServletContextListener" is already configured for this context. The duplicate definition has been ignored.
12:44:59,479  INFO  [alfresco.config.JndiPropertiesFactoryBean] Loading properties file from class path resource [alfresco/repository.properties]
12:44:59,488  INFO  [alfresco.config.JndiPropertiesFactoryBean] Loading properties file from class path resource [alfresco/domain/transaction.properties]
12:44:59,491  INFO  [alfresco.config.JndiPropertiesFactoryBean] Loading properties file from file [/opt/alfresco/alf/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/module/test/alfresco-global.properties]
12:44:59,492  INFO  [alfresco.config.JndiPropertiesFactoryBean] Loading properties file from file [/opt/alfresco/alf/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/module/tests/alfresco-global.properties]
12:44:59,492  INFO  [alfresco.config.JndiPropertiesFactoryBean] Loading properties file from URL [file:/opt/alfresco/alf/tomcat/shared/classes/alfresco-global.properties]
12:44:59,672  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:45:46,382  INFO  [extensions.webscripts.TemplateProcessorRegistry] Registered template processor Repository Template Processor for extension ftl
12:45:46,382  INFO  [extensions.webscripts.ScriptProcessorRegistry] Registered script processor Repository Script Processor for extension js
12:46:16,797  INFO  [domain.schema.SchemaBootstrap] Schema managed by database dialect org.hibernate.dialect.MySQLInnoDBDialect.
12:46:17,928  INFO  [domain.schema.SchemaBootstrap] No changes were made to the schema.
12:46:18,161  INFO  [management.subsystems.ChildApplicationContextFactory] Starting 'sysAdmin' subsystem, ID: [sysAdmin, default]
12:46:18,195  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:46:18,228  INFO  [management.subsystems.ChildApplicationContextFactory] Startup of 'sysAdmin' subsystem, ID: [sysAdmin, default] complete
12:46:22,896  INFO  [management.subsystems.ChildApplicationContextFactory] Starting 'thirdparty' subsystem, ID: [thirdparty, default]
12:46:22,919  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:46:23,171  ERROR [transform.magick.AbstractImageMagickContentTransformerWorker] ImageMagickContentTransformerWorker not available: 10020000 Failed to perform ImageMagick transformation:
Execution result:
   os:         Linux
   command:    [/opt/alfresco/alf/common/bin/convert, /opt/alfresco/alf/tomcat/temp/Alfresco/ImageMagickContentTransformerWorker_init_source_4554777110733567.gif[0], /opt/alfresco/alf/tomcat/temp/Alfresco/ImageMagickContentTransformerWorker_init_target_4986000329671286938.png]
   succeeded:  false
   exit code:  1
   out:       
   err:        .convert.bin: no decode delegate for this image format `/opt/alfresco/alf/tomcat/temp/Alfresco/ImageMagickContentTransformerWorker_init_source_4554777110733567.gif' @ constitute.c/ReadImage/526.
.convert.bin: missing an image filename `/opt/alfresco/
12:46:23,171  INFO  [management.subsystems.ChildApplicationContextFactory] Startup of 'thirdparty' subsystem, ID: [thirdparty, default] complete
12:46:23,171  INFO  [management.subsystems.ChildApplicationContextFactory] Starting 'OOoDirect' subsystem, ID: [OOoDirect, default]
12:46:23,171  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:46:24,003  INFO  [management.subsystems.ChildApplicationContextFactory] Startup of 'OOoDirect' subsystem, ID: [OOoDirect, default] complete
12:46:25,921  INFO  [repo.admin.ConfigurationChecker] The Alfresco root data directory ('dir.root') is: /opt/alfresco/alf/alf_data
12:46:26,090  INFO  [admin.patch.PatchExecuter] Checking for patches to apply …
12:46:27,587  INFO  [admin.patch.PatchExecuter] No patches were required.
12:46:27,601 User:System INFO  [repo.module.ModuleServiceImpl] Found 1 module(s).
12:46:27,754 User:System INFO  [repo.module.ModuleServiceImpl] Starting module 'org.alfresco.module.vti' version 1.2.
12:46:27,788  INFO  [management.subsystems.ChildApplicationContextFactory] Starting 'fileServers' subsystem, ID: [fileServers, default]
12:46:27,922  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:46:30,755  INFO  [management.subsystems.ChildApplicationContextFactory] Starting 'Authentication' subsystem, ID: [Authentication, managed, alfrescoNtlm1]
12:46:30,889  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:46:31,336  INFO  [management.subsystems.ChildApplicationContextFactory] Startup of 'Authentication' subsystem, ID: [Authentication, managed, alfrescoNtlm1] complete
12:46:31,964  INFO  [management.subsystems.ChildApplicationContextFactory] Startup of 'fileServers' subsystem, ID: [fileServers, default] complete
12:46:31,964  INFO  [management.subsystems.ChildApplicationContextFactory] Starting 'imap' subsystem, ID: [imap, default]
12:46:31,987  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:46:32,185  INFO  [management.subsystems.ChildApplicationContextFactory] Startup of 'imap' subsystem, ID: [imap, default] complete
12:46:32,185  INFO  [management.subsystems.ChildApplicationContextFactory] Starting 'email' subsystem, ID: [email, outbound]
12:46:32,297  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:46:32,570  INFO  [management.subsystems.ChildApplicationContextFactory] Startup of 'email' subsystem, ID: [email, outbound] complete
12:46:32,571  INFO  [management.subsystems.ChildApplicationContextFactory] Starting 'email' subsystem, ID: [email, inbound]
12:46:32,593  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:46:32,869  WARN  [springframework.beans.GenericTypeAwarePropertyDescriptor] Invalid JavaBean property 'blockedSenders' being accessed! Ambiguous write methods found next to actually used [public void org.alfresco.email.server.EmailServer.setBlockedSenders(java.util.List)]: [public void org.alfresco.email.server.EmailServer.setBlockedSenders(java.lang.String)]
12:46:32,870  WARN  [springframework.beans.GenericTypeAwarePropertyDescriptor] Invalid JavaBean property 'allowedSenders' being accessed! Ambiguous write methods found next to actually used [public void org.alfresco.email.server.EmailServer.setAllowedSenders(java.util.List)]: [public void org.alfresco.email.server.EmailServer.setAllowedSenders(java.lang.String)]
12:46:32,890  INFO  [management.subsystems.ChildApplicationContextFactory] Startup of 'email' subsystem, ID: [email, inbound] complete
12:46:32,890  INFO  [management.subsystems.ChildApplicationContextFactory] Starting 'googledocs' subsystem, ID: [googledocs, default]
12:46:32,925  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:46:35,168  INFO  [management.subsystems.ChildApplicationContextFactory] Startup of 'googledocs' subsystem, ID: [googledocs, default] complete
12:46:35,195  INFO  [repo.usage.UserUsageTrackingComponent] Enabled - calculate missing user usages …
12:46:35,312  INFO  [repo.usage.UserUsageTrackingComponent] Found 0 users to recalculate
12:46:35,312  INFO  [repo.usage.UserUsageTrackingComponent] … calculated missing usages for 0 users
12:46:35,312  INFO  [management.subsystems.ChildApplicationContextFactory] Starting 'Synchronization' subsystem, ID: [Synchronization, default]
12:46:35,334  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:46:35,580  INFO  [management.subsystems.ChildApplicationContextFactory] Startup of 'Synchronization' subsystem, ID: [Synchronization, default] complete
12:46:35,756  INFO  [service.descriptor.DescriptorService] Alfresco JVM - v1.6.0_18-b07; maximum heap size 247,500MB
12:46:35,756  WARN  [service.descriptor.DescriptorService] Alfresco JVM - WARNING - maximum heap size 247,500MB is less than recommended 512MB
12:46:35,757  INFO  [service.descriptor.DescriptorService] Alfresco started (Community): Current version 3.4.0 (a 3169) schema 4111 - Originally installed version 3.4.0 (a 3169) schema 4111
12:46:35,758  INFO  [management.subsystems.ChildApplicationContextFactory] Starting 'Replication' subsystem, ID: [Replication, default]
12:46:35,874  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
12:46:35,881  INFO  [management.subsystems.ChildApplicationContextFactory] Startup of 'Replication' subsystem, ID: [Replication, default] complete
12:46:37,555  INFO  [module.vti.VtiServer] Vti server started successfully on port: 7070
12:46:44,987 User:System INFO  [extensions.webscripts.AbstractRuntimeContainer] Initialised Repository Web Script Container (in 4898.1523ms)
12:46:44,988  ERROR [web.context.ContextLoader] Context initialization failed
org.alfresco.error.AlfrescoRuntimeException: 10020001 Exception in Transaction.
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:410)
   at org.alfresco.repo.web.scripts.RepoStore$3.doWork(RepoStore.java:389)
   at org.alfresco.repo.web.scripts.RepoStore$3.doWork(RepoStore.java:386)
   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:508)
   at org.alfresco.repo.web.scripts.RepoStore.getDocumentPaths(RepoStore.java:385)
   at org.springframework.extensions.webscripts.DeclarativeRegistry.initWebScripts(DeclarativeRegistry.java:288)
   at org.springframework.extensions.webscripts.DeclarativeRegistry.reset(DeclarativeRegistry.java:178)
   at org.springframework.extensions.webscripts.AbstractRuntimeContainer.reset(AbstractRuntimeContainer.java:226)
   at org.alfresco.repo.web.scripts.RepositoryContainer.init(RepositoryContainer.java:573)
   at org.alfresco.repo.web.scripts.RepositoryContainer.reset(RepositoryContainer.java:547)
   at org.alfresco.repo.web.scripts.RepositoryContainer$4.doWork(RepositoryContainer.java:501)
   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:508)
   at org.alfresco.repo.web.scripts.RepositoryContainer.onApplicationEvent(RepositoryContainer.java:505)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
   at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEvent(SafeApplicationEventMulticaster.java:78)
   at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:294)
   at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:858)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:419)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:192)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
   at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
   at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
   at org.apache.catalina.core.StandardService.start(StandardService.java:519)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.OutOfMemoryError: PermGen space
   at java.lang.ClassLoader.defineClass1(Native Method)
   at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
   at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
   at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
   at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2527)
   at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1010)
   at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483)
   at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
   at org.apache.lucene.queryParser.QueryParser.newWildcardQuery(QueryParser.java:771)
   at org.alfresco.repo.search.impl.lucene.LuceneQueryParser.newWildcardQuery(LuceneQueryParser.java:3392)
   at org.apache.lucene.queryParser.QueryParser.getWildcardQuery(QueryParser.java:889)
   at org.alfresco.repo.search.impl.lucene.LuceneQueryParser.getWildcardQuery(LuceneQueryParser.java:3239)
   at org.alfresco.repo.search.impl.lucene.LuceneQueryParser.getWildcardQuery(LuceneQueryParser.java:3161)
   at org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1309)
   at org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:1211)
   at org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:1168)
   at org.apache.lucene.queryParser.QueryParser.TopLevelQuery(QueryParser.java:1128)
   at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:170)
   at org.alfresco.repo.search.impl.lucene.LuceneQueryParser.parse(LuceneQueryParser.java:308)
   at org.alfresco.repo.search.impl.lucene.ADMLuceneSearcherImpl.query(ADMLuceneSearcherImpl.java:287)
   at org.alfresco.repo.search.impl.lucene.ADMLuceneSearcherImpl.query(ADMLuceneSearcherImpl.java:241)
   at org.alfresco.repo.search.SearcherComponent.query(SearcherComponent.java:67)
   at org.alfresco.repo.search.AbstractSearcherComponent.query(AbstractSearcherComponent.java:53)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
   at net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:80)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
2 nov. 2010 12:46:45 org.apache.catalina.core.StandardContext start
GRAVE: Error listenerStart
2 nov. 2010 12:46:45 org.apache.catalina.core.StandardContext start
GRAVE: Erreur de démarrage du contexte [/alfresco] suite aux erreurs précédentes
2 nov. 2010 12:46:45 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
GRAVE: A web application registered the JBDC driver [org.postgresql.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
2 nov. 2010 12:46:45 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: A web application appears to have started a thread named [DefaultScheduler_Worker-1] but has failed to stop it. This is very likely to create a memory leak.
2 nov. 2010 12:46:45 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: A web application appears to have started a thread named [DefaultScheduler_Worker-2] but has failed to stop it. This is very likely to create a memory leak.

j'ai en particulier :
12:46:35,756  INFO  [service.descriptor.DescriptorService] Alfresco JVM - v1.6.0_18-b07; maximum heap size 247,500MB
12:46:35,756  WARN  [service.descriptor.DescriptorService] Alfresco JVM - WARNING - maximum heap size 247,500MB is less than recommended 512MB

Pour accroitre le heap size j'ai modifié les paramètres du fichier /tomcat/scripts/ctl.sh comme suit
start_tomcat() {
    export JAVA_OPTS="-XX:MaxPermSize=512m -Xms512m -Xmx512m"
    export JAVA_HOME=$JRE_HOME
    $TOMCAT_BINDIR/startup.sh
Or cette modification ne provoque pas l'accroissement attendu.
le document  http://wiki.alfresco.com/wiki/JVM_Tuning ne semble pas indiquer d'autres possibilités.

Pour info les paramètres d'exécution de JRE sont
-Xmx512m

Merci bien de votre coopération.

Outcomes