Lenteurs après 3 mois d'utilisation

cancel
Showing results for 
Search instead for 
Did you mean: 
dranakan
Active Member

Lenteurs après 3 mois d'utilisation

Hello,

Je constate des problèmes de lenteur sur une installation Alfresco3.4D, Redhat 5.6 64 bits avec MySql.

Pour exemple : un Webscript qui fait une tâche normalement en 1seconde le fait en 6 secondes.
Si je redémarre Alfresco, tout revient d'en l'ordre. C'est la deuxième fois que le problème apparaît… toujours après 3 mois d'utilisation…
Je n'ai rien de particulier dans les logs…

Hotthread quand Alfresco est lent
/opt/Alfresco/java/bin/java -classpath /opt/Alfresco/java/lib/tools.jar:/opt/installation/HotThread.jar hotthread.Main 12218
27.0% CPU Usage by Thread 'RMI TCP Connection(30996)-127.0.0.1'
  10/10 snapshots sharing following 33 elements
    sun.management.ThreadImpl.getThreadInfo0(Native Method)
    sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:145)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:167)
    com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:96)
    com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:33)
    com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
    com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
    com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
    javax.management.StandardMBean.invoke(StandardMBean.java:391)
    com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
    javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1426)
    javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
    javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)
    javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1359)
    javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
    sun.reflect.GeneratedMethodAccessor8799.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
    sun.rmi.transport.Transport$1.run(Transport.java:159)
    java.security.AccessController.doPrivileged(Native Method)
    sun.rmi.transport.Transport.serviceCall(Transport.java:155)
    sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    java.lang.Thread.run(Thread.java:619)

0.0% CPU Usage by Thread 'http-8080-113'
  10/10 snapshots sharing following 5 elements
    java.lang.Object.wait(Native Method)
    java.lang.Object.wait(Object.java:485)
    org.apache.tomcat.util.net.AprEndpoint$Worker.await(AprEndpoint.java:1511)
    org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1536)
    java.lang.Thread.run(Thread.java:619)

0.0% CPU Usage by Thread 'http-8080-45'
  10/10 snapshots sharing following 5 elements
    java.lang.Object.wait(Native Method)
    java.lang.Object.wait(Object.java:485)
    org.apache.tomcat.util.net.AprEndpoint$Worker.await(AprEndpoint.java:1511)
    org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1536)
    java.lang.Thread.run(Thread.java:619)

Mémoire quand Alfresco est lent
free -m             total       used       free     shared    buffers     cached
Mem:          3775       3458        316          0         47        342
-/+ buffers/cache:       3068        706
Swap:         4094       1770       2324

Mémoire après redémarrage
free -m
             total       used       free     shared    buffers     cached
Mem:          3775       2938        836          0        105        614
-/+ buffers/cache:       2219       1555
Swap:         4094       1075       3018

Paramètre Tomcat
export JAVA_OPTS="-XX:PermSize=256m -XX:MaxPermSize=256m -Xms2048m -Xmx2500m -Dalfresco.home=/opt/Alfresco -Dcom.sun.management.jmxremote -Dhttp.proxyHost=…-Dhttp.proxyPort=8008 -Dhttp.proxyUser=…-Dhttp.proxyPassword=….-Dhttp.nonProxyHosts=*.entreprise…..ch|localhost"

Merci bien.
1 Reply
rguinot
Customer

Re: Lenteurs après 3 mois d'utilisation

Vous ne donnez pas assez d'informations pour en déterminer la cause :
- utilisation cpu (system time, user time)
- logs du GC
- thread dumps
- eventuellement snapshot visualGC lorsqu'alfresco "est lent".
- La base de données est elle sur le même serveur ? quelle est sa config ?

Votre "hotthreads" ne révèle rien de significatif. Soit le dump n'est pas pris au bon moment, soit la 'lenteur' est due à un facteur non-applicatif (exemple : full GC, base de données, IO, …)

A noter que votre machine swappe de manière significative. je vous suggère de réduire la taille de la heap, et de réduire la swappiness du kernel (sans doute par défaut à 60, 10 serait plus raisonnable).