|  | <?xml version='1.0' encoding='ISO-8859-1' ?> | 
|  | <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd"> | 
|  | <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> | 
|  | <!-- English Revision: 151408 --> | 
|  | <!-- French translation by Vincent Deffontaines, review by alain B --> | 
|  |  | 
|  | <!-- | 
|  | Copyright 2005 The Apache Software Foundation or its licensors, as | 
|  | applicable. | 
|  |  | 
|  | Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | you may not use this file except in compliance with the License. | 
|  | You may obtain a copy of the License at | 
|  |  | 
|  | http://www.apache.org/licenses/LICENSE-2.0 | 
|  |  | 
|  | Unless required by applicable law or agreed to in writing, software | 
|  | distributed under the License is distributed on an "AS IS" BASIS, | 
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | See the License for the specific language governing permissions and | 
|  | limitations under the License. | 
|  | --> | 
|  |  | 
|  | <manualpage metafile="fd-limits.xml.meta"> | 
|  | <parentdocument href="./">Serveurs Virtuels</parentdocument> | 
|  | <title>Limites des descripteurs de fichiers</title> | 
|  |  | 
|  | <summary> | 
|  |  | 
|  | <p>Quand de nombreux serveurs virtuels sont créés, Apache peut | 
|  | dépasser les limites en descripteurs de fichiers ('file descriptors', | 
|  | également appelés <cite>gestionnaires de fichiers</cite>) si chacun | 
|  | des serveurs virtuels utilise ses propres fichiers journaux. Le | 
|  | nombre total de descripteurs de fichiers utilisés par Apache est | 
|  | d'un par fichier journal, un pour chacune des autres directives | 
|  | de fichiers journaux, plus un nombre constant compris entre 10 et 20 | 
|  | pour son fonctionnement interne. Les systèmes d'exploitation Unix | 
|  | limitent le nombre de descripteurs de fichiers utilisables par | 
|  | processus ; une valeur courante pour cette limite est de 64, et | 
|  | cette valeur peut le plus souvent être augmentée.</p> | 
|  |  | 
|  | <p>Apache tente d'accroître cette valeur limite si nécessaire, mais | 
|  | sans y parvenir dans les cas suivants :</p> | 
|  |  | 
|  | <ol> | 
|  | <li>Le système d'exploitation ne permet pas l'utilisation d'appels | 
|  | systèmes <code>setrlimit()</code>.</li> | 
|  |  | 
|  | <li>L'appel <code>setrlimit(RLIMIT_NOFILE)</code> ne fonctionne pas | 
|  | sur votre système d'exploitation (c'est le cas sous Solaris 2.3).</li> | 
|  |  | 
|  | <li>Le nombre de descripteurs de fichiers nécessaires à Apache | 
|  | dépasse la limite physique du matériel.</li> | 
|  |  | 
|  | <li>Le système impose d'autres limites sur l'utilisation des | 
|  | descripteurs de fichiers, comme par exemple une limite sur les | 
|  | flux stdio, utilisables uniquement sur les descripteurs de | 
|  | fichiers inférieurs à 256. (sous Solaris 2).</li> | 
|  | </ol> | 
|  |  | 
|  | <p>En cas de problème, Vous pouvez :</p> | 
|  |  | 
|  | <ul> | 
|  | <li>Réduire le nombre de fichiers journaux, en ne spécifiant | 
|  | aucun fichier journal dans les sections | 
|  | <directive type="section" module="core">VirtualHost</directive>, | 
|  | en donc en envoyant les informations aux fichiers journaux du | 
|  | serveur principal (Voir <a href="#splitlogs">Éclatement des | 
|  | fichiers journaux</a> ci-dessous pour plus d'informations sur | 
|  | cette possibilité).</li> | 
|  |  | 
|  | <li> | 
|  | Dans les cas 1 ou 2 (évoqués ci-dessus), augmentez la limite sur | 
|  | les descripteurs de fichiers avant le démarrage d'Apache, au | 
|  | moyen d'un script comme | 
|  |  | 
|  | <example> | 
|  | <code>#!/bin/sh<br /> | 
|  | ulimit -S -n 100<br /> | 
|  | exec httpd</code> | 
|  | </example> | 
|  | </li> | 
|  | </ul> | 
|  |  | 
|  | <!-- the document misc/descriptors.xml does not exist yet in 2.1 | 
|  | <p>Veuillez noter que le document | 
|  | <a href="../misc/descriptors.html">Descripteurs et Apache</a> | 
|  | contient plus de détails concernant les problèmes de descripteurs | 
|  | de fichiers et comment les résoudre en fonction de votre système | 
|  | d'exploitation.</p> | 
|  | --> | 
|  |  | 
|  | </summary> | 
|  |  | 
|  | <section id="splitlogs"><title>Éclatement des fichiers journaux</title> | 
|  |  | 
|  | <p>Lorsque vous choisissez d'enregistrer les informations émanant de | 
|  | plusieurs serveurs virtuels dans un même fichier journal, vous voudrez | 
|  | ensuite pouvoir scinder ces informations à des fins de statistiques, par | 
|  | exemple, sur les différents serveurs virtuels. Il est possible de procéder | 
|  | de la manière suivante :</p> | 
|  |  | 
|  | <p>Tout d'abord, vous devez ajouter le nom du serveur virtuel à chaque | 
|  | entrée du journal. Ceci se paramètre au moyen de la directive | 
|  | <directive module="mod_log_config"> LogFormat</directive> et de la | 
|  | variable <code>%v</code>. Ajoutez cette variable au début de la chaîne | 
|  | de définition du format de journalisations :</p> | 
|  |  | 
|  | <example> | 
|  | LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost<br /> | 
|  | CustomLog logs/multiple_vhost_log vhost | 
|  | </example> | 
|  |  | 
|  | <p>Cette configuration va provoquer la création d'un fichier de | 
|  | journalisation au format standard (CLF : 'Common Log Format'), mais dont | 
|  | chaque ligne débutera par le nom canonique du serveur virtuel (spécifié | 
|  | par la directive <directive module="core">ServerName</directive>). | 
|  | (Voir <directive module="mod_log_config">Formats de journalisation | 
|  | personnalisés</directive> pour d'autres informations sur la | 
|  | personnalisation des fichiers journaux.)</p> | 
|  |  | 
|  | <p>Au moment de séparer les informations du fichier journal en un fichier | 
|  | par serveur virtuel, le programme <code> | 
|  | <a href="../programs/other.html">split-logfile</a></code> peut être | 
|  | utilisé. Ce programme peut être trouvé dans le répertoire | 
|  | <code>support</code> de la distribution d'Apache.</p> | 
|  |  | 
|  | <p>Exécutez ce programme au moyen de la commande :</p> | 
|  |  | 
|  | <example> | 
|  | split-logfile < /logs/multiple_vhost_log | 
|  | </example> | 
|  |  | 
|  | <p>Une fois exécuté avec le nom du fichier contenant tous les journaux, | 
|  | ce programme va générer un fichier pour chacun des serveurs virtuels | 
|  | qui apparaît dans le fichier d'entrée. Chaque fichier en sortie est | 
|  | nommé <code>nomduserveur.log</code>.</p> | 
|  |  | 
|  | </section> | 
|  | </manualpage> | 
|  |  |