# 1. ext4 fast-commit(kernel 5.10+)在 fsync 延迟的工程价值? A fast-commit 用最小变更日志替代完整日志提交,显著降低 fsync 延迟 ✓ 正确答案 B fast-commit 会丢失数据 C fast-commit 与 fsync 无关 D fast-commit 降低了性能
# 2. page cache 的预读(readahead),内核如何检测顺序/随机访问并自适应预读窗口,为何对顺序读吞吐关键? A 内核检测顺序访问并自适应扩大预读窗口,批量异步读入提升顺序读吞吐 ✓ 正确答案 B 预读只对随机读有效 C 预读窗口固定不变 D 预读与顺序读无关
# 3. mmap 与 read/write 在 page cache 上的差异,mmap 免拷贝与 syscall 次数、缺页开销,何时应选哪种? A 两者完全等价 B mmap 免拷贝省 syscall 但要处理缺页,read/write 有拷贝但访问简单,选择取决于访问模式 ✓ 正确答案 C mmap 比 read/write 更慢 D read/write 可免拷贝
# 4. ext4 mbstat 在线文件系统元数据统计? A mbstat 只读不输出 B mbstat 在线暴露块分配器统计,用于监控与调试分配行为与碎片 ✓ 正确答案 C mbstat 需要重启才生效 D mbstat 与分配无关
# 5. ext4 fast-commit 相对普通 journal commit 只记录哪些变更(inode 与文件数据块),为什么能显著缩短 fsync 与崩溃恢复时间? A fast-commit 记录完整事务 B fast-commit 只记录数据不记录元数据 C fast-commit 只记录 inode 块映射与文件大小等最小变更,日志小,fsync 与恢复更快 ✓ 正确答案 D fast-commit 反而更慢
# 6. ext4 encryption(fscrypt)与 dm-crypt 在加密文件系统的工程差异? A 两者完全相同 B dm-crypt 支持按文件加密 C fscrypt 按文件粒度加密、支持多密钥,dm-crypt 整盘块级加密透明但粒度粗 ✓ 正确答案 D fscrypt 加密整个块设备
# 7. file-backed page cache 通过 address_space 与 inode 绑定的工程语义? A address_space 与 inode 无关 B 每个 inode 绑定一个 address_space 统一管理该文件缓存页与回写,保证访问一致 ✓ 正确答案 C 文件缓存无统一管理 D address_space 只用于匿名页
# 8. anonymous page cache 通过 anon_vma 绑定的工程价值? A anon_vma 记录匿名页被哪些 vma 映射,支撑 COW、回收与 unmap 的反向映射 ✓ 正确答案 B anon_vma 与匿名页无关 C anon_vma 只用于文件页 D 匿名页不需要反向映射
# 9. ext4 fast-commit 与 full journal commit 的工程边界? A 两者互斥,不能用 full journal B fast-commit 覆盖所有场景 C full journal 更快 D fast-commit 用于频繁 fsync 的最小变更快速提交,full journal 兜底完整一致性,二者配合 ✓ 正确答案
# 10. file-backed 页与 anonymous 页在 reclaim 时的差异,为什么干净文件页可被直接丢弃,而匿名页必须先写回 swap? A 两者都可直接丢弃 B 匿名页可从文件重读 C 文件页必须写回 swap D 干净文件页可从文件重读直接丢弃,匿名页无后备存储必须先写回 swap 才能释放 ✓ 正确答案
# 11. page cache 页状态标志(PG_uptodate、PG_dirty、PG_writeback)如何驱动读写与回写路径,IO 未完成时读写如何等待? A PG_uptodate 表示有效,PG_dirty 表示待回写,PG_writeback 表示写回中,IO 未完成通过等待队列等待 ✓ 正确答案 B 标志只用于统计 C 读不等待 IO 完成 D 脏页无需回写
# 12. swap-backed 与 file-backed 页的 reclaim 优先级策略? A 匿名页优先回收 B 从不回收文件页 C 两者优先级相同 D 内核优先回收便宜的文件页,内存压力大才写回匿名页做 swap ✓ 正确答案
# 13. tmpfs 与 shmem 在 anonymous 页的可命名化路径差异? A tmpfs 是 shmem 的可挂载命名化实现,shmem 是内核匿名共享内存机制,底层都用匿名页 ✓ 正确答案 B tmpfs 不用匿名页 C 两者完全不同 D shmem 可挂载为普通文件系统
# 14. page cache 的类型,文件后备与匿名页的差异与回收如何? A 两者都有后备存储 B 文件页有后备存储可重读,匿名页无后备需 swap,回收优先文件页 ✓ 正确答案 C 文件页必须 swap D 匿名页可直接丢弃
# 15. page cache 的写回,writeback 与回写线程如何工作? A 回写线程按脏页阈值异步刷盘,后台写回不阻塞、硬阈值或 fsync 触发同步写回 ✓ 正确答案 B 脏页永不回写 C 写回只同步进行 D 回写线程与持久性无关
# 16. ext4 的 fast commit 适用场景,小文件与元数据密集操作如何受益? A 只适合大文件 B 对元数据密集场景无收益 C fast-commit 最适合小文件与元数据密集的高频 fsync 负载,日志小提交快 ✓ 正确答案 D 只在只读场景适用
# 17. page cache 的回收,LRU 列表与内存压力如何互动? A LRU 只管理匿名页 B 回收随机进行 C 内存压力与回收无关 D 页在 active/inactive LRU 间移动,内存压力高时从 inactive 端回收,优先丢弃干净文件页 ✓ 正确答案
# 18. ext4 的延迟分配(delalloc)与块分配? A delalloc 立即分配物理块 B delalloc 与持久性无关 C delalloc 增加碎片 D delalloc 把物理块分配推迟到回写时统一进行,可批量分配、减少碎片与元数据更新 ✓ 正确答案
# 19. swapoff 为何可能很慢,需要把全部匿名页换回或写回,如何规划停机与减少 swap 用量? A swapoff 立即完成 B swapoff 不涉及 IO C swapoff 需把 swap 设备上全部匿名页换回内存,产生大量 IO,故慢;应提前减少 swap 用量并低峰期执行 ✓ 正确答案 D swapoff 无需规划