Nginx性能优化


一、性能优化相关配置:

(1)设置进程cpu的个数。

worker_process #;worker进程的个数;通常应该略少于CPU物理核心数。

(2)绑定物理cpu。

worker_cpu_affinity 00000001 00000010 00000100

(3)减少计时器解析度的值<间隔>。

timer_resolution 间隔;可减少gettimeofday()系统调用的次数;

(4)调低worker线程的nice值,提高优先级。

worker_priority -10; 指明worker进程的nice值;

二、以上详解

(1)性能优化相关配置:
1、worker_process #; worker进程的个数;通常应该略少于CPU物理核心数。
2、worker_cpu_affinity cpumask 。。。;
优点: 提升CPU缓存的命中率;
context switch:会产生CPU的不必要的消耗;cpu进程切换(浪费cpu资源和时间)
CPU隔离(worker线程绑定单个cpu,)
cpumask: 0000 0011(表示第一和第二两颗)
0000 0001
0000 0010
0000 0100
绑定三颗cpu=> worker_cpu_affinity 00000001 00000010 00000100
3、timer_resolution 间隔; 减低时间解析度,减少系统调用.生产力强的应该大量运行在用户空间,
计时器解析度:降低此值,可减少gettimeofday()系统调用的次数;
4、worker_priority number;
指明worker进程的nice值;
-20,19
100,139
(2)事件相关的配置:
1、accept_mutex {off|on};
master调度用户请求至各worker进程时使用的负载均衡锁;on表示能让多个worker轮流地、序列化地去响应新请求;
2、lock_file file;
accept_mutex用到的锁文件路径;
3、use [epoll|rtsig(实时信号)|select|poll]
指明使用的事件模型;建议让Nginx自行选择;
4、worker_connections #;
设定单个worker进程所能处理的最大并发连接数量;
worker_connects * work_processes 1024 * 8
(3)用于调试、定位问题的:
1、daemon {on|off} 是否以守护进程方式运行Nginx;调试时应该设置为off。
2、master_process {on|off};
是否以master/worker模型来运行Nginx;调试时可以设置为off;
3、error_log 位置 级别;
若要使用debug级别,需要在编辑Nginx时使用 --with-debug选项;
总结:常需要进行调整的参数
worker_processworker_connectionsworker_cpu_affinity,worker_priority

优质内容筛选与推荐>>
1、张宴的博客
2、数据库读写分离
3、hadoop1.0.4+nutch1.6“单机”配置
4、ROS Learning-008 beginner_Tutorials ROS话题
5、jquery正则表达式验证:验证身份证号码


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号