zoukankan      html  css  js  c++  java
  • Nginx优化:CPU篇

    CPU

    1.worker进程数量应当等于cpu核心数
    配置语法:worker_processes number | auto;
    比如:worker_processes auto;
    配置位置:main

    2.worker进程绑定cpu
    配置语法:worker_cpu_affinity cpumask 1000 0100 0010 0001; # 4核为例
    默认配置:worker_cpu_affinity auto;
    配置位置:mian

    2.停止系统上其他耗资源的非Nginx进程

    3.减少主动切换,提升优先级占用cpu更长的时间
    Nice静态优先级:-20 -- 19,尽量小,比如-20 ;
    Priority动态优先级:0-139;
    配置语法:worker_priority number;
    默认配置:worker_priority -20;
    配置位置:main

    4.减少被动切换,worker进程尽量使用非阻塞调用,别使用阻塞调用主动让出cpu
    nginx lua的使用时,应该注意严禁使用lua自带的一些库,严禁使用会造成阻塞的库,尽量使用 lua-resty-* 的库,这些是openresty的相关库,是经过验证的。

    5.延迟处理连接:当与客户端建立连接后,不会立即激活worker进程去处理连接

    server {
            listen 80 deferred;
            return 200 "OK
    ";
    }

    6.为了防止惊群问题,新版本的Nginx内核(3.9)会使用reuseport。在内核中实现了负载均衡,使用后,如果你再次使用top命令查看,你会发现worker进程之间占用cpu的time会均衡。

    http {
        server {
            listen 80 reuseport;
            ...
        }
    }
  • 相关阅读:
    《TD项目开发小结》
    感悟
    毕业两年了
    ip+port无法访问nginx问题
    问题解决之道
    调休9天的那些日子
    关于类加载器(ClassLoader)
    ios核心蓝牙之心率监控(swift)
    git(git-flow)的高效管理使用
    WKWebview加载本地图片时出现路径问题
  • 原文地址:https://www.cnblogs.com/-wenli/p/13668975.html
Copyright © 2011-2022 走看看