• Sober--Never
    2018-11-26
    老师共享内存使用的场景?什么时候使用,

    作者回复: 所有需要多worker进程协同配合的场景。例如upstream负载均衡算法,或者limit_conn、limit_req等。一般指令中有zone关键字都是共享内存。

    
     2
  • Mr.zhang
    2019-04-29
    老师,Nginx每次reload的时候会清除共享内存里的东西吗?

    作者回复: 不会

    
     1
  • threadangerous
    2018-11-24
    老师,对于共享变量dogs,我们在配置文件中对dogs进行插入、删除、值更新的话,需要考虑锁的问题吗?

    作者回复: 不需要,在操作这个变量时,lua模块已经对变量使用了自旋锁

    
     1
  • 蚊子
    2019-06-13
    老师你好!多个worker使用共享内存的时候存在并发读写,而且存在一个worker添加,其他worker使用的情况,怎样解决一个worker。alloc了slab中的内存,但是在free之前进程就故障了,这个未free的内存怎么处理啊

    作者回复: 1、进程1分配的内存,可以由进程2释放,能做到的话没问题,参考http cache。
    2、同步锁也是基于共享内存的,多worker间使用。
    3、如果这是个高频问题,应用代码应当具备处理这种问题的能力,例如添加锁时间,依据时间具备自动解锁能力

    
    
  • __Sunde__
    2019-03-19
    老师,问一下这里说 lua_shared_dict 同时使用了 rbtree 和链表,是不是说在 rbtree 之外还根据 rbtree 的 key 来生成了一个链表来进行 lru 的模拟?

    作者回复: 对,用于淘汰key

    
    
  • 棒棒糖
    2019-02-14
    共享内存中为啥用红黑树,而不用hash方式?

    作者回复: 红黑树的内存利用率更高

    
    
  • 赵帅
    2019-01-16
    docker中运行linux,worker_processes 应该配置成什么呢? docker实际是占用cpu时间分片,实际宿主机的cpu核数。不可能单独给nginx查看

    作者回复: docker中的nginx进程也会作为宿主机进程独立运行在宿主机上。但是你既然使用了docker,说明宿主机上你还会跑其他应用。这么说你对性能的要求没有那么高,worker_processes配置成CPU核数关系不大。或者说,worker_processes的数量可以考虑:按nginx和其他应用对资源的消耗预估,按CPU核数比例配置该指令

    
    
  • Panda
    2018-12-16
    Nginx用共享内存来通信的

    作者回复: :-)

    
    
我们在线,来聊聊吧