soffice utilise à 100% la CPU

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

soffice utilise à 100% la CPU

Hello,

J'ai soffice.bin qui tourne à 100% depuis un moment sur un serveur RHEL 5.6, Alfresco 3.4D avec Mysql.
Je pense que cela dure longtemps car il y a eu un import massif ou un énorme document a été ajouté…
Comment puis-je avoir des détails sur les fichiers avec lesquels soffice travaille actuellement ? Est-ce possible que soffice soit "planté" ?

top - 10:21:46 up 5 days, 20:28,  1 user,  load average: 1.00, 1.15, 1.19
Tasks: 102 total,   1 running, 101 sleeping,   0 stopped,   0 zombie
Cpu(s): 32.6%us,  0.4%sy,  0.0%ni, 66.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3865620k total,  3769020k used,    96600k free,   162500k buffers
Swap:  4192956k total,       80k used,  4192876k free,  1050224k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
3242 alfresco  15   0  960m 405m  76m S 97.3 10.7   5168:27 soffice.bin
    1 root      15   0 10372  700  584 S  0.0  0.0   0:00.25 init
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:02.29 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.01 ksoftirqd/0
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:02.31 migration/1

ps aux

ps aux | grep soffice.bin
alfresco  3242 61.3 10.7 983072 415312 ?       Sl   Nov09 5173:28 /opt/Alfresco/openoffice/program/soffice.bin -accept=socket,host=127.0.0.1,port=8100;urp;StarOffice.ServiceManager -env:UserInstallation=file:///opt/Alfresco/alf_data/oouser -nologo -headless -nofirststartwizard -nocrashrep -norestore
root      9712  0.0  0.0  61216   748 pts/1    S+   10:27   0:00 grep soffice.bin

Hotthread
[alfresco@ged~]$ /opt/Alfresco/java/bin/java -classpath /opt/Alfresco/java/lib/tools.jar:/opt/installation/HotThread.jar hotthread.Main 2562

15.0% CPU Usage by Thread 'RMI TCP Connection(3379)-127.0.0.1'
  10/10 snapshots sharing following 32 elements
    sun.management.ThreadImpl.getThreadInfo0(Native Method)
    sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:145)
    sun.reflect.GeneratedMethodAccessor2802.invoke(Unknown Source)
    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.GeneratedMethodAccessor2776.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 'main'
  10/10 snapshots sharing following 13 elements
    java.net.PlainSocketImpl.socketAccept(Native Method)
    java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
    java.net.ServerSocket.implAccept(ServerSocket.java:453)
    java.net.ServerSocket.accept(ServerSocket.java:421)
    org.apache.catalina.core.StandardServer.await(StandardServer.java:389)
    org.apache.catalina.startup.Catalina.await(Catalina.java:662)
    org.apache.catalina.startup.Catalina.start(Catalina.java:614)
    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)
    org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

0.0% CPU Usage by Thread 'Reference Handler'
  10/10 snapshots sharing following 3 elements
    java.lang.Object.wait(Native Method)
    java.lang.Object.wait(Object.java:485)
    java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)

Merci bien.
2 Replies
rguinot
Customer

Re: soffice utilise à 100% la CPU

Quelle version d'openoffice utilisez vous ? Peut être bénéfique de mettre à jour OOo.

Possible de voir les fichiers "ouverts" par le process soffice avec lsof, dans votre cas :

lsof +p 3242

Aussi, JODConverter est disponible en version Entreprise comme "proxy" vers openoffice, avec la possibilité de gérer une sorte de pool de connexions vers Open Office, avec recyclage régulier des connexions, timeout des transformations si elles prennent trop de temps etc …. En version community, il vous faudra réaliser cette intégration vous même si vous voulez en bénéficier.

Postez également un thread dump (jstack ou kill -3) pour voir quel codepath a declenché l'appel à OOo.
dranakan
Active Member

Re: soffice utilise à 100% la CPU

Merci bien rguinot,

J'utilise la version d'OpenOffice de base livrée dans le kit 3.4D Linux 64 bits.

J'ai été forcé de redémarrer alfresco et tuer soffice.bin (les users ne pouvaient plus supprimer de documents… les transactions à mysql étaient relancées à tout moment sans pouvoir aboutir… causé par le manque de ressource je pense)…

J'ai installé un script qui m'avertit si la CPU est utilisée de façon excessive… j'appliquerai vos conseils et les posterai ici dès que cela se reproduit…