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

2023-03-08 19:46:30 +08:00
 zhoudaiyu
比如按照类别:DB/MQ/Cache/K8s/应用虚机等+机器配置:32C/256G/HDD 、4C/8G/HDD 、64C/512G/SSD 等,在加上如果机器上部署的业务有一些特殊需求等需要内核参数个性化调整来确定初始内核参数配置吗?后续是什么情况才调优呢?通过使用方反馈,或者遇到了一些问题?还是主动会优化?以及如何做多个版本内核的配置呢?比如 2 、3 、4 、5 的内核参数是有些不同的。
2012 次点击
所在节点    Linux
17 条回复
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
2023-03-08 20:00:03 +08:00
这个问题太复杂了
问你们公司做内核优化的
要针对不同场景做优化
unnamedhao
2023-03-08 20:29:55 +08:00
我记得 redhat 有个工具,可以自动优化 sysctl 参数,找 chatgpt 问一下
zhoudaiyu
2023-03-08 22:13:17 +08:00
@OutOfMemoryError 感谢,这是 sysctl.conf 的全部内容吗
zhoudaiyu
2023-03-08 22:14:01 +08:00
@lhbc 400 人小公司,没人管这个。我们运维就管了一部分这种事,开发只用,不管具体是啥
OutOfMemoryError
2023-03-08 22:14:21 +08:00
@zhoudaiyu 我随便连了内网一台业务服务器给你拉下来的。这台机器涉及到大量网络交互
zhoudaiyu
2023-03-08 22:17:16 +08:00
@unnamedhao chatgpt 没能理解我的问题,Google 也没搜到 😂
defunct9
2023-03-08 22:28:03 +08:00
开 ssh ,让我上去看看再调
salmon5
2023-03-08 22:42:44 +08:00
内核调优,糊弄住了 5 万,糊弄不住 5 白
salmon5
2023-03-08 22:43:06 +08:00
内核调优,糊弄住了 5 万,糊弄不住 5 千
salmon5
2023-03-08 22:46:09 +08:00
这个时代已经过去了,绝大部分公司不会在意孔乙己会几种回字的写法
seers
2023-03-08 22:53:55 +08:00
除非程序有要求,不然不调整,不过一般数据库都会有要改得地方,k8s 的时代已经没多人在意机器极限性能了,不够就加
MrKrabs
2023-03-08 23:06:38 +08:00
各种 buffer 拉大点差不多了
kebamt
2023-03-08 23:08:03 +08:00
kebamt
2023-03-08 23:08:33 +08:00
输入原答主的回复就告诉我了
unnamedhao
2023-03-09 06:44:00 +08:00
tuned
idontnowhat2say
2023-03-10 17:00:38 +08:00
这个我熟,作为资深的运维,也参考了不少国外的工程师的文章和书籍中的意见,可以很明确的得出结论,内核参数的最佳实践就是有需要的时候再动,因为默认的参数就已经满足 99%的需求了,没遇到问题就来优化是浪费时间,此外乱调内核参数是极其危险的行为,比如此前臭名昭著的 tcp_recyle, 不理解背后的作用和逻辑不要改,特别是从网上看别人的最佳实践,然后一股脑的 copy 过来。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/922368

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX