找回密码
 立即注册
首页 业界区 业界 银河麒麟v10 sysctl内核参数加载顺序的思考 ...

银河麒麟v10 sysctl内核参数加载顺序的思考

梢疠 前天 22:16
背景

最近很多伙伴想使用银河麒麟高级服务器系统v10来部署最新版本的k8s集群,可能遇到了各式各样的问题,于是准备使用kylinOS v10重温一遍kubeadm部署最新版本k8s的流程,也是替大家踩踩坑。
在进行服务器基础配置优化时,到内核参数修改这一步,引发了一些新的思考。
过程

在修改内核参数时,我很熟练的执行了以下命令:
  1. cat > /etc/sysctl.d/k8s.conf << EOF
  2. net.ipv4.ip_forward = 1
  3. net.bridge.bridge-nf-call-iptables = 1
  4. net.bridge.bridge-nf-call-ip6tables = 1
  5. net.ipv4.conf.all.route_localnet = 1
  6. vm.overcommit_memory=1
  7. vm.panic_on_oom=0
  8. vm.swappiness = 0
  9. fs.inotify.max_user_watches=89100
  10. fs.file-max=52706963
  11. fs.nr_open=52706963
  12. net.netfilter.nf_conntrack_max=2310720
  13. net.ipv4.tcp_keepalive_time = 600
  14. net.ipv4.tcp_keepalive_probes = 3
  15. net.ipv4.tcp_keepalive_intvl =15
  16. net.ipv4.tcp_max_tw_buckets = 36000
  17. net.ipv4.tcp_tw_reuse = 1
  18. net.ipv4.tcp_max_orphans = 327680
  19. net.ipv4.tcp_orphan_retries = 3
  20. net.ipv4.tcp_syncookies = 1
  21. net.ipv4.tcp_max_syn_backlog = 16384
  22. net.ipv4.tcp_max_syn_backlog = 16384
  23. net.ipv4.tcp_timestamps = 0
  24. net.core.somaxconn = 16384
  25. EOF
复制代码
读取顺序一定是:
/usr/lib/sysctl.d/10-default-yama-scope.conf --> /usr/lib/sysctl.d/50-pid-max.conf --> /etc/sysctl.d/99-sysctl.conf --> /usr/lib/sysctl.d/kylin.conf --> /etc/sysctl.conf
tuned.service加载顺序


  • 如果tuned.service是enable状态,则其后于systemd-sysctl.service加载。
  • tuned分为多种模式,每种模式对应其配置文件,tuned-adm active可查看系统使用的哪种模式,tuned-adm list profiles查看系统支持的模式,tuned-adm profile [name]设置系统为某模式,例如,本系统为:
    1. sysctl -p
    复制代码
    则其对应加载的配置文件为:/usr/lib/tuned/virtual-guest/tuned.conf
  • 对应的tuned.conf文件加载完毕后,tuned服务还会执行sysctl --system命令,如果配置的参数和之前加载的配置文件有相同内核参数,同样会覆盖。
    sysctl --system执行加载顺序如下:
    1. cat /proc/sys/net/ipv4/ip_forward
    2. 0
    复制代码
临时主动加载配置文件

系统中还可以使用sysctl -p来主动加载指定内核参数配置文件生效,其后不指定任何文件时,默认加载/etc/sysctl.conf,若指定文件,则表示加载指定文件,例如:
  1. # nkvers
  2. ############## Kylin Linux Version #################
  3. Release:
  4. Kylin Linux Advanced Server Release V10 (Trading)
  5. Kernel:
  6. 4.19.90-89.18.v2401.ky10.x86_64
  7. Build:
  8. Kylin Linux Advanced Server
  9. Release V10 SP3 2403/(Trading)-x86_64-Build03/20240813
  10. #################################################
复制代码
银河麒麟系统中需要注意的点

银河麒麟系统中默认有个/usr/lib/sysctl.d/kylin.conf内核参数配置文件,其中已经配置诸多优化参数,其命名规则加载顺序较为靠后,所以在配置与其文件相同的参数项时,需要注意:

  • 将文件命名修改为在kylin.conf其后加载
  • 也可以选择直接修改kylin.conf中的配置
  • 直接配置到/etc/sysctl.conf中
总结


  • tuned.service后于systemd-sysctl.service加载
  • 不同目录同名配置文件取目录优先级高的,非同名统一按照文件名的字典顺序加载
  • 优先级越高越先加载,越低越后加载,/etc/sysctl.conf最后加载
  • 别忘记/usr/lib/sysctl.d/kylin.conf文件
  • 别忘记相同参数覆盖的问题

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册