zoukankan      html  css  js  c++  java
  • nginx的性能优化

      全局中修改

      一、按内核核数修改CPU进程

    vim /apps/nginx/conf/nginx.conf
    
    worker_processes  auto;

    这里编译安装不是按照核数来的,yum安装配置文件默认是auto

      二、进程绑定CPU,利用缓存提高运行效率

      1、修改配置

    vim /etc/nginx/nginx.conf 

      2、添加CPU亲缘性

    worker_cpu_affinity 00000000 00000000 00000000 00000000;

    (这里八核CPU就写8个0 ,4个线程就写4次8个0,我这里只开了4个线程)

      3、绑定CPU

    worker_cpu_affinity 00000001 00000010 00000100 00001000;

    (这里表示,第一个线程绑定在第一个和,第二个线程绑定在第二个核,以此类推,1在第几位则表示绑定在第几个核上)

      4、由于只用四核cpu可以省略前面四个0

    worker_cpu_affinity 0001 0010 0100 1000;

     5、查看nginx进程绑定在哪个CPU上

    ps axo pid,cmd,psr |grep nginx
      2293 nginx: master process nginx   7
      2772 nginx: worker process         0
      2773 nginx: worker process         1
      2774 nginx: worker process         2
      2775 nginx: worker process         3
      2896 grep --color=auto nginx       1

      三、修改优先级,将nginx的优先级调到最高(官方nice值-20-20实际nice值-20-19,nice值最大19,设置100也是19)

      1、查看目前优先级

    ps axo pid,cmd,nice |grep nginx
      2293 nginx: master process nginx   0
      2772 nginx: worker process         0
      2773 nginx: worker process         0
      2774 nginx: worker process         0
      2775 nginx: worker process         0
      3145 grep --color=auto nginx       0
    

      2、调整优先级为nice最高值-20

    worker_priority -20;

      3、重读服务

    nginx -s reload 

      4、查看当前优先级

    ps axo pid,cmd,nice |grep nginx
      2293 nginx: master process nginx   0
      3288 nginx: worker process       -20
      3289 nginx: worker process       -20
      3290 nginx: worker process       -20
      3291 nginx: worker process       -20
      3325 grep --color=auto nginx       0

       四、修改所有worker进程能打开的文件数量上限,(最好与ulimit -n 的值保持一致,如65535)

      1、查看默认ulimit 值

    ulimit  -n
    1024

      2、临时修改ulimit值

    ulimit -n 1025

      3、永久修改ulimit值

    vim /etc/security/limits.conf

      4、添加这两行

    * soft nofile 65535
    * hard nofile 65535

      5、在nginx 的配置文件中添加值

    vim /etc/nginx/nginx.conf 
    
    worker_rlimit_nofile 65535

    ulimit值按实际硬件设置,设置过大会加重负载

    以上的都是在全局中修改的,只需要nginx -s reload 重读服务即可,不需要重启服务

      events中修改

      一、修改请求的方式

    accept_mutex on ;

    处理新的连接请求的方法;on指由各个worker轮流处理新请求,Off指每个新请求的到达都会通知(唤醒)所有的worker进程,但只有一个进程可获得连接,造成“惊群”,影响性能,默认值为off,可优化为on

      二、修改worker进程接受数

    multi_accept on;

    此指令默认为off,即默认为一个worker进程只能一次接受一个新的网络连接, on表示每个woker进程可以同时接受所有新的网络连接,修改为on可以提高并发量

      http中修改 

      一、不延迟发送,多个包才确认一次

    tcp_nodelay on ;

    在keepalived模式下的连接是否启用TCP_NODELAY选项,即Nagle算法
    当为off时,延迟发送,每发送一个包就需要确认ACK,才发送下一个包
    默认On时,不延迟发送,多个包才确认一次
    可用于:http, server, location

      二、在开启sendfile,on时合并响应头和数据体在一个包中一起发送

    tcp_nopush on ;

      三、是否启用sendfile功能,在内核中封装报文直接发送,默认Off

    sendfile on ;
    ------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------- 博客均为个人笔记,无所追求,仅供参考~~~ QQ--2382990774
  • 相关阅读:
    DOM——《JavaScript高级程序设计》笔记
    (转)用js无法获取style样式的问题解析与解决方法
    【2】可视化格式模型、背景、链接、表格表单——《精通CSS‘》
    安装sql server 2008 R2,提示错误:此计算机上安装了 Microsoft Visual Studio 2008 的早期版本。请在安装 SQL Server 2008 前将 Microsoft Visual Studio 2008 升级到 SP1。
    C#读取Word表格中的数据 (转)
    C#在Word文档指定位置处理表格
    c#操作word书签
    c# 操作word的
    函数参数压栈顺序2
    可变长参数
  • 原文地址:https://www.cnblogs.com/alexlv/p/14821122.html
Copyright © 2011-2022 走看看