openresty timer 在 reload 时无法退出

昨天遇到一件诡异的事情,线上用作 gateway 的 openresty 引发了内存报警。这些 openresty 之前已经运行了 5 周左右的时间。开始还以为代码中或许有引发内存泄漏的 bug,但是仔细查看后。发现了如下的情况 (因为我是实习的碰不到生产环境,所以下面这个图是本地模拟的) 显示 is shutting down 的进程数目足足有 212 个(线上服务器只有 8G »

Openresty 随手记

Openresty 执行阶段 我们可以在 init_by_lua 中写一些启动配置,比如读取配置文件等。之后 nginx 会 fork 出若干 worker 进程。由于 fork 的性质,worker 中拥有父进程(master 进程)的数据拷贝。所以依然能够访问到这些在 init_by_ »

nginx thundering herd

In computer science, the thundering herd problem occurs when a large number of processes waiting for an event are awoken when that event occurs, but only »

openresty 最差实践

这周主要对 API gateway 进行选型,上周自己搞了搞 Kong。但是感觉和目前的公司业务相差比较多,如果要使用的话需要大量改动。所以重新进行了调查,大致选定了两个方向 Golang 实现和 nginx + Lua。 坑爹的测试 测试使用的工具是 wrk,最初时使用的蠢作者的开发机做测试,API gateway 和 backend 都放到了本机上,然后本机进行 wrk 压力测试。 »