Base de connaissances

Haute iowait et/ou moyenne de charge lorsque APC est activé dans le sélecteur PHP.

Lorsque vous rencontrez une forte attente d'E/S (iowait) et/ou une moyenne de charge élevée spécifiquement lorsque APC (Alternative PHP Cache) est activé dans PHP Selector, cela peut indiquer quelques problèmes potentiels. Voici les étapes que vous pouvez suivre pour résoudre le problème :

Vérifiez la configuration d'APC :

  • Vérifiez à nouveau la configuration d'APC pour vous assurer qu'elle est correctement configurée. Assurez-vous que la taille du cache et les valeurs TTL (Time to Live) sont appropriées pour votre application.

Vérifiez les E/S du disque :

  • Utilisez des outils comme iotop ou sar pour surveiller les E/S du disque. Une forte attente d'E/S pourrait indiquer que le serveur a du mal à lire/écrire les données sur le disque assez rapidement. Cela pourrait être dû au fait qu'APC utilise le disque pour le cache.

Ajustez les paramètres d'APC :

  • Si la taille du cache est définie trop haute, cela pourrait entraîner une utilisation excessive des E/S du disque. Envisagez de réduire la taille du cache pour voir si cela résout le problème.

Surveillez l'utilisation du disque :

  • Vérifiez l'utilisation globale du disque. Si le disque approche de sa capacité, cela peut ralentir les opérations de lecture/écriture, entraînant ainsi une forte attente d'E/S.

Envisagez de passer à OPCache :

  • OPCache est le successeur d'APC et est intégré à PHP depuis la version 5.5. Il est généralement plus efficace et fiable. Envisagez de passer à OPCache si cela est compatible avec votre configuration.

Examinez le code PHP :

  • Un code PHP mal optimisé peut entraîner une utilisation excessive des E/S du disque. Passez en revue votre code pour toute requête de base de données ou opération de fichier inefficace.

Optimisez les requêtes de base de données :

  • Si votre application interagit avec une base de données, assurez-vous que vos requêtes sont optimisées et envisagez d'ajouter des index là où cela est nécessaire.

Envisagez une méthode de cache différente :

  • Si APC continue de poser problème, envisagez d'essayer une autre méthode de mise en cache comme Redis ou Memcached.

Vérifiez les ressources du serveur :

  • Assurez-vous que votre serveur dispose de ressources suffisantes (CPU, RAM et vitesse du disque) pour gérer la charge de travail et le mécanisme de mise en cache que vous utilisez.

Mettez à jour ou réinstallez APC :

  • Si vous utilisez une version plus ancienne d'APC, envisagez de mettre à jour vers la dernière version ou de le réinstaller avec les paramètres de configuration mis à jour.

Vérifiez les conflits :

  • Assurez-vous qu'il n'y a pas de conflits entre APC et d'autres composants ou applications du serveur.

Surveillez les journaux du serveur :

  • Vérifiez les journaux du serveur pour toute message d'erreur ou avertissement relatif à APC. Cela pourrait fournir des informations sur la cause de la forte attente d'E/S.

Envisagez un profileur :

  • Utilisez un profileur PHP pour identifier les fonctions ou segments de code spécifiques qui entraînent une utilisation excessive des E/S du disque.

Test de charge :

  • Effectuez des tests de charge pour simuler des scénarios de trafic élevé et surveillez comment le serveur se comporte avec APC activé.

N'oubliez pas de toujours apporter des modifications une à une et de surveiller l'impact de chaque changement afin d'isoler les solutions les plus efficaces. De plus, assurez-vous d'avoir des sauvegardes et effectuez les changements dans un environnement contrôlé pour éviter des problèmes inattendus.

  • 0 Utilisateurs l'ont trouvée utile
Cette réponse était-elle pertinente?