Sur un système avec PHP, l'affichage du navigateur s'affiche pour une raison quelconque Il y a eu un phénomène qui est devenu lourd.
Dans mes recherches, quand je l'ai regardé avec la commande linux netstat, Il y avait beaucoup de communication avec le port 53.
Quoi? J'ai pensé, et après avoir étudié diverses choses, J'ai trouvé que cela était causé par gethostbyaddr ().
Tout d'abord, gethostbyaddr () est innocent. Un problème est survenu concernant la façon d'appeler.
C'est une source PHP, elle est mal écrite, Il y avait un endroit où je bouclais en vain (beaucoup).
Parce que j'appelais gethostbyaddr () dans cette boucle Je recevais beaucoup de demandes DNS du serveur.
Après avoir fait un correctif pour réduire le nombre d'appels La charge sur le serveur (réseau) est réduite, L'affichage du navigateur est devenu plus clair.
Gethostbyaddr () communique-t-il avec le monde extérieur? Vous avez peut-être pensé, mais si vous me demandez Parce que le nom d'hôte est obtenu à partir de l'adresse IP Vous faites un tirage inverse sur le DNS, non? Je peux imaginer.
(Vous devriez vraiment regarder la source de gethostbyaddr () elle-même, Je n'ai pas de telles compétences et je suis désolé, mais je vous laisse le soin. )
Par exemple, si c'est mb_send_mail (), il enverra un e-mail, Vous penserez que c'est mauvais de boucler.
Mais gethostbyaddr () communique dans les coulisses Je ne le remarque pas facilement. Vous pourriez penser que ce n'est qu'une fonction de conversion. (Surtout si vous êtes une personne qui n'est pas familière avec les serveurs et l'infrastructure.)
Avant de modifier la source PHP, utilisez le serveur de noms de la destination de communication C'est comme avoir une attaque Dos. (Je suis désolé.)
Comme le nombre de fois que vous appelez gethostbyaddr (), N'appelez pas à plusieurs reprises avec la même adresse IP Je pense qu'il est également nécessaire de trouver des moyens de mettre en cache les résultats.
Cependant, il n'y a aucun problème à l'utiliser normalement. Parce que c'était incroyablement en boucle Cela a simplement augmenté la charge du réseau.
Recommended Posts