内核参数与系统调优

共 17 题
#

1. net.ipv4.tcp_keepalive_time/intvl/probes 长连接保活参数调优中默认值、内网与公网差异以及应用层 keepalive 与 TCP keepalive 的互补

A 默认参数下死链判定可能长达约 2 小时,公网/NAT 场景通常需调低以便更快回收假活连接 ✓ 正确答案
B tcp_keepalive_probes 表示空闲多久开始探测
C TCP keepalive 能验证应用进程是否真正存活
D TCP keepalive 探测报文携带业务数据
#

2. ulimit 与 /etc/security/limits.conf、systemd LimitNOFILE 的生效层级中 login shell 与 systemd service 的差异及 nofile 软硬限制

A systemd 服务的 ulimit 由 /etc/security/limits.conf 直接控制
B 修改 limits.conf 后无需重启进程即可生效
C 硬限制是进程可自行无限提高的上限
D systemd 服务默认软限制为 1024,需用 LimitNOFILE 配置,且以 /proc/<pid>/limits 为最可靠验证 ✓ 正确答案
#

3. vm.dirty_ratio、dirty_background_ratio、dirty_expire_centisecs 的协同,以及数据库主机为何要调低脏页回写阈值

A dirty_ratio 是后台异步回写的起点
B 回写阈值越高,写延迟越平滑
C dirty_expire_centisecs 控制 CPU 频率
D 脏页占比超过 dirty_ratio 后写操作需同步等待回写,数据库主机调低阈值可避免周期性 IO 抖动 ✓ 正确答案
#

4. vm.swappiness 在数据库主机为何通常调到 1 或 0

A swappiness 越大,越倾向保留匿名页
B swappiness 与页缓存无关
C swappiness=0 表示内存永不换出
D 数据库主机调低 swappiness 是为避免 swap 命中导致磁盘 IO 延迟,但前提是内存充足 ✓ 正确答案
#

5. vm.zone_reclaim_mode 如何控制 NUMA 节点内存回收,为何该参数正被内核弃用(改用 NUMA balancing、memory.reclaim 等机制)?

A 该参数与 cgroup 内存回收完全无关
B zone_reclaim_mode 控制 CPU 调频
C 该参数数值越大表示越优先使用远端内存
D 开启 zone reclaim 后优先回收本节点内存避免远端访问,但与现代回收机制冲突,默认关闭并逐步被 NUMA balancing 等替代 ✓ 正确答案
#

6. net.core.default_qdisc 与 fq/codel 在缓冲膨胀(bufferbloat)控制中的作用及与 BBR 拥塞控制算法的配合

A fq+codel 通过主动丢包控制排队延迟,缓解缓冲膨胀,是 BBR 推荐的搭配 ✓ 正确答案
B pfifo_fast 能有效对抗缓冲膨胀
C BBR 依赖丢包信号进行拥塞探测
D qdisc 与 TCP 拥塞控制完全无关
#

7. net.core.netdev_max_backlog 如何实现网卡收包队列?

A 它限制设备层收包队列长度,CPU 处理不及会丢包,可用 softnet_stat 与 netstat -i 观测 ✓ 正确答案
B 它控制网卡环形缓冲区(ring buffer)的大小
C 该参数与丢包无关
D backlog 越大越好,没有任何代价
#

8. net.ipv4.conf.all.log_martians 如何开启可疑(martian)包的日志记录?

A 开启后内核会记录源地址非法的 martian 包丢弃事件,可用于安全溯源与路由排障 ✓ 正确答案
B 开启后 martian 包会被正常转发
C 该参数只影响 IPv6
D martian 包指目标端口非法的包
#

9. net.ipv4.icmp_echo_ignore_broadcasts 如何实现 smurf 防护?

A smurf 攻击利用伪造源地址的广播 ICMP echo 请求触发全员应答放大流量 ✓ 正确答案
B icmp_echo_ignore_broadcasts 会阻断所有正常 ping
C smurf 攻击不涉及源地址伪造
D 该参数对网络设备无效,主机层无需配置
#

10. net.ipv4.tcp_max_syn_backlog 如何实现 SYN backlog?

A tcp_max_syn_backlog 限制已完成握手的 accept 队列长度
B SYN 队列暂存未完成握手的连接,溢出表现为连接超时与 SYN dropped 计数增长 ✓ 正确答案
C SYN cookie 会保存所有半连接状态
D 该参数与 SYN flood 攻击无关
#

11. net.ipv4.tcp_synack_retries 如何控制 SYN-ACK 重传次数?

A 它控制服务端 SYN-ACK 最大重传次数,默认 5,按指数退避重传 ✓ 正确答案
B 它控制客户端 SYN 重传次数
C 重传间隔固定为 1 秒
D 该参数影响已建立连接的数据重传
#

12. net.ipv4.tcp_tw_reuse 如何复用 TIME_WAIT 连接及其风险?

A 它能让服务端被动关闭的 TIME_WAIT 连接被立即复用
B 开启后 TIME_WAIT 完全消失
C 它基于 TCP 时间戳复用客户端出站 TIME_WAIT 连接,在 NAT 场景有串扰风险 ✓ 正确答案
D 它与 tcp_timestamps 无关
#

13. vm.max_map_count 设置过小导致 Elasticsearch 启动失败的根因与处理中 mmap 段数量限制、生产推荐值与持久化配置

A 修改后必须重启内核才能生效
B 它控制 swap 分区大小
C ES 官方推荐值为 1024
D 它限制进程可拥有的内存映射区域总数,ES 依赖 mmap 访问索引文件,过小会导致启动失败 ✓ 正确答案
#

14. vm.panic_on_oom 在内存耗尽时如何控制系统行为?

A oom_score_adj 无法保护进程
B 取 0 时系统直接死机
C 默认值 0 表示触发 OOM Killer 随机杀进程,取 2 则强制 panic,关键业务主机需结合重启策略权衡 ✓ 正确答案
D 该参数只影响 swap 使用
#

15. vm.watermark_scale_factor 如何影响内存水位线(watermark)的计算?

A scale_factor 越大,min 水位越低
B 水位线只影响磁盘缓存,不影响进程内存分配
C 调高 watermark_scale_factor 使 low/high 水位上移,更早触发后台回收,降低直接回收与 OOM 概率 ✓ 正确答案
D 直接回收比后台回收延迟更低
#

16. sysctl 调优的典型组合中 file-max/nr_open、TCP 缓冲区与 vm.swappiness 在通用服务下的推荐值如何确定并验证

A 网上抄的配置对所有机器都最优
B 单进程 nofile 上限不能超过 fs.nr_open,TCP 缓冲区设置受 net.core.rmem_max/wmem_max 约束 ✓ 正确答案
C swappiness 在所有场景都应当调成 0
D 调优后无需压测验证
#

17. 内核参数持久化的加载顺序与覆盖规则中 /etc/sysctl.conf、/etc/sysctl.d/*.conf 与 systemd-sysctl 的优先级冲突如何排查

A systemd-sysctl 不会输出加载错误
B /etc/sysctl.conf 永远优先于所有 sysctl.d 文件
C 修改配置后必须重启才能生效
D /etc/sysctl.d 内文件按字典序加载,后加载者覆盖先加载者,/run 目录优先级高于 /etc ✓ 正确答案