• nginx优化


    背景

         客户端发起请求 通过slb 给到nginx,然后nginx再给到后端,经常出现请求接口超时,nginx日志都没有问题(也就是给到nginx处理的请求都完成了),查看slb的流量,远远小于带宽(网络层面应该没有问题),所以问题应该在请求到达nginx操作系统层面。优化nginx在操作系统上面的请求。

    worker_processes  8;  改为核心数

    events {
        use epoll;
        worker_connections 65535;
        multi_accept on;  #可以一次建立多个连接
    }

       sendfile on;
       tcp_nopush on;
       tcp_nodelay on;
       keepalive_timeout 65; 

       gzip on;
       client_header_buffer_size 512k;
       large_client_header_buffers 4 512k;
       proxy_send_timeout 600;
       proxy_read_timeout 600;
       proxy_connect_timeout 600;
       client_max_body_size 500m;

    vim /etc/sysctl.conf

    vm.swappiness = 0
    kernel.sysrq = 1
    
    net.ipv4.neigh.default.gc_stale_time = 120
    
    # see details in https://help.aliyun.com/knowledge_detail/39428.html
    net.ipv4.conf.all.rp_filter = 0
    net.ipv4.conf.default.rp_filter = 0
    net.ipv4.conf.default.arp_announce = 2
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_announce = 2
    
    # see details in https://help.aliyun.com/knowledge_detail/41334.html
    net.ipv4.tcp_max_tw_buckets = 5000
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_synack_retries = 2
    
    net.ipv6.conf.lo.disable_ipv6 = 1
    
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.core.somaxconn = 40960
    net.ipv4.tcp_fin_timeout = 10
    net.ipv4.tcp_keepalive_time = 150
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 0
    net.ipv4.tcp_max_tw_buckets = 20000
    net.ipv4.tcp_max_syn_backlog = 8096
    net.ipv4.ip_local_port_range = 1024 65000
    

    下面的命令 可能和上面的效果一样,直接运行

    echo "0" > /proc/sys/net/ipv4/tcp_tw_recycle
    echo "0" > /proc/sys/net/ipv4/cp_timestamps
    sysctl -w net.ipv4.tcp_tw_recycle=0
    sysctl -w net.ipv4.tcp_timestamps=0
    
    net.ipv4.tcp_tw_recycle = 0

    ulimit -a   这个也调整一下

    cat wxpt.access.log-20210518 |grep jianhuochakucun |grep -v "ups_status:200"

     location /oms_order {   

          proxy_pass http://omsorder/;
      proxy_redirect default;
      proxy_read_timeout 300;
      proxy_connect_timeout 300;
      proxy_send_timeout 300;
      client_max_body_size 50m;
      proxy_buffer_size 16k;
      proxy_buffering on;
      proxy_buffers 4 64k;
      proxy_busy_buffers_size 128k;
      proxy_temp_file_write_size 128k;

    }

    proxy_ignore_client_abort off;
    当客户端网络中断请求时,nginx服务器中断其对后端服务器的请求。即如果此项设置为on开启,则服务器会忽略客户端中断并一直等着代理服务执行返回,如果设置为off,则客户端中断后nginx也会中断客户端请求并立即记录499日志,默认为off

    要有多努力才能对得起奔波的脚步和身上的期望
  • 相关阅读:
    ps切图保存所有切片为png
    指法练习 V1.0_haley(指法练习工具)
    zoj 4020 The 18th Zhejiang University Programming Contest Sponsored by TuSimple
    CF 某套题 O :Grid (简单BFS)
    codeforces 某套题s : surf(贪心 || 动态规划)
    STL模板整理 全排列
    STL模板整理 priority_queue
    STL模板整理 pair
    STL模板整理 set
    第八届省赛 B:Quadrat (打表找规律)
  • 原文地址:https://www.cnblogs.com/hxfcodelife/p/14762587.html
Copyright © 2020-2023  润新知