Files
doc-fr/reference/apcu/ini.xml
George Peter Banyard be9f02ea04 Fix RevCheck for APCU docs
2022-06-29 20:16:59 +01:00

390 lines
14 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 2b5c6c13ce31e8da096cca92b92e11fd4087973b Maintainer: moradZahid Status: ready -->
<!-- Reviewed: no -->
<section xml:id="apcu.configuration" xmlns="http://docbook.org/ns/docbook">
&reftitle.runtime;
&extension.runtime;
<para>
Bien que les réglages par défaut d'APCu fonctionnent correctement sur de nombreuses
installations, il est utile de penser à ajuster ces paramètres de configuration.
</para>
<para>
Une question importante pour la configuration d'APCu est
quelle est la taille adéquate qui doit être allouée dans la mémoire à APCu.
La directive ini qui contrôle ce paramètre est <literal>apc.shm_size</literal>.
Le paragraphe ci-dessous est important pour répondre à cette question.
</para>
<para>
Une fois le serveur lancé, le script <literal>apc.php</literal>, disponible avec
l'extension, peut être copié dans le document root et exécuté par le
navigateur. Ce script fournit une analyse détaillée du fonctionnement interne
de APCu. Si la bibliothèque GD est activée dans PHP alors le script peut afficher
des graphiques pertinents. Par exemple, si APCu est en fonctionnement, le nombre
<literal>Cache full count</literal> (sur la gauche) indique le nombre de fois que
le cache a atteint sa capacité maximale et a été obligé de supprimer toute entrée
qui n'a pas été appelée dans les dernières <literal>apc.ttl</literal> secondes.
Ce nombre doit être le plus petit possible pour une configuration optimale.
Si le cache est constamment rempli, il sera obligé de libérer de l'espace ce qui
aura pour conséquence de diminuer ses performances.
La méthode la plus simple pour minimiser ce nombre est d'allouer plus de mémoire à
APCu.
</para>
<para>
Lorsque APCu est compilé avec mmap (Memory Mapping), il n'utilisera qu'un seul
segment de mémoire, contrairement au cas où APCu est construit avec
SHM (SysV Shared Memory) qui utilise plusieurs segments de mémoire. MMAP n'a
pas de limite maximale comme SHM dans <literal>/proc/sys/kernel/shmmax</literal>.
En général, l'utilisation de MMAP est recommandée car il réclame la mémoire
plus vite lorsque le serveur web est redémarré et réduit l'impact sur
l'allocation de mémoire au démarrage.
</para>
<para>
<table>
<title>Options de configuration d'APCu</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.apcu.enabled">apc.enabled</link></entry>
<entry>"1"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.apcu.shm-segments">apc.shm_segments</link></entry>
<entry>"1"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.apcu.shm-size">apc.shm_size</link></entry>
<entry>"32M"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.apcu.entries-hint">apc.entries_hint</link></entry>
<entry>"4096"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.apcu.ttl">apc.ttl</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.apcu.gc-ttl">apc.gc_ttl</link></entry>
<entry>"3600"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.apcu.mmap-file-mask">apc.mmap_file_mask</link></entry>
<entry>NULL</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.apcu.slam-defense">apc.slam_defense</link></entry>
<entry>"1"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.apcu.enable-cli">apc.enable_cli</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.apcu.use-request-time">apc.use_request_time</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
<entry>Antérieurement à APCu 5.1.19, la valeur par défaut était "1".</entry>
</row>
<row>
<entry><link linkend="ini.apcu.serializer">apc.serializer</link></entry>
<entry>"php"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry>Antérieurement à APCu 5.1.15, la valeur par défaut était "default".</entry>
</row>
<row>
<entry><link linkend="ini.apcu.coredump-unmap">apc.coredump_unmap</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.apcu.preload-path">apc.preload_path</link></entry>
<entry>NULL</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
&ini.php.constants;
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.apcu.enabled">
<term>
<parameter>apc.enabled</parameter>
<type>bool</type>
</term>
<listitem>
<para>
<literal>apc.enabled</literal> peut être mis à 0 pour désactiver APC.
Cela peut s'avérer utile lorsqu'APC est compilé statiquement dans PHP
puisqu'il n'y a pas d'autre moyen de le désactiver (lorsque APC est
compilé en tant que DSO, la ligne <literal>extension</literal>
dans le fichier <literal>php.ini</literal> peut simplement être mise en
commentaire).
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.shm-segments">
<term>
<parameter>apc.shm_segments</parameter>
<type>int</type>
</term>
<listitem>
<para>
Le nombre de segments de mémoire partagée à allouer au cache de compilation
Si APC manque de mémoire partagée mais que <literal>apc.shm_size</literal>
est mis à la valeur maximale autorisée par le système, alors augmenter
cette valeur peut empêcher APC d'épuiser sa mémoire.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.shm-size">
<term>
<parameter>apc.shm_size</parameter>
<type>string</type>
</term>
<listitem>
<para>
La taille de chaque segment de mémoire partagée donnée en notation abrégée
comme indiquée dans cette <link linkend="faq.using.shorthandbytes">FAQ</link>.
Par défaut, certains systèmes (dont la plus part des variants de BSD)
ont une limite très basse pour la taille d'un segment de mémoire partagée.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.entries-hint">
<term>
<parameter>apc.entries_hint</parameter>
<type>int</type>
</term>
<listitem>
<para>
Un "indice" sur le nombre de variables distinctes qui peuvent être stockées.
Mettre à zéro ou dans le doute omettre.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.ttl">
<term>
<parameter>apc.ttl</parameter>
<type>int</type>
</term>
<listitem>
<para>
La durée en seconde qu'une entrée de cache est autorisée à
rester inactive dans son emplacement, au cas où cet emplacement
est réclamée par une autre entrée. Laisser à zéro cette valeur
signifie que potentiellement, le cache d'APC pourrait être
rempli par des entrées jamais appelées alors que de nouvelles
entrées ne seront pas mises en cache. Lorsqu'un événement signalant le manque
de mémoire disponible se produit, le cache sera complètement effacé si
<literal>apc.ttl</literal> est égal à 0. Sinon, lorsque
<literal>apc.ttl</literal> est strictement supérieur à 0, APC tentera
de retirer les entrées dont la durée de vie a expiré.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.gc-ttl">
<term>
<parameter>apc.gc_ttl</parameter>
<type>int</type>
</term>
<listitem>
<para>
La durée en seconde qu'une entrée de cache peut rester dans la liste du
ramasse-miettes. Cette valeur fournit une sûreté intégrée dans le cas
où un processus s'arrête pendant qu'il exécute le code d'un fichier
source mis en cache; si ce fichier est modifié, la mémoire allouée pour
l'ancienne version ne sera pas réclamée tant que la durée de vie n'est
pas atteinte. Mettre à zéro pour désactiver cette fonctionnalité.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.mmap-file-mask">
<term>
<parameter>apc.mmap_file_mask</parameter>
<type>string</type>
</term>
<listitem>
<para>
Si APCu a été compilé avec l'option MMAP en utilisant
<literal>--enable-mmap</literal>, ce paramètre reçoit le masque de
fichier de type mktemp-style à passer au module mmap pour déterminer
si la région de la mémoire utilisant mmap sera sauvegardée par le biais
d'un fichier ou par celui de la mémoire partagée.
Dans le cas où la sauvegarde se fait par le biais d'un fichier,
le masque sera de la forme <literal>/tmp/apc.XXXXXX</literal>
(avec exactement 6 <literal>X</literal>).
Pour utiliser shm_open/mmap de la norme POSIX, le masque doit contenir
<literal>.shm</literal>, comme dans l'exemple suivant:
<literal>/apc.shm.XXXXXX</literal>. Ce paramètre peut être défini par
<literal>/dev/zero</literal> pour utiliser l'interface
<literal>/dev/zero</literal> du noyau avec une mémoire utilisant mmap
anonymement. Laisser ce paramètre indéfini forcera un mmap anonyme.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.slam-defense">
<term>
<parameter>apc.slam_defense</parameter>
<type>int</type>
</term>
<listitem>
<para>
Au démarrage ou lors de la modification d'un fichier dans un serveur
très occupé, plusieurs processus peuvent entrer en compétition
pour mettre en cache un même fichier en même temps. Cette option
permet de définir la proportion des processus qui ne tenteront pas
de mettre en cache le même fichier au même instant, exprimée en
pourcentage. Autrement dit, elle définit la probabilité qu'un
seul processus n'essaie pas d'accéder au cache. Par exemple
définir <literal>apc.slam_defense</literal>
à <literal>75</literal> signifie qu'il y a 75% de chance pour
qu'un processus ne mette pas en cache un fichier non présent dans le
cache. Donc plus cette valeur est haute et plus la protection
contre le cache slam est importante. Mettre cette valeur à
<literal>0</literal> désactive cette option.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.enable-cli">
<term>
<parameter>apc.enable_cli</parameter>
<type>int</type>
</term>
<listitem>
<para>
Principalement utilisé pour les tests et le débogage. Définir ce
paramètre permet d'activer APC dans la version CLI de PHP.
En temps normal, il n'est pas idéal de créer, alimenter et
détruire le cache APC à chaque requête CLI. Cependant, dans de
nombreux scénarios de test il est utile de pouvoir activer
facilement APC dans la version CLI de PHP.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.serializer">
<term>
<parameter>apc.serializer</parameter>
<type>string</type>
</term>
<listitem>
<para>
Ce paramètre permet à APC d'utiliser un linéariseur tiers
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.coredump-unmap">
<term>
<parameter>apc.coredump_unmap</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Active la gestion par APC de signaux, tels que SIGSEGV, qui provoquent
l'écriture de fichiers core dump lorsqu'ils sont reçus. Quand ces
signaux sont reçus, APC essaiera de désallouer le segment de mémoire
partagée réservé à mmap dans le but de l'exclure du fichier core
dump. Cette option peut améliorer la stabilité du système lorsque
des signaux fatals sont reçus et qu'APC est configuré avec un long
segment de mémoire partagée.
</para>
<warning>
<para>
Cette option est potentiellement dangereuse. Désallouer un segment de
mémoire partagée utilisé par mmap dans le gestionnaire de signaux
fatals peut causer un comportement imprévisible si une erreur fatale
survient.
</para>
</warning>
<note>
<para>
Bien que certains noyaux peuvent fournir la possibilité d'ignorer
de nombreux types de mémoire partagée lorsqu'ils génèrent un fichier
core dump, ces implémentations peuvent aussi ignorer d'importants
segments de mémoire partagée tels que le tableau de bord d'Apache.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.preload-path">
<term>
<parameter>apc.preload_path</parameter>
<type>string</type>
</term>
<listitem>
<para>
Optionnel, définit un chemin vers le répertoire où APC chargera
les données du cache au démarrage.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.apcu.use-request-time">
<term>
<parameter>apc.use_request_time</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Utilise la requête start time de l'interface <acronym>SAPI</acronym>
pour la durée de vie (<acronym>TTL</acronym>).
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->