zoukankan      html  css  js  c++  java
  • web服务器系统内核优化

    net.ipv4.neigh.default.gc_stale_time=120
    ARP参数,检查一次相邻层记录的有效性的周期。当相邻层记录失效时,将在给它发送数据前,再解析一次。缺省值是60秒。

    net.ipv4.conf.all.rp_filter=0
    =1"告诉"kernel加强入站过滤(ingress filtering)和出站过滤(egress filtering)

    net.ipv4.conf.default.rp_filter=0
    反向过滤技术,系统在接收到一个IP包后,检查该IP是不是合乎要求,不合要求的IP包会被系统丢弃。该技术就称为rpfilter。

    net.ipv4.conf.default.arp_announce = 2
    net.ipv4.conf.all.arp_announce=2
    arp_announce:对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口
    0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址
    1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.
    2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.


    net.ipv4.tcp_max_tw_buckets = 10000
    系统在同时所处理的最大timewait sockets 数目。如果超过此数的话,time-wait socket 会被立即砍除并且显示警告信息。之所以要设定这个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要人为的降低这个限制,不过,如果网络条件需要比默认值更多,则可以提高它(或许还要增加内存)

    net.ipv4.tcp_syncookies = 1
    当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭

    #net.ipv4.tcp_max_syn_backlog = 1024

    net.ipv4.tcp_synack_retries = 2
    为了打开对端的连接,内核需要发送一个SYN 并附带一个回应前面一个SYN 的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK 包的数量。

    net.ipv4.conf.lo.arp_announce=2
    #net.ipv4.tcp_max_syn_backlog = 2048

    net.ipv4.tcp_max_syn_backlog = 8192
    表示那些尚未收到客户端确认信息的连接(SYN消息)队列的长度,默认为1024,加大队列长度为262144,可以容纳更多等待连接的网络连接数。

    net.ipv4.tcp_tw_recycle = 1
    开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭

    net.ipv4.tcp_tw_reuse = 1
    表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。

    net.core.somaxconn = 262144
    用来限制监听(LISTEN)队列最大数据包的数量,超过这个数量就会导致链接超时或者触发重传机制

    net.ipv4.tcp_keepalive_time = 600
    当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟

    net.ipv4.tcp_syn_retries = 1
    在内核放弃建立连接之前发送SYN 包的数量

    net.ipv4.tcp_synack_retries = 1
    为了打开对端的连接,内核需要发送一个SYN 并附带一个回应前面一个SYN 的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK 包的数量。

    net.ipv4.tcp_fin_timeout = 1
    如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60 秒

    net.ipv4.tcp_max_tw_buckets = 5000
    系统在同时所处理的最大timewait sockets 数目。如果超过此数的话,time-wait socket 会被立即砍除并且显示警告信息。之所以要设定这个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要人为的降低这个限制,不过,如果网络条件需要比默认值更多,则可以提高它(或许还要增加内存)

    vm.swappiness = 5

    net.ipv4.tcp_keepalive_time = 300
    当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟

    net.ipv4.tcp_max_tw_buckets = 180000
    系统在同时所处理的最大timewait sockets 数目。如果超过此数的话,time-wait socket 会被立即砍除并且显示警告信息。之所以要设定这个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要人为的降低这个限制,不过,如果网络条件需要比默认值更多,则可以提高它(或许还要增加内存)

    vm.swappiness = 5
    这可以大大降低系统对于swap的写入

  • 相关阅读:
    倒排索引在MYSQL,PostgreSQL,ElasticSearch中的设计思想
    MySQL Group Replication: What Is It? Replicated Database State Machine & Paxos implementation
    Redis 6.0 docker Cluster
    What is the "Docker Subnet" used for?
    Windows MYSQL 8.0 或者 5.7 查找my.ini 修改端口号
    Kerberos Network Authentication Service Window & Mac
    协合新能源集团有限公司 | 红海 eHR BPMN
    基于 springBoot 实现webSocket方式的扫码登录
    Python中IO编程-StringIO和BytesIO
    Neo4j基本入门
  • 原文地址:https://www.cnblogs.com/guantou1992/p/9729847.html
Copyright © 2011-2022 走看看