zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    虚基类、虚函数与纯虚函数
    从尾到头打印链表
    Login
    (转)学习技术的三部曲:WHAT、HOW、WHY
    win7mstsc连接电脑
    C#面试题
    ASP.net C#笔记 (一)新建三层项目
    asp.net (一) 语法
    云服务器寻找
    VB.net笔记 (二)内置对象
  • 原文地址:https://www.cnblogs.com/itcomputer/p/6441998.html
Copyright © 2011-2022 走看看