V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
zhoudaiyu
V2EX  ›  Linux

各位公司的服务器的内核参数(/etc/sysctl.conf)的初始配置是怎么定的,又怎么调优的呢?

  •  
  •   zhoudaiyu · 2023-03-08 19:46:30 +08:00 · 2203 次点击
    这是一个创建于 633 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如按照类别:DB/MQ/Cache/K8s/应用虚机等+机器配置:32C/256G/HDD 、4C/8G/HDD 、64C/512G/SSD 等,在加上如果机器上部署的业务有一些特殊需求等需要内核参数个性化调整来确定初始内核参数配置吗?后续是什么情况才调优呢?通过使用方反馈,或者遇到了一些问题?还是主动会优化?以及如何做多个版本内核的配置呢?比如 2 、3 、4 、5 的内核参数是有些不同的。
    17 条回复    2023-03-10 17:00:38 +08:00
    OutOfMemoryError
        1
    OutOfMemoryError  
       2023-03-08 19:58:17 +08:00
    fs.file-max=1000000
    vm.overcommit_memory = 1
    net.ipv4.tcp_max_tw_buckets = 6000
    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.ipv4.tcp_max_syn_backlog = 16384
    net.core.netdev_max_backlog = 32768
    net.core.somaxconn = 32768
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.ipv4.tcp_timestamps = 0
    net.ipv4.tcp_fin_timeout = 20
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_syn_retries = 2
    net.ipv4.tcp_syncookies = 1
    #net.ipv4.tcp_tw_len = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_max_orphans = 3276800
    net.ipv4.ip_local_port_range = 1024 65000
    net.nf_conntrack_max = 6553500
    net.netfilter.nf_conntrack_max = 6553500
    net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
    net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
    net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
    net.netfilter.nf_conntrack_tcp_timeout_established = 3600


    有啥用我也不懂
    lhbc
        2
    lhbc  
       2023-03-08 20:00:03 +08:00 via Android
    这个问题太复杂了
    问你们公司做内核优化的
    要针对不同场景做优化
    unnamedhao
        3
    unnamedhao  
       2023-03-08 20:29:55 +08:00 via iPhone
    我记得 redhat 有个工具,可以自动优化 sysctl 参数,找 chatgpt 问一下
    zhoudaiyu
        4
    zhoudaiyu  
    OP
       2023-03-08 22:13:17 +08:00 via iPhone
    @OutOfMemoryError 感谢,这是 sysctl.conf 的全部内容吗
    zhoudaiyu
        5
    zhoudaiyu  
    OP
       2023-03-08 22:14:01 +08:00 via iPhone
    @lhbc 400 人小公司,没人管这个。我们运维就管了一部分这种事,开发只用,不管具体是啥
    OutOfMemoryError
        6
    OutOfMemoryError  
       2023-03-08 22:14:21 +08:00
    @zhoudaiyu 我随便连了内网一台业务服务器给你拉下来的。这台机器涉及到大量网络交互
    zhoudaiyu
        7
    zhoudaiyu  
    OP
       2023-03-08 22:17:16 +08:00 via iPhone
    @unnamedhao chatgpt 没能理解我的问题,Google 也没搜到 😂
    defunct9
        8
    defunct9  
       2023-03-08 22:28:03 +08:00 via iPhone   ❤️ 5
    开 ssh ,让我上去看看再调
    salmon5
        9
    salmon5  
       2023-03-08 22:42:44 +08:00
    内核调优,糊弄住了 5 万,糊弄不住 5 白
    salmon5
        10
    salmon5  
       2023-03-08 22:43:06 +08:00   ❤️ 1
    内核调优,糊弄住了 5 万,糊弄不住 5 千
    salmon5
        11
    salmon5  
       2023-03-08 22:46:09 +08:00   ❤️ 1
    这个时代已经过去了,绝大部分公司不会在意孔乙己会几种回字的写法
    seers
        12
    seers  
       2023-03-08 22:53:55 +08:00
    除非程序有要求,不然不调整,不过一般数据库都会有要改得地方,k8s 的时代已经没多人在意机器极限性能了,不够就加
    MrKrabs
        13
    MrKrabs  
       2023-03-08 23:06:38 +08:00
    各种 buffer 拉大点差不多了
    kebamt
        14
    kebamt  
       2023-03-08 23:08:03 +08:00
    kebamt
        15
    kebamt  
       2023-03-08 23:08:33 +08:00
    输入原答主的回复就告诉我了
    unnamedhao
        16
    unnamedhao  
       2023-03-09 06:44:00 +08:00 via iPhone
    tuned
    idontnowhat2say
        17
    idontnowhat2say  
       2023-03-10 17:00:38 +08:00
    这个我熟,作为资深的运维,也参考了不少国外的工程师的文章和书籍中的意见,可以很明确的得出结论,内核参数的最佳实践就是有需要的时候再动,因为默认的参数就已经满足 99%的需求了,没遇到问题就来优化是浪费时间,此外乱调内核参数是极其危险的行为,比如此前臭名昭著的 tcp_recyle, 不理解背后的作用和逻辑不要改,特别是从网上看别人的最佳实践,然后一股脑的 copy 过来。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2610 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 06:49 · PVG 14:49 · LAX 22:49 · JFK 01:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.