zoukankan      html  css  js  c++  java
  • Linux 服务器作为Nginx web服务器常见优化参数

    内核参数调整cat /etc/sysctl.conf# sysctl settings are defined through files in

    # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
    #
    # Vendors settings live in /usr/lib/sysctl.d/.
    # To override a whole file, create a new file with the same in
    # /etc/sysctl.d/ and put new settings there. To override
    # only specific settings, add a file with a lexically later
    # name in /etc/sysctl.d/ and put new settings there.
    #
    # For more information, see sysctl.conf(5) and sysctl.d(5).
    fs.file-max = 999999
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_keepalive_time = 600
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_max_tw_buckets = 5000
    net.ipv4.ip_local_port_range = 1024 61000
    net.ipv4.tcp_rmem = 4096 32768 262142
    net.ipv4.tcp_wmem = 4096 32768 262142 net.core.netdev_max_backlog = 8096 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 2097152 net.core.wmem_max = 2097152 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn.backlog = 1024

      file-max:这个参数表示进程(比如一个work进程)可同时打开最大句柄数,这个参数直接限制最大并发连接数,需要根据实际情况配置

           tcp_tw_reuse:这个参数设置为1,表示允许将TIME-WAIT状态的socket重新用于新的tcp链接,这个对于服务器而言很有意义,因为服务器上总有大量的TIME-WAIT状态链接

           tcp_keepalive_time : 这个参数表示当keepalive启用时,tcp发送keepalive消息的频度。默认2小时。若将其设置的小一些,可以更快清理无效的链接

           fin_timeout:  这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间

           max_tw_buckets: 这个参数表示操作系统允许TIME-WAIT套接字数量的最大值,如果超过这个数字,TIME-WAIT套接字将立刻清除并打印告警信息,该参数默认180000,过多的TIME-WAIT套接字会使服务器变慢

           tcp_max_syn.backlog: 这个参数表示tcp三次握手建立阶段收到SYN请求队列的最大长度,默认1024.将其设置的大一些可以使出现Nginx繁忙来不及accept新连接的情况下,Linux不至于丢失客户端发起的连接请求

           ip_local_port_range: 这个参数定义了在UDP和TCP连接中本地端口取值范围

           net.ipv4.tcp_rmem:定义了TCP接收缓存(tcp接收滑动窗口)的最小值、默认值、最小值

           net.ipv4.tcp_wmem : 定义了TCP发送缓存(tcp发送滑动窗口)的最小值、默认值、最小值

           netdev_max_backlog: 当网卡接收数据包的速度大于内核处理的速度时,会有一个对列保存这些数据包。这个参数表示该对列的最大值

           rmem_default: 这个参数表示内核套接字接收缓存区默认的大小

           wmem_default :这个参数表示内核套接字发送缓存区默认的大小

           rmam_max:这个参数表示内核套接字接收缓冲区的最大值

           wmem_max:这个参数表示内核套接字发送缓冲区的最大值 
    注意:滑动窗口的大小与套接字缓存区会在一定程度上影响并发连接数目。每个TCP连接都会为维持TCP滑动窗口而消耗内存,这个窗口会根据服务器的处理速度收缩或扩张。参数wmem_max的设置,需要平衡物理内存大小、Nginx并发处理的最大连接数量(由Nginx。conf中的worker_processes和worker_connections参数决定)而确定。当然如果仅仅是为了提高并发量使服务器出现OutOf Memory 问题而去降低滑动窗口大小。那么并不合适,因为滑动窗口过小会影响大数据传输速率。所以rmem_default、wmem_default、rmam_max、wmam_max这4个参数的设置需要根据实际业务特性和实际硬件成本来综合考虑

            tcp_syncookies: 该参数与性能无关,用于解决tcp的SYN攻击 

           

    草都可以从石头缝隙中长出来更可况你呢
  • 相关阅读:
    6-[多线程]-互斥锁、GIL、死锁、递归锁、信号量
    5-[多线程]-线程理论
    4-1 多进程练习题
    压缩与解压缩
    检测SSL证书很好用的三个网站
    shell之sort和uniq 及wc 的使用
    shell之cut和tr 的命令的使用
    三剑客之awk数组实战
    三剑客之sed
    linux文件查找(find,locate)
  • 原文地址:https://www.cnblogs.com/rdchenxi/p/12363543.html
Copyright © 2011-2022 走看看