Maison > Article > développement back-end > Analyse de deux ensembles de fichiers de configuration et de paramètres de PHP APC
Cet article présente principalement 2 ensembles de fichiers de configuration PHP APC et des paramètres détaillés. Les amis qui en ont besoin peuvent s'y référer
1 Installer APC
./configure --enable-apc --enable-apc-spinlocks --disable-apc-pthreadmutexJe ne parlerai pas du processus d'installation, mais du mode d'installation standard de l'extension PHP.
2 ensembles. des fichiers de configuration
Hautes performances, ne convient pas aux mises à jour fréquentes :apc.enabled=1 apc.stat = 0 apc.stat_ctime = 0 apc.shm_size = 64M apc.shm_segments = 1 apc.num_files_hint = 1000 apc.ttl = 0 apc.slam_defense = 0 apc.write_lock = 1 apc.file_update_protection = 2Performances légèrement inférieures :
apc.enabled=1 apc.stat = 1 apc.stat_ctime = 1 apc.shm_size = 64M apc.shm_segments = 1 apc.num_files_hint = 1000 apc.ttl = 86400 apc.slam_defense = 0 apc.write_lock = 1 apc.file_update_protection = 2La clé des 2 ensembles de configurations est apc.stat, APC ne vérifiera pas après l'ouverture. Si le fichier est mis à jour ou non, cela peut réduire un grand nombre d'appels système inutiles.
Cependant, pour les problèmes nouvellement publiés, PHP doit être redémarré. selon la situation.
De plus, la description du paramètre est jointe :
apc.enabled booléen
apc.enabled peut être défini sur 0 pour désactiver APC. Il est principalement utilisé lorsque APC est compilé statiquement en PHP, car il n'y a pas d'autre moyen. Il a été désactivé (lors de la compilation vers DSO, vous pouvez commenter la ligne d'extension dans php.ini).
apc.shm_segments entier
Le nombre de blocs de mémoire partagée à allouer par le cache du compilateur. Si APC manque de mémoire partagée mais a défini apc.shm_size au maximum autorisé par le système, vous pouvez essayer d'augmenter cette valeur.
apc.shm_size integerLa taille de chaque bloc de mémoire partagée en Mo. Certains systèmes (y compris la plupart des variantes BSD) ont par défaut une taille de bloc de mémoire partagée très faible.
apc.optimization entier
Niveau d'optimisation. Réglez sur 0 pour désactiver l'optimiseur, des valeurs plus élevées pour utiliser une optimisation plus agressive. Attendez-vous à des améliorations de vitesse très limitées. Toujours en test.
apc.num_files_hint integer
Une estimation approximative du nombre de fichiers d'origine différents qui sont inclus ou demandés sur le serveur Web. Définissez sur 0 ou supprimez cette option en cas de doute ; ce paramètre est principalement utilisé sur les sites contenant des milliers de fichiers sources.
apc.user_entries_hint integer
Similaire à apc.num_files_hint, stocke les variables de cache en fonction du nombre d'utilisateurs uniques. En cas de doute, définissez-le sur 0 ou supprimez cet élément.
apc.ttl entier
Le nombre de secondes pendant lesquelles une entrée de cache est autorisée à rester dans le tampon. 0 signifie qu'il n'y a jamais d'expiration. La valeur recommandée est de 7 200 à 86 400. La définir sur 0 signifie que le tampon peut être rempli d'anciennes entrées de cache, ce qui entraînera l'impossibilité de mettre en cache de nouvelles entrées.
apc.user_ttl entier
est similaire à apc.ttl, mais pour chaque utilisateur, la valeur recommandée est de 7200~86400. La valeur 0 signifie qu'il est possible que le tampon se remplisse d'anciennes entrées de cache, empêchant ainsi la mise en cache de nouvelles entrées. S'il est supérieur à 0, APC tentera de supprimer les entrées expirées.
apc.gc_ttl entierLe nombre de secondes pendant lesquelles l'entrée du cache peut exister dans la table de récupération de place. Cette valeur fournit une mesure de sécurité selon laquelle si le fichier est modifié pendant que le processus serveur exécute un fichier source mis en cache, l'ancienne version ne sera pas recyclée tant que cette durée de vie n'est pas atteinte. Réglez-le sur zéro pour désactiver cette fonctionnalité.
apc.cache_by_default booléen
La valeur par défaut est activée, mais elle peut être désactivée et utilisée avec apc.filters commençant par un signe plus, le fichier ne sera alors mis en cache lors de la correspondance avec le filtre.
chaîne apc.filters
Une liste d'expressions régulières étendues POSIX séparées par des virgules. Si l'un des modèles correspond au nom du fichier source, le fichier n'est pas mis en cache. Notez que le nom de fichier utilisé pour la correspondance est le nom de fichier transmis à include/require, et non le chemin absolu. Si le premier caractère de l'expression régulière est +t, cela signifie que tout fichier correspondant à l'expression sera mis en cache, si le premier caractère est - alors aucune correspondance ne sera mise en cache. - est la valeur par défaut et peut être omise.
apc.mmap_file_mask string
Si le support MMAP a été compilé pour APC à l'aide de --enable-mmap (activé par défaut), la valeur ici est le fichier de style mktemp transmis au Masque du module mmap (la valeur recommandée est "/tmp/apc.XXXXXX"). Ce masque est utilisé pour déterminer si la zone mappée en mémoire doit être sauvegardée sur un fichier ou sur une mémoire partagée. Pour un mappage de mémoire direct sauvegardé sur fichier, définissez-le pour qu'il ressemble à "/tmp/apc.XXXXXX" (exactement 6 X). Pour utiliser shm_open/mmap de style POSIX, vous devez le définir sur "/apc.shm.XXXXXX". Vous pouvez également le définir sur "/dev/zero" pour utiliser l'interface "/dev/zero" du noyau pour la mémoire mappée de manière anonyme. Ne pas définir cette directive oblige à utiliser un mappage anonyme.
apc.slam_defense integer
Sur un serveur très occupé, qu'il s'agisse du démarrage d'un service ou de la modification d'un fichier, une condition de concurrence critique peut résulter de plusieurs processus essayant de mettre en cache un fichier en même temps temps. Cette option définit le pourcentage auquel le processus ignore l'étape de mise en cache lors du traitement de fichiers qui n'ont pas été mis en cache. Par exemple, le définir sur 75 signifie qu'il y a une probabilité de 75 % de ne pas être mis en cache lorsqu'un fichier non mis en cache est rencontré, réduisant ainsi le risque de collision. L'utilisation de cette directive est déconseillée et il est conseillé de la définir sur 0 pour désactiver cette fonctionnalité. Il est recommandé d'utiliser l'instruction apc.write_lock.
apc.file_update_protection integer
Lorsque vous modifiez des fichiers sur un serveur en cours d'exécution, vous devez effectuer des opérations atomiques. Autrement dit, écrivez d'abord dans un fichier temporaire, puis renommez (mv) le fichier avec le nom final. Les éditeurs de texte et les programmes tels que cp et tar ne fonctionnent pas de cette manière, ce qui entraîne la possibilité de mettre en mémoire tampon des fichiers incomplets. La valeur par défaut 2 signifie que lors de l'accès à un fichier, si l'heure de modification s'avère inférieure à 2 secondes de l'heure d'accès, aucune mise en mémoire tampon ne sera effectuée. Le visiteur malchanceux peut obtenir du contenu corrompu, mais les effets néfastes ne sont pas amplifiés par la mise en cache. Si vous pouvez vous assurer que toutes les opérations de mise à jour sont atomiques, vous pouvez désactiver cette fonctionnalité avec 0. Si la mise à jour de votre système est lente en raison d'opérations d'E/S lourdes, vous devrez peut-être augmenter cette valeur.
apc.enable_cli integer
Que vous souhaitiez activer la fonctionnalité APC pour la version CLI, activez cette option uniquement à des fins de test et de débogage. Dans des circonstances normales, il n'est pas idéal de créer, remplir et détruire le cache APC à chaque requête adressée à la CLI, mais pour divers scénarios de test, il est utile de pouvoir créer facilement la version CLI de PHP APC
apc. max_file_size integer
La valeur par défaut est 1M, les fichiers plus grands que cette valeur ne seront pas mis en cache.
apc.stat integer
Activer ou non la mise à jour du script vérifier. Soyez très prudent lorsque vous modifiez cette valeur de commande. La valeur par défaut On indique qu'APC vérifie si le script a été mis à jour à chaque fois qu'il est demandé, il recompilera et mettra automatiquement en cache le contenu compilé. Cependant, cela a un impact négatif sur les performances. S'il est réglé sur Désactivé, aucune vérification n'est effectuée, ce qui entraîne une amélioration considérable des performances. Mais pour que le contenu mis à jour prenne effet, vous devez redémarrer le serveur Web (Note du traducteur : si vous utilisez cgi/fcgi, vous devez redémarrer le processus cgi/fcgi). Sur les serveurs de production où les fichiers de script changent rarement, des améliorations significatives des performances peuvent être obtenues en désactivant cette option.
Cette directive est également valable pour les fichiers include/require. Mais il convient de noter que si vous utilisez un chemin relatif, APC doit vérifier pour localiser le fichier à chaque fois qu'il est inclus ou requis. L'utilisation de chemins absolus peut ignorer la vérification, nous vous encourageons donc à utiliser des chemins absolus pour les opérations d'inclusion/exigence.
apc.write_lock boolean
Sur un serveur occupé, lorsque le serveur Web est démarré pour la première fois, ou que plusieurs fichiers sont modifiés en même temps, APC peut compiler le même fichier plusieurs fois Fichier, le verrouillage en écriture garantit qu'un seul processus tentera de compiler et de mettre en cache un script non mis en cache. Les autres processus essayant d'utiliser le script n'utiliseront pas le cache d'opcode, mais verrouilleront et attendront que le cache soit généré.
apc.report_autofilter boolean
S'il faut enregistrer tous les scripts qui ne sont automatiquement pas mis en cache pour des raisons de liaison précoce/tardive.
apc.include_once_override boolean
Optimisez les fonctions include_once() et require_once() pour éviter d'exécuter des appels système supplémentaires.
apc.rfc1867 booléen
Activer la fonction de surveillance de la progression du téléchargement des fichiers
apc.rfc1867_prefix string
Tampon pour le téléchargement des fichiers Entrée d'élément préfixe de nom
apc.rfc1867_name string
Nom d'élément de formulaire caché pour les fichiers téléchargés qui doivent être traités par APC
apc.rfc1867_freq string
Fréquence de mise à jour des éléments du cache de fichiers téléchargés par l'utilisateur. La valeur peut être un pourcentage de la taille totale du fichier ou une taille absolue (insensible à la casse) se terminant par « k », « m » ou « g » en kilo-octets, mégaoctets ou gigaoctets. 0 signifie la mise à jour la plus rapide possible, mais. Cela peut entraîner des vitesses de téléchargement plus lentes.
apc.rfc1867_ttl bool
TTL pour les entrées rfc1867.
apc.localcache boolean
Utiliser l'ombre de processus local non verrouillable - le cache, qui réduit la concurrence entre les verrous lors de l'écriture dans le tampon.
apc.localcache.size entier
La taille du cache fantôme du processus local doit être définie sur une valeur suffisamment grande, environ la moitié de apc.num_files_hint.
apc.coredump_unmap boolean
Active les gestionnaires de signaux APC, tels que le signal SIGSEGV, lorsque le signal est écrit dans le fichier principal. Lorsque ces signaux sont reçus, APC tentera de démapper le segment de mémoire partagée, en l'excluant du fichier principal. Ce paramètre peut améliorer la stabilité du système lors de la réception d'un signal fatal ou lors de l'utilisation de la configuration de grands segments de mémoire partagée d'APC.
apc.stat_ctime integer
La vérification de ctime (heure de création) peut éviter les problèmes causés par SVN ou rsync et garantir que l'inode n'a pas changé depuis les dernières statistiques. APC ne vérifie généralement que mtime (heure de modification).
apc.canonicalize bool
S'il est activé, le chemin relatif sera remplacé par un chemin absolu en mode sans état (pas de vérification des mises à jour de fichiers).
apc.preload_path string
apc.use_request_time bool
Utilisez l'heure de début de la requête SAPI pour TTL.
apc.file_md5 bool
Enregistrez la valeur md5 du fichier
apc.lazy_functions integer
Activer le chargement paresseux de la fonction
apc.lazy_classes integer
Activer le chargement différé de classe
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
3 façons de générer des nombres aléatoires en PHP
Comparaison des fonctions de framework couramment utilisées en PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!