lua-resty-redis set_keepalive 推荐设置

我正在使用 red:set_keepalive(max_idle_timeout, pool_size)

(来自这里:https://github.com/openresty/lua-resty-redis#set_keepalive

在 Nginx 中并尝试确定用于 max_idle_timeoutpool_size 的最佳值。

如果我的 worker_connections 设置为 1024,是否有意义将 pool_size 设置为 1024?

对于 max_idle_timeout,60000(1 分钟)是否太“激进”?使用更小的值是否更安全?

谢谢,

Matt

点赞
用户369550
用户369550

我认为官方文档中的 问题检查清单 部分有一个好的指导原则来确定连接池的大小:

基本上,如果您的 NGINX 处理 n 个并发请求并且您的 NGINX 具有 m 个 worker,则应将连接池大小配置为 n/m。例如,如果您的 NGINX 通常 处理 1000 个并发请求,并且您有 10 个 NGINX worker,则连接池大小应为 100。

因此,如果您希望有 1024 个实际连接到 Redis 的并发请求,则池的良好大小为 1024/worker_processes。可能还需要更多数量来考虑工作程序之间请求分布不均匀情况。

您的 keepalive 应该足够长以适应流量到达的方式。如果您的流量是恒定的,则可以降低超时时间。或者保持 60 秒,在大多数情况下,超时时间较长不会有任何明显的差异。

2018-11-12 00:50:06