nginx main配置参数及测试:

主配置段的指令的类别:

用于调试、定位问题

正常运行必备的配置

优化性能的配置

事件相关的配置

  1. 正常运行的必备配置:

1、user USERNAME [GROUPNAME];

指定运行worker进程的用户 和组,例如:

user nginx nginx;

2、pid /path/to/pid_file;

指定nginx的pid文件;

pid /var/run/nginx/nginx.pid;

3、worker_rlimit_nofile #;

指定所有worker进程所能够打开的最大文件句柄数;每个用户默认能打开的最大的文件数量1024个,一个链接维持一个套接字文件。

worker_rlimit_nofile

4、worker_rlimit_sigpending #;

指定每个用户能够发往worker的信号的数量;

5、worker_rlimit_core size;

指定所有的 work 进程能够打开的核心文件大小一般来说这个参数不常使用。

  1. 优化性能相关的配置:

1、worker_processes #:

worker线程的个数;通常应该为物理CPU核心个数减1;tnginx可以自动判断。

2、worker_cpu_affinity cpumask …; tnginx可以支持auto。

Context switch :会产生不必要的消耗;然后绑定worker进程至指定的CPU上;

优点:提升cpu缓存命中率。

极限优化cpu隔离,不接受内核调度,而把所有内核全部指定在某一颗cpu上运行。必须剥离cpu中断处理剥离出去。

CPUMASK

0001

0010

0100

1000

例如:

worker_cpu_affinity 00000001 00000010 00000100;

For example,

worker_processes 4;

worker_cpu_affinity 0001 0010 0100 1000;

3、timer_resolution t;计时器解析度,降低此值减少gettimeofday()系统调用;

由于发起系统调用后会发生中断,当一个服务器并发访问量会很大,每个访问都会记录日志,每个日志都会记录时间,降低这个值会减少系统调用发起次数,从而提高系统的性能。

Example:

timer_resolution 100ms;

4、worker_priority number;指明进程优先级

默认用户进程nice值为0,然后优先级为120,优先级越低,系统运行时间就会越多。

Example:

worker_priority -10; ——->110

-20, 19 ———-> 100,139

  1. 事件相关的配置:

1、accept_mutex [on|off]

master内部调用用户 请求至各worker时用的负载均衡锁;打开时表示能让多个worker轮流地、序列化地与响应新请求;否则为随机响应

2、lock_file /path/to/lock_file;

指明acpcept_mutex用到的锁文件路径

3、accept_mutex_delay #ms;

如果accept_mutex打开后轮着来响应不能抢,这时有可能work会忙不过来,等待多长时间重新接受请求,有可能是让下一个worker去相应。

4、use [epoll|rgsig|select|poll];

定义使用的事件模型;建议让Nginx自动选择;

5、worker_connections #;

每个worker进程所能够响应的最大并发请求数;还要取决于worker_processes

worker_connections * worker_processes

  1. 用于调试、定位问题:–with-debug

1、daemon [off|on]

是否以守护进程方式启动nginx;

2、debug_points、debug_connection

编译安装必须加上–with-debug才能启用,一般不是特别奇怪的问题不建议打开

3、master_process on|off;

是否以master/worker模型来运行nginx;

4、error_log /path/to/error_log level;

错误日志文件及其级别;出于调试的目的,可以使用debug级别,但此级别只有在编译nginx时使用了–with-debug选项才有效;

error_log 位置 级别

Example syslog configuration:

error_log syslog:server=192.168.1.1 debug;

  1. 常需要调整参数:

worker_processes, worker_connections, work_cpu_affinity, worker_priority

  1. 生效配置:

-s signal : send signal to a master process: stop, quit, reopen, reload

# /usr/local/nginx/sbin/nginx -s reload

七、亲自完成测试正常的配置文件。

# vim /etc/nginx/nginx.conf

user nginx nginx;

pid /var/run/nginx/nginx.pid;

worker_rlimit_core 1G;

worker_rlimit_nofile 40000;

worker_processes 3;

worker_cpu_affinity 0001 0010 0100;

timer_resolution 1000ms;

worker_priority -10;

events {

accept_mutex on;

worker_connections 1024;

accept_mutex_delay 500ms;

use epoll;

}

lock_file /var/lock/nginx.lock;

daemon on;

error_log /var/log/nginx/error.log error;

master_process on;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值