hopeless-dream

导航

Nginx事件类配置项

事件类配置项

是否打开accept

语法: accept_mutex[on|off]
默认: accept_mutext on;

accept_mutexNginx的负载均衡锁 ,accept_mutex这把锁可以让多个worker进程轮流地、序列化地与新的客户端建立TCP连接。

当某一个worker进程建立的连接数量达到worker_connections配置的最大连接数的7/8时, 会大大地减小该worker进程试图建立新TCP接的机会, 以此实现所有worker进程之上处理的客户端请求数尽量接近。

accept锁默认是打开的,如果关闭它, 那么建立TCP连接的耗时会更短, 但worker进程之间的负载会非常不均衡, 因此不建议关闭它

 

lock文件的路径

语法: lock_file path/file;

默认: lock_file logs/nginx.lock;

accept锁可能需要这个lock文件, 如果accept锁关闭, lock_file配置完全不生效。

如果打开了accept锁,并且由于编译程序、操作系统架构等因素导致Nginx不支持原子锁, 这时才会用文件锁实现accept锁,这样lock_file指定的lock文件才会生效。

 

使用accept锁后到真正建立连接之间的延迟时间

语法: accept_mutex_delay Nms;
默认: accept_mutex_delay 500ms;

在使用accept锁后, 同一时间只有一个worker进程能够取到accept锁。 这个accept锁不是阻塞锁, 如果取不到会立刻返回。

如果有一个worker进程试图取accept锁而没有取到, 它至少要等accept_mutex_delay定义的时间间隔后才能再次试图取锁。

 

选择事件模型 

语法: use [kqueue|rtsig|epoll|/dev/poll|select|poll|eventport];
默认: use epoll;

 epoll的性能最高

 

每个worker的最大连接数

语法: worker_connections number;

定义每个worker进程可以同时处理的最大连接数。

posted on 2020-05-18 10:49  hopeless-dream  阅读(208)  评论(0编辑  收藏  举报