Ancestris - Forum

Ancestris Support => FRANÇAIS => Topic started by: nominoe31 on April 16, 2022, 08:24:59

Title: [Résolu] CPU à 100%
Post by: nominoe31 on April 16, 2022, 08:24:59
Bonjour

Depuis quelques jours, dès que j'associe des sources (pdf ou jpg stocké en local) dans Ancestris, le processeur passe à 100% d'utilisation. Une fois les manips réalisées, la charge ne retombe pas, je dois alors relancer l'application pour retrouver un fonctionnement normal.

(https://www.pyrenees360.fr/Divers/CPU%20Ancestris%201.png)

(https://www.pyrenees360.fr/Divers/CPU%20Ancestris%202.png)

Nominoe31

Version d'Ancestris :  12.0.11644
Java :  11.0.14.1+1-Ubuntu-0ubuntu1.20.04 - /usr/lib/jvm/java-11-openjdk-amd64
Système :  Linux - 5.4.0-88-generic

Title: Re: CPU à 100%
Post by: yannig on April 16, 2022, 11:02:27
Bonjour,

je ne sais si c'est le même problème mais dès que je mets les permaliens de la Loire-Atlantique je constate un sérieux délai avant de reprendre la main. Cela ne me le fait pas avec l'Ille et Vilaine.
Je subodore donc que le premier fait quelque chose qui ne devrait pas se produire normalement. Je n'ai pas investigué plus avant car cela ne bloque pas Ancestris.

Amitiés
Title: Re: CPU à 100%
Post by: Zurga on April 16, 2022, 14:14:16
Vous pouvez commencer par augmenter la mémoire allouée à Ancestris.
Visiblement, vous avez alloué uniquement 1Go à Ancestris. (voir les préférences : https://docs.ancestris.org/books/mode-demploi/page/pr%C3%A9f%C3%A9rences-ac1 )
Le langage Java qui sert pour Ancestris ne dépasse jamais la mémoire qui lui a été indiquée comme possible à utiliser.
Quand il n'y a pas assez de mémoire pour faire ce qu'il veut, le programme essaie d'en libérer et il le fait souvent.
C'est une opération gourmande en CPU, d'où ce que vous constatez.

Quand vous mettez une image, cette image est complètement lue et mise en mémoire avant de la réduire pour afficher les vignettes.
De ce fait, plus vous en mettez, plus vous utilisez de mémoire.

@Yannig :
Si ce sont des liens que tu indiques, c'est un autre sujet : le logiciel essaye de se connecter au site distant et de récupérer l'image.
Cela peut prendre du temps en fonction des délais du réseau.

Zurga
Title: Re : CPU à 100%
Post by: nominoe31 on April 16, 2022, 20:24:24
Bonsoir

J'ai alloué 4go de mémoire (j'étais à 1Go précédemment), et j'ai toujours le même souci.

Nominoe31
Title: Re: CPU à 100%
Post by: Zurga on April 16, 2022, 21:32:41
Pourriez-vous afficher la barre "Performance" (Menu "Options"=> "Configurer la barre d'outils" => "Performance")
Vous aurez un affichage direct de la mémoire utilisée par l'application.

Affichez-vous le graphe ?
La vue graphe peut prendre beaucoup de CPU.

Quelles sont vos fenêtres affichées ?

Zurga
Title: Re: CPU à 100%
Post by: nominoe31 on April 17, 2022, 13:48:44
Bonjour

Voici les performances après le lancement :
(https://www.pyrenees360.fr/Divers/Perf%20apres%20lancement.png)

Et après l'ajout de 2 pdf (2 x 300 Ko) :
(https://www.pyrenees360.fr/Divers/Perf%20apres%20import%20pdf.png)

Le graphe n'est pas affiché.

J'ai les onglets Accueil / Carte / Listes et rapports / Liste des Lieux / Arbre dynamique + l'éditeur Cygnus

Nominoe31
Title: Re: CPU à 100%
Post by: Zurga on April 17, 2022, 18:10:53
Le problème n'est donc pas lié à la mémoire.
Au moins c'est clair.

Dans ce que vous affichez comme fenêtres, il n'y a pas de problèmes de CPU.
Reste donc que l'affichage des pdf avec la vignette qui est un changement récent.

Vos pdf sont gros, avec une grosse résolution ?

Zurga
Title: Re: CPU à 100%
Post by: nominoe31 on April 17, 2022, 21:14:04
Bonsoir

Mes pdf font entre 200ko et 400ko avec la résolution par défaut des AD 49. (Exemple de pdf (https://www.pyrenees360.fr/Divers/1649%20LEMOINE%20Renee%20Fontevraud.pdf))

Il y a le même souci avec les jpg (1 à 2Mo)

Nominoe31
Title: Re: CPU à 100%
Post by: Zurga on April 18, 2022, 16:50:29
J'ai essayé votre fichier pdf.
Cela n'a rien provoqué en termes d'utilisation CPU.
J'ai essayé plusieurs version de Java pour voir si cela avait un impact, sans voir de changements mesurables.
Maintenant je ne suis pas sur Ubuntu, peut-être que cela a un impact, mis je ne vois pas pourquoi.

Je vous avoue ne pas comprendre ce qui peut provoquer l'usage excessif du CPU sur votre ordinateur.

Zurga
Title: Re: CPU à 100%
Post by: claude41 on April 18, 2022, 17:17:35
Bonjour,

Avec Ubuntu -à jour- sur un antique portable de 18 ans, Ancestris 12 avec 2 G ne ma pose pas de problème de CPU (bien sur il est bien plus lent qu'avec mon autre portable i7 et Win 10).

J'ai cependant 1588 médias en JPG + 423 JPG pour les médias individus et aussi 43 médias en PDF.

Claude
Title: Re: CPU à 100%
Post by: nominoe31 on April 18, 2022, 19:58:45
Bonsoir

Je viens de voir que openjdk-11-jre a été mis à jour le 27 mars dernier, la date correspond avec mes soucis. J'ai fait une réinstallation de l'application avec purge qui n'a rien changé.

@ claude41
Êtes-vous sur Ubuntu 20.04? Car chaque version d'Ubuntu a un package différent pour openjdk.

@ claude41 & Zurga
Je vous remercie d'avoir cherché la cause de mon souci.


Bonne soirée
Title: Re: CPU à 100%
Post by: Zurga on April 18, 2022, 19:59:49
Vous pouvez essayer avec une autre version de Java ?
Comme la version 17 ?

Zurga
Title: Re : CPU à 100%
Post by: nominoe31 on April 18, 2022, 21:56:42
J'avais essayé avec openjdk 16 & 17, mais Ancestris plantait au lancement.

Là je viens de tenter avec openjdk 13, et tout ce passe bien. Encore merci pour votre aide.


Nominoe31
Title: Re: CPU à 100%
Post by: Zurga on April 18, 2022, 23:04:27
Si Ancestris plante au lancement avec Java 16 et 17, c'est qu'il manque des options de lancement.
Vérifiez le fichier ancestris.conf dans le répertoire ancestris/etc
Comparez avec la version en ligne sur le site.
Vous devriez avoir une ligne "default_options" très longue avec de nombreux modules accessibles ( "-J--add-opens" et "-J--add-exports")
Si vous n'avez pas cela, Java 16 et plus ne savent pas quels modules utiliser et le logiciel plante.

Zurga
Title: Re: CPU à 100%
Post by: claude41 on April 19, 2022, 06:54:16
Bonjour,

Mon Xubuntu est identifié 18.04 : ce serait la dernière version disponible pour l'architecture i386 de mon vieux portable.

Claude
Title: Re : CPU à 100%
Post by: nominoe31 on April 20, 2022, 07:19:36
Bonjour

J'avais bien des paramètres derrière default_options, là j'ai repris ceux dispos dans la version quotidienne d'Ancestris, et ça plante toujours au lancement.

16
Code: [Select]

 
Identifying path and application name:
   progdir=.
   APPNAME=ancestris
 
Checking configuration file on progdir/../etc:
   Configuration file found. Executing it.
 
Identifying userdir from configuration file:
   userdir(from conf file)=/home/****/.ancestris/trunk
   userdir(after argument overwrite)=/home/****/.ancestris/trunk
 
Checking configuration file on userdir/etc:
   Configuration file found. Executing It.
 
Checking if jdkhome is defined: (for MacOS, /Contents/Home should be at the end)
   jdkhome=
   jdkhome not defined.
 
Checking JAVA presence
   Linux...
================================================================
openjdk version "16.0.1" 2021-04-20
OpenJDK Runtime Environment (build 16.0.1+9-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 16.0.1+9-Ubuntu-120.04, mixed mode, sharing)
================================================================
Found JAVA executable in PATH
JAVA is installed.
JAVA version is more than 1.8
jdkhome was left empty.
 
Defining clusters:
   clusters=/media/data1/Download/ancestris/ancestris:/media/data1/Download/ancestris/harness:
 
Defining exec command:
   nbexec=./../platform/lib/nbexec
 
Running exec command:
   => Linux system detected...
 
Command to be executed:
 
exec /bin/bash './../platform/lib/nbexec'             --jdkhome ''             --clusters '/media/data1/Download/ancestris/ancestris:/media/data1/Download/ancestris/harness:'             --userdir '/home/****/.ancestris/trunk'             -J-Xmx4g --branding ancestris --fontsize 12 -J-Xms96m             
 
avr. 20, 2022 8:12:09 AM org.netbeans.ProxyURLStreamHandlerFactory register
GRAVE: No way to find original stream handler for jar protocol
java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.net.URLStreamHandler java.net.URL.handler accessible: module java.base does not "opens java.net" to unnamed module @4434095f
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
        at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
        at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
        at org.netbeans.ProxyURLStreamHandlerFactory.register(ProxyURLStreamHandlerFactory.java:59)
        at org.netbeans.JarClassLoader.<clinit>(JarClassLoader.java:117)
        at org.netbeans.MainImpl.execute(MainImpl.java:153)
        at org.netbeans.MainImpl.main(MainImpl.java:60)
        at org.netbeans.Main.main(Main.java:58)

java.lang.Error: factory already defined
        at java.base/java.net.URL.setURLStreamHandlerFactory(URL.java:1259)
        at org.eclipse.osgi.framework.internal.core.Framework.installURLStreamHandlerFactory(Framework.java:1765)
        at org.eclipse.osgi.framework.internal.core.Framework.<init>(Framework.java:232)
        at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.internalInit(EquinoxLauncher.java:67)
        at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.init(EquinoxLauncher.java:37)
        at org.eclipse.osgi.launch.Equinox.init(Equinox.java:178)
        at org.netbeans.modules.netbinox.Netbinox.init(Netbinox.java:63)
        at org.netbeans.core.netigso.Netigso.prepare(Netigso.java:146)
        at org.netbeans.NetigsoHandle.turnOn(NetigsoHandle.java:115)
        at org.netbeans.ModuleManager.enable(ModuleManager.java:1441)
        at org.netbeans.ModuleManager.enable(ModuleManager.java:1254)
        at org.netbeans.core.startup.ModuleList.installNew(ModuleList.java:315)
        at org.netbeans.core.startup.ModuleList.trigger(ModuleList.java:251)
        at org.netbeans.core.startup.ModuleSystem.restore(ModuleSystem.java:298)
        at org.netbeans.core.startup.Main.getModuleSystem(Main.java:156)
        at org.netbeans.core.startup.Main.getModuleSystem(Main.java:125)
        at org.netbeans.core.startup.Main.start(Main.java:282)
        at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:98)
        at java.base/java.lang.Thread.run(Thread.java:831)

17
Code: [Select]

 
Identifying path and application name:
   progdir=.
   APPNAME=ancestris
 
Checking configuration file on progdir/../etc:
   Configuration file found. Executing it.
 
Identifying userdir from configuration file:
   userdir(from conf file)=/home/****/.ancestris/trunk
   userdir(after argument overwrite)=/home/***/.ancestris/trunk
 
Checking configuration file on userdir/etc:
   Configuration file found. Executing It.
 
Checking if jdkhome is defined: (for MacOS, /Contents/Home should be at the end)
   jdkhome=
   jdkhome not defined.
 
Checking JAVA presence
   Linux...
================================================================
openjdk version "17.0.2" 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17.0.2+8-Ubuntu-120.04, mixed mode, sharing)
================================================================
Found JAVA executable in PATH
JAVA is installed.
JAVA version is more than 1.8
jdkhome was left empty.
 
Defining clusters:
   clusters=/media/data1/Download/ancestris/ancestris:/media/data1/Download/ancestris/harness:
 
Defining exec command:
   nbexec=./../platform/lib/nbexec
 
Running exec command:
   => Linux system detected...
 
Command to be executed:
 
exec /bin/bash './../platform/lib/nbexec'             --jdkhome ''             --clusters '/media/data1/Download/ancestris/ancestris:/media/data1/Download/ancestris/harness:'             --userdir '/home/****/.ancestris/trunk'             -J-Xmx4g --branding ancestris --fontsize 12 -J-Xms96m             
 
avr. 20, 2022 8:14:12 AM org.netbeans.ProxyURLStreamHandlerFactory register
GRAVE: No way to find original stream handler for jar protocol
java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.net.URLStreamHandler java.net.URL.handler accessible: module java.base does not "opens java.net" to unnamed module @53c4a559
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
        at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
        at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
        at org.netbeans.ProxyURLStreamHandlerFactory.register(ProxyURLStreamHandlerFactory.java:59)
        at org.netbeans.JarClassLoader.<clinit>(JarClassLoader.java:117)
        at org.netbeans.MainImpl.execute(MainImpl.java:153)
        at org.netbeans.MainImpl.main(MainImpl.java:60)
        at org.netbeans.Main.main(Main.java:58)

java.lang.Error: factory already defined
        at java.base/java.net.URL.setURLStreamHandlerFactory(URL.java:1228)
        at org.eclipse.osgi.framework.internal.core.Framework.installURLStreamHandlerFactory(Framework.java:1765)
        at org.eclipse.osgi.framework.internal.core.Framework.<init>(Framework.java:232)
        at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.internalInit(EquinoxLauncher.java:67)
        at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.init(EquinoxLauncher.java:37)
        at org.eclipse.osgi.launch.Equinox.init(Equinox.java:178)
        at org.netbeans.modules.netbinox.Netbinox.init(Netbinox.java:63)
        at org.netbeans.core.netigso.Netigso.prepare(Netigso.java:146)
        at org.netbeans.NetigsoHandle.turnOn(NetigsoHandle.java:115)
        at org.netbeans.ModuleManager.enable(ModuleManager.java:1441)
        at org.netbeans.ModuleManager.enable(ModuleManager.java:1254)
        at org.netbeans.core.startup.ModuleList.installNew(ModuleList.java:315)
        at org.netbeans.core.startup.ModuleList.trigger(ModuleList.java:251)
        at org.netbeans.core.startup.ModuleSystem.restore(ModuleSystem.java:298)
        at org.netbeans.core.startup.Main.getModuleSystem(Main.java:156)
        at org.netbeans.core.startup.Main.getModuleSystem(Main.java:125)
        at org.netbeans.core.startup.Main.start(Main.java:282)
        at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:98)
        at java.base/java.lang.Thread.run(Thread.java:833)

Nominoe31
Title: Re: CPU à 100%
Post by: Jeannot on April 20, 2022, 07:32:55
Bonjour,

Sous Kubuntu 20.04 64bit
Version d'Ancestris :  12.0.11644
Java :  17.0.2+8-Ubuntu-120.04 - /usr/lib/jvm/java-17-openjdk-amd64
Système :  Linux - 5.13.0-40-generic - jeannot
Répertoire utilisateur :  /home/jeannot/.ancestris/trunk
Mémoire allouée 4Go

Process 3652 - java
Summary
The process java (with pid 3652) is using approximately 1.1 GB of memory.
It is using 1.1 GB privately, and a further 12.8 MB that is, or could be, shared with other programs.
Dividing up the shared memory between all the processes sharing that memory we get a reduced shared memory usage of 590.0 KB. Adding that to the private usage, we get the above mentioned total memory footprint of 1.1 GB.
Library Usage
The memory usage of a process is found by adding up the memory usage of each of its libraries, plus the process's own heap, stack and any other mappings, plus the stack of its 41 threads.
Private
more
1141484 KB   [heap]
15596 KB   /usr/lib/jvm/java-17-openjdk-amd64/lib/server/libjvm.so
13116 KB   /usr/lib/jvm/java-17-openjdk-amd64/lib/server/classes.jsa
5540 KB   /usr/lib/jvm/java-17-openjdk-amd64/lib/modules
764 KB   /usr/lib/jvm/java-17-openjdk-amd64/lib/libawt.so
Shared
more
1552 KB   /usr/lib/x86_64-linux-gnu/libc-2.31.so
840 KB   /var/cache/fontconfig/69524576-40f3-4501-95a4-ae1505b838d4-le64.cache-7
820 KB   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
792 KB   /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.20600.4
792 KB   /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
Totals
Private   1179572 KB   (= 30896 KB clean + 1148676 KB dirty)
Shared   13060 KB   (= 13036 KB clean + 24 KB dirty)
Rss   1192632 KB   (= Private + Shared)
Pss   1180162 KB   (= Private + Shared/Number of Processes)
Swap   0 KB

Aucun problème

Amicalement
Jeannot
Title: Re: CPU à 100%
Post by: Zurga on April 20, 2022, 09:13:02
Il manque des paramètres pour permettre à Java 16 et 17 de fonctionner normalement.
La ligne default_options doit ressembler à cela :
default_options="--branding ancestris -J-Xms96m -J-Xmx1g --laf javax.swing.plaf.nimbus.NimbusLookAndFeel -J-XX:+IgnoreUnrecognizedVMOptions -J-XX:+UseStringDeduplication -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.zip.disableMemoryMapping=true -J--add-opens=java.base/java.net=ALL-UNNAMED -J--add-opens=java.base/java.lang.ref=ALL-UNNAMED -J--add-opens=java.base/java.lang=ALL-UNNAMED  -J--add-opens=java.base/java.util=ALL-UNNAMED -J--add-exports=java.base/sun.reflect.annotation=ALL-UNNAMED -J--add-opens=java.prefs/java.util.prefs=ALL-UNNAMED -J--add-exports=java.management/sun.management=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.text=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.plaf.synth=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED -J--add-opens=java.desktop/java.awt=ALL-UNNAMED -J--add-opens=java.desktop/java.awt.event=ALL-UNNAMED -J--add-exports=java.desktop/java.awt.peer=ALL-UNNAMED -J--add-exports=java.desktop/com.sun.beans.editors=ALL-UNNAMED -J--add-exports=java.desktop/sun.swing=ALL-UNNAMED -J--add-exports=java.desktop/sun.awt=ALL-UNNAMED -J--add-exports=java.desktop/sun.awt.im=ALL-UNNAMED -J--add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED -J--add-opens=java.desktop/sun.awt.shell=ALL-UNNAMED -J--add-opens=java.desktop/com.sun.java.swing.plaf.gtk=ALL-UNNAMED -J--add-opens=java.desktop/com.sun.java.swing.plaf.motif=ALL-UNNAMED"

Le plus simple étant de supprimer le fichier ancestris.conf de votre répertoire utilisateur (typiquement dans /home/****/.ancestris/trunk/etc ) et de relancer Ancestris.

Zurga
Title: Re: CPU à 100%
Post by: nominoe31 on April 20, 2022, 19:54:41
Le plus simple étant de supprimer le fichier ancestris.conf de votre répertoire utilisateur (typiquement dans /home/****/.ancestris/trunk/etc ) et de relancer Ancestris.
Ca marche nickel avec la V17.

Merci
Bonne soirée

Nominoe31