张亦春,OpenResty 公司创始人兼首席执行官
一些在线nginx
进程是否消耗了太多内存、CPU 时间或磁盘 I/O 资源? 是否收到一些在线随机发生的非常慢的请求,但无法离线重现? 看到一些神秘的 NGINX 错误日志消息,但不知道实际原因? 您是否被生产过程中一些随机的nginx
进程崩溃和核心转储所困扰?
在NGINX Conf 2018的演讲中,Yichun 在 NGINX 和 OpenResty 的背景下研究了各种现实世界的性能和其他行为问题,并解释了如何使用动态跟踪和其他先进的事后调试技术在不中断生产服务的情况下快速查明在线原因。
Yichun 描述并比较了 GDB、SystemTap 和 BCC/eBPF 等各种开源调试框架的优缺点,并简要讨论了在生产中跟踪 Docker 容器的独特挑战。 然后,他介绍了新的 OpenResty Trace 平台,该平台统一了这些调试技术,并将其可用性、可扩展性和可扩展性提升到一个新的水平,特别是在分布式在线系统(如微服务网格或 CDN 网络中的流量网关集群)的环境中。 他提供了使用 OpenResty Trace 提供的通用调试语言编写自定义跟踪工具的示例。
Yichun 还通过真实的例子展示了如何在 NGINX 核心的 OpenResty Trace 和 LuaJIT 的 OpenResty 核心上使用先进的跟踪工具。 他介绍了如何通过 FastCGI、uWSGI 或 NGINX Unit 跟踪在 NGINX 或 OpenResty 后面运行的其他传统后端服务,例如 PHP、Python、Perl 和 Ruby。 最后,他给出了由 NGINX、OpenResty 或其后端应用访问的 PostgreSQL、Memcached 和 Redis 等数据服务的跟踪示例。