You are not logged in.
Pages: 1
Voici l'erreur que nous avons rencontré:
home/cms/Ametys_CMS/application/v1_0_1/cms/WEB-INF/data/administrator/system.xml (Too many open files)
java.io.FileNotFoundException: /home/cms/Ametys_CMS/application/v1_0_1/cms/WEB-INF/data/administrator/system.xml (Too many open files)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at org.ametys.runtime.plugins.core.administrator.system.SystemHelper.isSystemAnnouncementAvailable(SystemHelper.java:59)
at org.ametys.runtime.plugins.core.administrator.system.SystemAnnouncementGenerator.generate(SystemAnnouncementGenerator.java:49)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:579)
at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:280)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:481)
at org.apache.cocoon.components.source.impl.SitemapSource.getInputStream(SitemapSource.java:267)
at org.ametys.runtime.plugins.core.dispatcher.DispatchGenerator._dispatching(DispatchGenerator.java:137)
at org.ametys.runtime.plugins.core.dispatcher.DispatchGenerator.generate(DispatchGenerator.java:89)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:579)
at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(Ab
...
Voici la solution:
Il faut augmenter le nombre max de fichiers ouverts
Il faut mettre dans le fichier /etc/security/limits.conf
* - nofile 20000
root - nofile 20000
A savoir que "-" contient hard et soft
Puis il faut faire un restart complet.
Et redémarrer tomcat après le restart système car la modification n'est pas prise en compte lorsque tomcat démarre en même temps que le serveur. Si quelqu'un à la solution, je suis preneur.
Pour savoir la valeur utilisée par le CMS:
Créer un fichier /tmp/test.sh
ulimit -n >> /tmp/test.log
Lorsqu'on execute le script nous devons avoir 20000 dans /tmp/test.log
Dans la console JCR (http://xxxxx/_repository/index.html)
var p = Packages.java.lang.Runtime.getRuntime().exec("/tmp/test.sh");
var s = p.waitFor();
println(org.apache.commons.io.IOUtils.toString(p.getErrorStream()));
println(org.apache.commons.io.IOUtils.toString(p.getInputStream()));
En executant le script dans l'environnement de tomcat on peut connaitre la valeur utilisée. Normalement dans le fichier /tmp/test.log on obtient 20000. Si on obtient autre chose (1024) c'est que la modification n'est pas utilisée par Tomcat.
Offline
Quelques informations complémentaires
# cat /proc/sys/fs/file-nr
3391 969 52427
| | |
| | |
| | maximum open file descriptors
| total free allocated file descriptors
total allocated file descriptors
(the number of file descriptors allocated since boot)
Offline
Pour connaitre les fichiers ouverts par un process :
lsof -p <Java PID>
Pour obtenir le nombre de fichiers ouverts:
lsof -p <Java PID> | wc –l
Pour connaitre le PID des process java:
ps -f | grep java
Pour extraire le PID: (dans le cas ou il y a un seul process java, sinon il faut modifier le grep)
ps -e | grep java | cut -f1 -d ' '
Sinon voici une autre solution:
PROCESS_NAME="tomcat-cms"
ps -ef | grep java | grep ${PROCESS_NAME} | cut -c10-14
Last edited by fred.ravetier (07/09/2012 09:12:43)
Offline
Pages: 1