作者回复: 所有需要多worker进程协同配合的场景。例如upstream负载均衡算法,或者limit_conn、limit_req等。一般指令中有zone关键字都是共享内存。
作者回复: 不会
作者回复: 不需要,在操作这个变量时,lua模块已经对变量使用了自旋锁
作者回复: 1、进程1分配的内存,可以由进程2释放,能做到的话没问题,参考http cache。
2、同步锁也是基于共享内存的,多worker间使用。
3、如果这是个高频问题,应用代码应当具备处理这种问题的能力,例如添加锁时间,依据时间具备自动解锁能力
作者回复: 对,用于淘汰key
作者回复: 红黑树的内存利用率更高
作者回复: docker中的nginx进程也会作为宿主机进程独立运行在宿主机上。但是你既然使用了docker,说明宿主机上你还会跑其他应用。这么说你对性能的要求没有那么高,worker_processes配置成CPU核数关系不大。或者说,worker_processes的数量可以考虑:按nginx和其他应用对资源的消耗预估,按CPU核数比例配置该指令
作者回复: :-)