Maison  >  Article  >  Tutoriel système  >  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.

WBOY
WBOYavant
2024-05-03 16:31:14960parcourir

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer