暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

linux内核优化指南,看这篇就好了

大侠之运维 2022-08-13
1190

点击上方蓝字  关注大侠之运维


关于内核参数的调整,如果是一些大的公司,基本在基础镜像中就做好了,如果是一些中小公司的话,云平台上直接购买的主机的话,其实很多参数是没有做调整的。


很多时候,都是在具体部署中间件的时候才会去做调整,或者是遇到问题之后才会根据需求去调整。


今天这篇文章的话就是整理了最近几年工作中配置过的一些参数,可以直接用。


♦️

内核参数介绍


Linux 系统的 proc/sys目录下存放着多数内核的参数,并且可以在系统运行时进行更改,一般重新启动机器就会失效。


而/etc/sysctl.conf是一个允许改变正在运行中的Linux系统的接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改内核参数永久生效。


/proc/sys下内核文件与配置文件sysctl.conf中变量存在着对应关系,即修改sysct. conf配置文件,其实是修改/proc/sys相关参数。


所以对Linux内核优化只需修改/etc/ sysctl.conf文件即可。


vim etc/sysctl.conf


    net.ipv4.ip_forward=0
    net.ipv4.conf.default.rp_filter=1
    net.ipv4.confdefault.accept_source_route=0
    kernel.sysrq=0
    kernel.core_uses_pid=1
    net.ipv4.tcp_syncookies=1
    kernel.msgmnb=65536
    kernel.msgmax=65536
    kernel.shmmax=68719476736
    kernel.shmall=4294967296
    net.ipv4.tcp_max_tw_buckets=10000
    net.ipv4.tcp_sack=1
    net.ipv4.tcp_window_scaling=1
    net.ipv4.tcp_rmem=4096 87380 4194304
    net.ipv4.tcp_wmem=4096 16384 4194304
    net.core.wmem_default=8388608
    net.core.rmem_default=8388608
    net.core.rmem_max=16777216
    net.core.wmem_max=16777216
    net.core.netdev_maxbackog=262144
    net.core.somaxconn=262144
    net.ipv4.tcp_max_orphans=3276800
    net.ipv4.tcp_max_syn_backlog=262144
    net.ipv4.tcp_timestamps=0
    net.ipv4.tcp_synack_retries=1
    net.ipv4.tcp_syn_retries=1
    net.ipv4.tcp_tw_recycle=1
    net._ipv4.tcp_tw_reuse=1
    net.ipv4.tcp_mem=94500000 915000000 927000000
    net.ipv4.tcp_fin_timeout=1
    net.ipv4.tcp_keepalivetime=30
    net.ipv4.ip_local_port_range=1024 65535


    修改好之后可以执行sysctl -p生效


    下面具体介绍下部分参数的含


    net.ipv4.tcp_syn_retries=1 :对于一个新建连接,内核要发送多少个SYN连接请求才决定放弃


    net.ipv4.tcp_synack_retries=1 :tcp_synack_retries显示或设定Linux在回应SYN要求时尝试多少次重新发送初始SYN,ACK封包后才决定放弃


    net.ipv4.tcp_max_orphans=3276800 :系统所能处理不属于任何进程的TCP sockets最大数量


    net.ipv4.tcp_max_tw_buckets=10000 :系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息,默认是18000,可以通过调整配置避免产生大量的TIME_WAIT。


    net.ipv4.tcp_sack=1 :选择性应答(SACK),可以提高某些网络中所有可用带宽的使用效率


    net.ipv4.tcp_retires1=3 :放弃回应一个TCP连接请求前,需要进行多少次重试


    net.ipv4.tcp_retires2=15 :在丢弃激活的TCP连接之前,需要进行多少次重试


    net.ipv4.tcp_fin_timeout=30 :表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间


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


    net.ipv4.tcp_max_syn_backlog=262122 :表示SYN队列的长度,默认是1024,可以加大队列长度,可以容纳更多等待连接的网络连接数



    net.ipv4.tcp_orphans_retries = 0 :关闭TCP连接之前重试多少次



    net.ipv4.tcp_mem = 178368 237824 356736 第一个值表示低于这个值,表示内存无压力,第二个值表示进入内存压力状态,第三个值高于的话,不会继续分配sockets


    net.ipv4.ip_local_port_range=1024 65535 :用于向外连接的端口范围


    net.ipv4.tcp_keepalivetime=30 :如果某个TCP连接在空闲30s后,内核才发起probe探查


    net.ipv4.tcp_syncookies = 1 :开启SYN洪水攻击保护




    👆点击查看更多内容👆


    推荐阅读

    生产elasticsearch 8.0部署文档

    elastalert2-ELK日志关键字监控实践

    kubernetes安装参考这篇就好了!!


    记得星标记一下,下次更容易找到我

           



    文章转载自大侠之运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论