ext4 fast-commit 与 file-backed / anon page cache

共 19 题
#

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 无需规划