美文网首页
Nginx性能优化(十三)

Nginx性能优化(十三)

作者: andpy | 来源:发表于2018-05-25 09:17 被阅读21次

    nginx性能优化

    系统结构瓶颈,业务模式,性能与安全,网络,系统,服务,程序,数据库,底层服务。

    ab接口压力测试工具

    //安装工具
    yum install httpd-tools
    
    //使用
    ab -n 2000 -c 2 http://127.0.0.1/index.html
    -n 总的请求数
    -c 并发数
    -k 是否开启长连接
    

    文件句柄
    Linux\Unix一切皆文件,文件句柄就是一个索引.

    • 系统全局性修改
    • 用户局部性修改
    • 进程局部性修改

    全局修改:

    #编辑文件
    vim /etc/security/limits.conf
    
    #root 只是针对root这个用户来限制,soft 只是发提醒,操作系统不会强制限制,一般的站点设置为一万左右就ok了
    root soft nofile 65535
    root hard nofile 65535
    # *代表通配符 所有的用户
    *    soft nofile 25535
    *    hard nofile 25535
    

    针对进程

    vim /etc/nginx/nginx.conf
    
    
    #针对 nginx进程 句柄的文件限制
    worker_rlimit_nofile 65535;
    
    events {
        user epoll;
        worker_connections 10240;
    }
    
    http {
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        charset utf-8;
    }
    

    CPU亲和
    把进程通常不会在处理器之间频繁迁移进程迁移的频率小,减少性能损耗.

    //查看物理cpu
    cat /proc/cpuinfo|grep "physical id"|sort|uniq|wc -l 
    //查看核心
    cat /proc/cpuinfo|grep "cpu cores"|uniq
    //详细查看 输入top之后按键 1
    top 
    
    //示例 通用配置
    #nginx 普通用户,一般以普通用户来跑
    user nginx;
    
    #当前启动的worker进程,官方建议是与系统核心数一直
    worker_processes 16;
    #方式一, 第一个work进程绑定第一个cpu核心,第二个work进程绑定到第二个cpu核心,依次内推 直到弟16个
    #wokrer_cpu_affinity 0000000000000000 0000000000000001 0000000000000010 0000000000000100 ... 1000000000000000
    
    #方式二,当 worker_processes 2 时,表明 第一work进程可以绑定第 2 4 6 8 10 12 14 16 核心,那么第二work进程就绑定 奇数核心
    #worker_cpu_affinity 1010101010101010 0101010101010101;
    
    #方式三,就是自动分配绑定
    worker_cpu_affinity auto;
    
    #日志级别
    error_log /var/log/nginx/error.log warn;
    
    pid /var/run/nginx.pid;
    
    #针对 nginx 句柄的文件限制
    worker_rlimit_nofile 35535;
    #事件模型
    events {
        #使用epoll内核模型
        user epoll;
        #每一个进程可以处理多少个连接
        worker_connections 10240;
    }
    
    http {
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        charset utf-8;
        #日志打印信息
        log_format main '#remote_addr';
        #请求日志
        access_log /var/log/nginx/access.log main;
        #access off;
        #静态资源处理
        sendfile on;
        #数据高效,不及时传递
        #tcp_nopush on;
        #及时不高效传递
        #tcp_nodeny on;
        keepalive_timeout 65;
    
        gzip on;
        #对ie6 以下的不进行压缩
        gzip_disable "MSIE [1-6]\.";
        gzip_http_version 1.1;
    }
    
    
    查看 核心绑定的nginx work进程
    ps -eo pid,args,psr | grep [n]ginx
    

    相关文章

      网友评论

          本文标题:Nginx性能优化(十三)

          本文链接:https://www.haomeiwen.com/subject/kjkyjftx.html