【运维面试100问】(十)你有对系统内核参数优化的经历吗?

发布时间:2023年12月20日

??本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》:?python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》暂未更新

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

?内核参数优化

对于系统参数优化是很多的,一般默认的有的低,有的高,不符合线上需求,需要根据自己业务量的大小来进行微调整

这是本人用到过的一些参数优化:tcp/http内核参数优化样本:

#tcp/http内核参数优化样本:
# cat /etc/sysctl.conf
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
vm.swappiness = 0
net.ipv4.neigh.default.gc_stale_time = 120
net.ipv4.tcp_max_syn_backlog = 65535
net.core.somaxconn = 65535
net.ipv4.tcp_max_tw_buckets = 65535
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 2
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_fin_timeout = 20
net.ipv4.route.gc_timeout = 100
fs.file-max=10485760
kernel.sysrq=1
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_retries2 = 11
vm.overcommit_memory = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_timestamps = 1
# 以下配置需要自行根据机器内存衡量,示例机器内存为 4G
# TCP 内存使用低于 0.5G 时不做干扰
# 使用 1.5G 内存后启动 TCP 内存压力模式,直到内存使用 低于 0.5G 时关闭内存压力模式
# 内存使用上限为 3G
# 参数数值单位为页,大部分系统内存页默认是 4K,可通过命令获取当前内存页大小:$ getconf PAGE_SIZE
# 反向计算方法:131072 * 4K = 524288 K = 512 M = 0.5 G
# 正向计算方法: 0.5 G = 512 M = 512 * 1024 K / 4K = 131072
net.ipv4.tcp_mem = 131072 393216 786432


# TCP Socket 接收缓冲区分配的最小字节数为 1K
# 接收缓冲区在内存负载不高时的默认值 4K
# 接收缓冲区的最大字节数 6M
net.ipv4.tcp_rmem = 1024 4096 6291456
# TCP Socket 发送缓冲区分配的最小字节数为 1K
# 发送缓冲区在内存负载不高时的默认值 4K
# 发送缓冲区的最大字节数 4M
net.ipv4.tcp_wmem = 1024 4096 4194304
# 其他协议如 UDP Socket 默认的数据发送缓冲区大小,单位字节,约 852.7K
net.core.wmem_default = 873200
# 各类 Socket 的最大数据发送缓冲区大小,单位字节,4M
net.core.wmem_max = 4194304
# 其他协议如 UDP Socket 默认的数据接收缓冲区大小,单位字节,约 852.7K
net.core.rmem_default = 873200
# 各类 Socket 的最大数据接收缓冲区大小,单位字节,6M
net.core.rmem_max = 6291456
# cat /etc/security/limits.conf
* hard nofile 610000
* soft nofile 610000
root hard nofile 610000
root soft nofile 610000
* hard core unlimited
* soft core unlimited

一般问完你参与过的优化之后,面试官可能会追问:例如高并发内核参数优化

-Iptables 相关
- 单进程最大打开文件数限制
- 内核 TCP 参数方面
- 内核其他 TCP 参数说明
-IO 事件分配机制

?参考:

https://blog.csdn.net/qq_29677867/article/details/90048086
https://www.cnblogs.com/weifeng1463/p/6825532.html

?

文章来源:https://blog.csdn.net/zerotoall/article/details/135102064
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。