Traçage et dépannage de NGINX, OpenResty et de leurs backends

Yichun Zhang, fondateur et PDG d'OpenResty Inc.

Certains processus nginx en ligne consomment trop de mémoire, de temps CPU ou de ressources d'E/S de disque ? Vous avez des demandes très lentes qui se produisent de manière aléatoire en ligne, mais qui ne peuvent pas être reproduites hors ligne ? Vous avez vu des messages d’erreur mystérieux dans le journal NGINX, mais vous n’avez aucune idée des causes réelles ? Vous êtes gêné par des plantages aléatoires de processus nginx et des vidages de mémoire en production ?

Lors de sa session à la conférence NGINX Conf 2018 , Yichun étudie divers problèmes de performances réels et d'autres problèmes de comportement dans le contexte de NGINX et d'OpenResty, et explique comment utiliser le traçage dynamique et d'autres technologies avancées de débogage post-mortem pour identifier rapidement les causes en ligne sans perturber les services de production.

Yichun décrit et compare les avantages et les inconvénients de divers frameworks de débogage open source comme GDB, SystemTap et BCC/eBPF, avec une brève discussion sur les défis uniques du traçage des conteneurs Docker en production. Il présente ensuite la nouvelle plateforme OpenResty Trace qui unifie ces technologies de débogage et améliore leur convivialité, leur évolutivité et leur extensibilité à un nouveau niveau, en particulier dans le contexte de systèmes en ligne distribués comme un maillage de microservices ou des clusters de passerelles de trafic comme dans un réseau CDN. Il inclut des exemples d'écriture d'outils de traçage personnalisés à l'aide des langages de débogage universels fournis par OpenResty Trace.

Yichun utilise également des exemples réels pour démontrer l'utilisation d'outils de traçage avancés sur OpenResty Trace pour le noyau NGINX et le noyau OpenResty avec LuaJIT. Il couvre le traçage d'autres services backend traditionnels exécutés derrière NGINX ou OpenResty via FastCGI, uWSGI ou NGINX Unit, comme PHP, Python, Perl et Ruby. Il conclut avec des exemples de services de traçage de données comme PostgreSQL, Memcached et Redis accessibles par NGINX, OpenResty ou leurs applications back-end.

Prochaines étapes