Maison Tutoriel système Linux Enregistrez une fois et utilisez strace pour diagnostiquer le problème de PHP occupant trop de ressources système.

Enregistrez une fois et utilisez strace pour diagnostiquer le problème de PHP occupant trop de ressources système.

May 03, 2024 pm 04:31 PM
linux php7 nginx access Tutoriel Linux Chapeau rouge Système Linux Commande Linux certification Linux chapeau rouge Linux vidéo Linux

Environnement local : système redhat6.7. nginx1.12.1, php7.1.0, le code utilise le framework yii2

Question : Le site Web local doit utiliser le service elasticsearch. Lorsque PHP utilise elasticsearch construit sur un serveur local, la charge locale est normale. Lorsque j'utilise le service elasticsearch d'AWS, la charge sur le serveur local est souvent trop élevée. Vérifiez les journaux nginx et php et ne trouvez aucune exception. Le nombre de connexions simultanées dans le système n’est pas non plus élevé. À ce moment-là, j'ai pensé à un outil de diagnostic strace que notre patron m'a présenté.

Processus de débogage :

  • Trouver un identifiant de processus enfant php
  • strace -cp pid trace les appels de processus

Charge du système à ce moment-là :

Enregistrez une fois et utilisez strace pour diagnostiquer le problème de PHP occupant trop de ressources système.

processus de débogage des traces

Enregistrez une fois et utilisez strace pour diagnostiquer le problème de PHP occupant trop de ressources système.

Ici, j'ai découvert que lorsque php appelle elasticsearch, il recherchera un fichier localement, et ce fichier n'existe pas. Cela entraîne une charge élevée du serveur. En comparant la différence entre AWS ElasticSearch et le cluster es local. J'ai trouvé que seule la méthode d'appel était différente. Le code est appelé à l'aide de la méthode https, il recherchera donc le fichier de bibliothèque de certificats localement. J'ai immédiatement contacté l'équipe de développement et changé la méthode d'appel en http Après avoir observé pendant un certain temps, la charge du serveur est revenue à la normale.

strace -T -e access -p 1379

Enregistrez une fois et utilisez strace pour diagnostiquer le problème de PHP occupant trop de ressources système.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le système Huawei Harmonyos 6 annule le 'prochain' suffixe: ce sera Hongmeng natif à l'avenir Le système Huawei Harmonyos 6 annule le 'prochain' suffixe: ce sera Hongmeng natif à l'avenir Sep 24, 2025 pm 04:12 PM

Les dernières nouvelles du 18 septembre, Huawei HarmonyOS6 a lancé plusieurs cycles de version prévisibles pour les développeurs, et a récemment ouvert la qualification d'expérience à certains utilisateurs qui l'ont essayé pour la première fois. Selon les commentaires de l'utilisateur, le nom du système actuel n'affiche plus le suffixe "suivant", et il est officiellement renommé HarmonyOS6.0. Huawei a initialement proposé le nom HarmonyOsnext pour la première fois lors de la conférence des développeurs en août 2023, visant à marquer le système Hongmeng entrant dans une nouvelle étape de développement et réalisant le véritable développement auto-autonome indigène. La percée la plus principale de HarmonyOsNext est d'adopter complètement l'architecture du système sous-jacente développée indépendamment, de supprimer complètement le noyau Linux et le code AOSP Android, et d'exécuter uniquement des applications basées sur le noyau Harmonyos.

Comment implémenter un modèle singleton en PHP? Comment implémenter un modèle singleton en PHP? Sep 25, 2025 am 12:27 AM

Le modèle Singleton garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global pour les scénarios où un seul objet coordonne le fonctionnement du système, tels que les connexions de base de données ou la gestion de la configuration. 2. Sa structure de base comprend: les instances de stockage d'attribut statiques privées, les constructeurs privés empêchent la création externe, les méthodes de clonage privé empêchent la copie et les méthodes statiques publiques (telles que getInstance ()) pour obtenir des instances. 3. Obtenez une instance unique dans PHP en appelant la méthode GetInstance () et renvoie la même référence d'objet, peu importe le nombre de fois où il est appelé. 4. Selon le modèle de demande PHP standard, la sécurité des threads n'est pas nécessaire pour être prise en compte, mais les problèmes de synchronisation doivent être prêts à prêter attention dans des environnements à long terme ou multi-thread, et PHP lui-même ne prend pas en charge le mécanisme de verrouillage natif. 5. Bien que les singletons soient utiles,

Comment utiliser l'opérateur de fusion nul (??) en PHP? Comment utiliser l'opérateur de fusion nul (??) en PHP? Sep 25, 2025 am 01:28 AM

Réponse: L'opérateur de fusion vide de PHP (??) est utilisé pour vérifier si une variable ou une clé de tableau existe et n'est pas nul. S'il est vrai, il renvoie sa valeur, sinon il renvoie la valeur par défaut. Il évite l'utilisation de longs chèques ISSet (), convient pour gérer les variables et les clés de tableau non définies, telles que $ username = $ userInput ?? 'invité, et prend en charge les appels de chaîne, tels que $ thème = $ usertheme?

Comment implémenter une interface dans une classe PHP? Comment implémenter une interface dans une classe PHP? Sep 25, 2025 am 05:34 AM

Utilisez le mot-clé Implementation pour implémenter l'interface et la classe doit fournir des implémentations spécifiques de toutes les méthodes dans l'interface. 2. Définissez l'interface pour déclarer la méthode à l'aide du mot-clé d'interface. 3. La classe implémente l'interface et remplace les méthodes. 4. Créez un objet et appelez la méthode pour sortir le résultat. 5. Une classe peut implémenter plusieurs interfaces pour assurer la spécification du code et la maintenabilité.

Comment continuer à afficher la barre des signets dans Chrome Browser_Tuorial pour définir l'affichage permanent de la barre de signet Chrome Comment continuer à afficher la barre des signets dans Chrome Browser_Tuorial pour définir l'affichage permanent de la barre de signet Chrome Sep 24, 2025 am 10:33 AM

La barre de signets peut être restaurée en cliquant sur le menu à trois points dans le coin supérieur droit de Chrome et en sélectionnant "Bookmarks"> "Show Bookmark Bar"; 2. Utilisez les touches de raccourci Ctrl Shift B (Windows) ou la commande B (Mac) pour changer rapidement l'affichage; 3. Assurez-vous que la "barre de signets Show" est définie pour "toujours afficher" dans "l'apparence" de la page Paramètres; 4. S'il n'est pas valide, vous pouvez réinitialiser les paramètres de votre navigateur pour restaurer l'état par défaut.

Comment utiliser les méthodes Get et Poster sous une forme HTML avec PHP? Comment utiliser les méthodes Get et Poster sous une forme HTML avec PHP? Sep 25, 2025 am 03:46 AM

La méthode GET attache des données à l'URL, qui convient aux informations non sensibles; La méthode Post envoie des données via le corps de la demande, qui est plus sécurisé et adapté aux informations sensibles.

Comment désinfecter la saisie des utilisateurs pour empêcher les XS dans PHP? Comment désinfecter la saisie des utilisateurs pour empêcher les XS dans PHP? Sep 25, 2025 am 05:19 AM

TopreventXssInPhp, SanitizeUserInputAscapeOutputBasedOnContextuSingHtmlSpecialCars () forhtml, json_encode () forjavascrip

Que dois-je faire si je ne peux pas utiliser un disque dur sur 2T? Que dois-je faire si je ne peux pas utiliser un disque dur sur 2T? Sep 24, 2025 am 11:36 AM

Aujourd'hui, un ami a acheté un nouvel ordinateur de bureau avec une capacité de disque dur de 4 To, mais seulement 2 To d'espace peuvent être reconnus après l'installation de Windows 7. Comment résoudre ce problème? Cette question implique la différence entre le mode MBR et le mode GPT de la table de partition, regardons de plus près. 1. Pourquoi cela se produit-il? Windows 7 utilise le mode de partition MBR par défaut, et MBR ne peut prendre en charge jusqu'à 2 To d'espace de stockage. Le nom complet de MBR est MasterBootRecord (enregistrement de démarrage principal). Le tableau de partition MBR utilise 512 octets par secteur et adopte la méthode d'adressage 32 bits, de sorte que la capacité de disque maximale qui peut être accessible est de 2,19 To (2 ^ 32 * 512byte). En raison de la fenêtre

See all articles