# 1. kernel.core_pattern 如何配置 core dump 落盘(路径、命名与管道转发),core 大小限制(ulimit -c)与生产环境的安全处置 A core 文件不包含敏感内存内容 B 只要设置 core_pattern 就一定会生成 core 文件 C core_pattern 支持以管道转发给 systemd-coredump 等处理程序,且需 ulimit -c 配合才能生成 ✓ 正确答案 D fs.suid_dumpable 与 core dump 无关
# 2. memory cgroup 的 memory.high 与 memory.max 如何实现软、硬内存限制? A memory.high 与 memory.max 作用相同 B memory.high 超限一定杀死进程 C 两个参数可以任意大于物理内存 D memory.max 超限触发强制回收与 OOM Kill,memory.high 超限进行软回收与节流,生产上通常 high 低于 max 形成两级防护 ✓ 正确答案
# 3. transparent hugepage 在数据库主机的禁用原因 A THP 只能提高性能,没有任何副作用 B THP 的合并与分裂过程会引发 CPU 与延迟抖动,数据库主机通常禁用(never) ✓ 正确答案 C 运行时 echo never 会立即拆分已有大页 D madvise 模式对所有内存都启用大页
# 4. PSI(/proc/pressure)cpu/memory/io stall 指标解读 A some 表示至少一个任务被资源不足延迟的时间占比,full 表示所有任务被延迟,直接度量压力对任务的伤害 ✓ 正确答案 B PSI 与 CPU 使用率含义相同 C full 高说明资源充足 D PSI 只有 1 分钟窗口
# 5. USE 方法(利用率/饱和度/错误)系统性排障 A USE 只关注 CPU 资源 B USE 对每个资源依次考察利用率、饱和度与错误三个维度,是资源视角的系统排障方法 ✓ 正确答案 C 利用率低就一定没有瓶颈 D USE 与 RED 方法相互矛盾
# 6. btrace(blktrace 封装)如何跟踪块设备 IO 请求? A blk-mq 时代事件语义与单队列完全相同 B blktrace 只能统计吞吐量 C blktrace 通过块层 tracepoint 记录请求从入队到完成的时序,可分析排队与延迟,但生产环境需控制开启时长 ✓ 正确答案 D btrace 不产生任何性能开销
# 7. free -h 输出的内存指标如何解读,可用内存如何估算? A available 是内核估算的可分配内存(含可回收缓存),比 used/free 更适合判断内存是否够用 ✓ 正确答案 B used 字段准确反映真实内存占用 C buff/cache 完全不可回收 D available 等于 free
# 8. kernel.pid_max 与 fork 失败/无法创建进程的排查中 pid_max 与 threads-max 的关系、容器内 PID 限制与 cgroup pids.max A pid_max 只限制进程数,与线程无关 B 线程与进程都占用 PID 号空间,失败层级包括 pid_max、threads-max、ulimit -u 与容器 cgroup pids.max,需逐层排查 ✓ 正确答案 C 容器内不会受 pids 限制 D fork 失败只可能是磁盘满
# 9. kernel.shmmax、shmmni、shmall 如何实现共享内存段? A shmmax 限制单段大小、shmmni 限制段数量、shmall 限制共享内存总页数,过小会导致依赖 SysV 共享内存的应用启动失败 ✓ 正确答案 B shmmax 限制内存条数量 C ipcs 用于查看 CPU 使用 D shmall 的单位是字节
# 10. kernel.yama/ptrace_scope 如何实现 ptrace 限制? A 默认值 1 只允许 attach 有祖先关系的进程,跨进程调试需 root 或临时调低 ✓ 正确答案 B 取 0 时任何用户都能调试 root 进程 C 取 3 仍可随时通过 sysctl 调低 D 该参数与容器安全无关
# 11. load average 高但 CPU 空闲(D 态/IO 等待)的分析路径 A D 态进程可以直接 kill B load 只统计 CPU 运行队列 C load 包含不可中断睡眠(D 态)任务,D 态堆积常见于磁盘/NFS 等待,需结合 ps、iostat 与进程栈定位 ✓ 正确答案 D load 高必然伴随 CPU 使用率高
# 12. net.core.somaxconn 与 tcp_max_syn_backlog 溢出导致的连接建立失败(connection reset)如何用 ss 与 netstat 定位 A somaxconn 只影响 SYN 队列 B ss 的 Recv-Q 顶满 backlog 说明 accept 队列溢出,netstat -s 的 ListenOverflows 计数可确认 ✓ 正确答案 C connection reset 只可能是防火墙导致 D accept 队列与 backlog 参数无关
# 13. net.netfilter.nf_conntrack_buckets 如何实现 hash 桶数? A buckets 决定单连接的超时时间 B conntrack 条目越多越好,无内存代价 C conntrack 表满会静默丢弃新连接(dmesg 报 table full),需按峰值连接数调整 max 与 buckets ✓ 正确答案 D conntrack 只影响 TCP 已建立连接
# 14. ps auxf 如何以进程树形式查看进程父子关系? A f 选项以树形展示进程父子层级,便于定位启动链条与孤儿/异常派生进程 ✓ 正确答案 B auxf 输出与 PPID 无关 C pstree 不能查看 PID D 树形输出不受 pid namespace 影响
# 15. vm.overcommit_memory 三种模式与 malloc 大内存申请的关系,以及 overcommit 导致进程被 OOM 的排查 A OOM 只发生在模式 2 B overcommit_memory=2 会禁止所有内存分配 C malloc 是乐观分配,模式 0/1 下大内存申请常成功、运行期才被 OOM 杀,模式 2 则分配时即可能失败 ✓ 正确答案 D overcommit_ratio 与模式 0 有关
# 16. 磁盘 IO 调度器(mq-deadline/none/bfq)在 NVMe 与机械盘场景的选型依据与验证方法 A none 调度器会让机械盘性能达到 NVMe 水平 B bfq 的 CPU 开销最低 C NVMe 多队列设备通常用 none 避免调度开销,机械盘用 mq-deadline/bfq 减少寻道并保障延迟 ✓ 正确答案 D 调度器对 SSD 完全没有影响
# 17. cat /proc/<pid>/clear_refs 如何重置页表引用位以测量进程内存使用? A 写入后立即清空 RSS B clear_refs 会直接释放进程内存 C 清除引用位后读取 smaps 的 Referenced,可测量时间窗内实际被访问的页,识别驻留未用的内存 ✓ 正确答案 D 该接口对所有进程都可无权限写入
# 18. cat /proc/<pid>/io 如何查看进程的 IO 统计? A 该文件不含系统调用次数 B rchar 统计的是网络流量 C write_bytes 一定大于 wchar D rchar/wchar 是逻辑读写量,read_bytes/write_bytes 是落盘物理量,组合可区分缓存吸收与实际磁盘压力 ✓ 正确答案
# 19. cat /proc/<pid>/oom_score_adj 如何调整进程的 OOM 优先级? A 取值范围 -1000 到 1000,-1000 使进程对宿主级 OOM Killer 免疫,常用于保护关键进程 ✓ 正确答案 B 普通用户可任意把任意进程设为 -1000 C oom_score_adj 与 oom_score 无关 D 设置后需重启进程生效
# 20. cat /proc/cpuinfo 如何查看 CPU 型号、核数与特性? A 容器内 cpuinfo 必然反映容器独享的虚拟核 B cpu cores 字段是逻辑核数 C flags 只包含厂商信息 D physical id 与 core id 组合可统计物理核数,processor 条目数即逻辑核数,flags 反映指令集特性 ✓ 正确答案
# 21. cat /proc/meminfo 如何查看内存的详细统计? A MemAvailable 估算含可回收缓存的可用内存,比 MemFree 更能反映实际可用性 ✓ 正确答案 B Cached 全部不可回收 C Committed_AS 与 overcommit 机制无关 D SwapFree 与内存压力判断无关