知识点标签

分布式系统面试题解析

分布式系统相关面试题解析,按真实面经题目沉淀核心机制、易错点和面试官追问。

24 道题 4 个岗位 11 个公司

分布式系统相关面试题

分布式锁的使用场景?

分布式锁用于解决多个进程、多个实例、多个节点同时争抢同一份业务资源时的互斥问题,典型场景包括库存扣减、定时任务去重、幂等控制和资源抢占。面试回答不能只说“防止并发”,还要讲清锁的粒度、过期时间、唯一 token、续期、释放校验、可重入、公平性,以及 Redis、ZooKeeper、数据库方案在性能、一致性和故障边界上的取舍。

如果数据库是分布式的,如何保证数据一致性呢?

如果数据库是分布式的,如何保证数据一致性呢?这道腾讯牛客题的关键是围绕“分布式数据库一致性”讲清概念、机制、取舍和边界。分布式数据库一致性要先说明一致性目标:强一致、读己之写、单调读或最终一致。常用机制包括 Raft/Paxos 共识、quorum 读写、主从复制、2PC/TCC/Saga、幂等重试、版本冲突解决和异步对账补偿。

分布式数据库怎么保证一致性?

分布式数据库怎么保证一致性?这道腾讯牛客题的关键是围绕“分布式数据库一致性”讲清概念、机制、取舍和边界。分布式数据库一致性要先说明一致性目标:强一致、读己之写、单调读或最终一致。常用机制包括 Raft/Paxos 共识、quorum 读写、主从复制、2PC/TCC/Saga、幂等重试、版本冲突解决和异步对账补偿。

手写 CUDA All-Reduce/归约 kernel 时,如何设计线程内与 block 内归约,并说明 block 间同步和跨 GPU AllReduce 通常为什么需要多 kernel、cooperative groups 或 NCCL?

这题要先澄清 All-Reduce 在面试手写题里的边界:单 GPU 内通常先写归约 kernel,再解释 block 间同步为什么不能靠普通 __syncthreads 解决;真正跨 GPU AllReduce 属于通信 collective,通常交给 NCCL 或多阶段通信算法。

分布式 LLM 训练中 AllReduce、AllGather、ReduceScatter 和 AllToAll 分别解决什么通信问题,哪些并行场景会用到它们?

这道题考察分布式训练中 collective communication 的语义和并行策略映射。回答要先把 AllReduce、AllGather、ReduceScatter、AllToAll 的输入输出关系讲清,再说明它们分别解决梯度汇总、参数或激活拼接、归约后分片、个性化交换等问题。进一步要能联系数据并行、张量并行、ZeRO/FSDP、序列并行、专家并行和 MoE token dispatch,指出通信量、同步开销、拓扑和 overlap 对训练效率的影响。

DeepSpeed ZeRO 中哪些训练状态会占用 GPU 显存,为什么 activation 通常用 checkpoint/recompute 而不是像参数或优化器状态一样分页?

这道题考察大模型训练显存构成和 ZeRO 的边界。回答要先把 GPU 显存里的主要训练状态拆清楚:参数、梯度、优化器状态、激活、通信/临时 buffer 和碎片;再说明 ZeRO 主要分片的是模型状态,Stage 1/2/3 分别处理优化器状态、梯度和参数;最后解释 activation 为什么通常用 checkpoint/recompute:它是 batch/sequence 相关的短生命周期中间结果,反向依赖层级顺序,分页到 CPU/NVMe 会引入高带宽低延迟瓶颈,而重计算能用额外 FLOPs 换显存,通常更可控。