面灵AI→

秋招面经合集:智元机器人觅蜂与字节 Agent 基础设施方向

轮次
多轮面试合集
时间
2026-09
来源
牛客网

《面试题目》

投递方向:PaaS Agent 基础设施中台。进度:字节火山引擎已挂、转 seed 面试中;普联云计算提前批 SP;蚂蚁转正 OC;智元-觅蜂三面结束。

智元机器人-觅蜂 · 一面

  1. 第一段实习中存储业务的并发处理是怎么做的?Ceph 中 clone 和 rollback 方法的差异是什么?
  2. 业务场景类似不可预测的热 key 处理和分布式调度,给了一个报错,让分析基础原因(就是调度节点和执行节点的问题)
  3. 对于任务调度的基本理解

智元机器人-觅蜂 · 二面

  1. 主要拷打业务,问项目的一些基础概念和业务方案叙述
  2. OS 和网络中半连接队列、全连接队列的问题
  3. CPU 挂满是什么原因导致的?
  4. 对于 nbd 设备的并发调用,处理方式是怎样的?

智元机器人-觅蜂 · 三面

  1. 部门 leader 聊天为主

字节-火山引擎

  1. 三次握手中对于 accept 队列的情况,以及半连接队列挂满了会发生什么?
  2. IO 线程池相关的设计
  3. Go 语言 GC、GMP 模型的八股
  4. 算法:合并区间

字节-seed

  1. 一个好的 CLI 应该具备哪些特点?
  2. 进程、线程、协程的区别,多核处理器中两个线程之间如何控制?
  3. TCP 和 UDP 的区别、TCP 粘包、应用场景
  4. 数据库常见索引的实现方式、索引类型、唯一索引和主键索引的区别
  5. 输入一个域名到拿到最终数据的流程
  6. 算法:查询 IP 归属哪个城市

《参考解析》

  1. Ceph 的 clone 与 rollback 要讲清「数据有没有被改写」:在 RBD 里,clone 是从某个受保护的快照派生出一个新的写时复制卷,新卷初始不占存储、读的时候回父快照取,适合「以同一份基线快速开出多个环境」;rollback 是把现有卷退回某个快照点,快照之后的写入会被丢弃,属于原地回退。两者的关键差别在于 clone 产生新对象、依赖父快照存在,rollback 改的是当前卷、需要保证没有人在用(或先做 flatten 之类的前置处理)。答完可以补一句你实际用它做过什么(做基线镜像、快速回滚测试环境),别只背特性。

  2. 热 key 与分布式调度的报错分析,考的是分层定位:题面给的是「调度节点和执行节点的问题」,回答要先把链路拆开——谁负责选节点、谁负责真正执行、中间靠什么队列或 RPC 传状态,再判断报错是选不出节点(资源不足、标签不匹配、调度器状态陈旧)、还是选出来执行失败(执行节点负载高、心跳超时、任务被重复投递)。热 key 场景还要说明为什么「均匀哈希」也不够:单个 key 的流量无法靠加节点摊薄,得靠本地缓存、key 拆分、读写分离或限流来处理。

  3. 半连接队列与全连接队列是两个不同的东西:半连接队列(SYN queue)放的是收到 SYN、还没完成三次握手的连接;全连接队列(accept queue)放的是握手已完成、但应用还没来得及 accept 的连接。半连接队列被打满时,新来的 SYN 可能被丢弃,客户端表现为握手超时重传,这时通常会开 SYN cookies 兜底;全连接队列被打满时,握手完成的新连接会被丢掉或忽略,客户端看到的是「连上了但服务端不响应」这类诡异现象。要顺带说清 listen 的 backlog 主要约束的是全连接队列,还受 somaxconn 上限限制。

  4. CPU 挂满先分清是「算得多」还是「等得多」:us 高说明确实在跑用户态计算——死循环、正则回溯、加解密、序列化热点;sy 高往往是系统调用或锁竞争密集,比如频繁上下文切换、网络小包、内核态自旋;GC 线程占满则是内存压力或分配速率过高。排查路径是 top -H 找线程、把线程号对齐到栈或火焰图定位到方法,再结合监控看是不是流量突增带出来的。回答里给出「看哪个指标 → 下一步查什么」的链条,比罗列原因有效。

  5. Goroutine 模型和调度要能讲到 handoff:G 是 goroutine,M 是操作系统线程,P 是执行上下文与本地运行队列;P 的本地队列满了会挪一部分到全局队列,空闲的 P 会去别的队列偷(work stealing),当 G 发起阻塞系统调用时 M 会和 P 解绑,让别的 M 顶上来继续跑,这就是 Go 高并发调度不靠疯狂开线程的原因。GC 侧讲三色标记 + 写屏障的并发标记、STW 只出现在很短的阶段,以及 GOGC 调节的是触发阈值、调大换吞吐调小换内存。

  6. CLI 设计题可以按「给谁用、怎么用错」来组织:好的命令行工具要有一致的子命令与参数风格、--help 能自解释、明确的退出码、错误信息说清「哪里错了、怎么改」;对机器友好要有结构化输出(--json)和稳定的输出格式,对中断要能优雅退出、对重复执行要幂等;还得考虑配置来源的优先级、密钥不进命令行参数、以及可观测性(日志、耗时)。能举一个自己用着顺手的工具做对照,答案就立住了。

  7. 域名到拿到数据的流程要一串到底:浏览器/客户端先查本地 hosts 和 DNS 缓存,未命中就向递归解析器发起查询,经根、顶级域、权威服务器拿到 A/AAAA 记录(可能还要走 CNAME);拿到 IP 后建立 TCP 连接(有 HTTPS 还要 TLS 握手),把 HTTP 请求发到服务端;服务端侧一般还有四七层网关做路由和负载均衡,到应用后查缓存、查数据库或下游服务,最后把响应逐层返回、由客户端渲染。面试官想听的是你知不知道每一跳上可能出的问题(DNS 污染、连接超时、TLS 失败、网关 502)。

  8. 索引这题要落到存储结构和使用姿势:常见实现是 B+ 树(范围查询友好、树高低)和哈希(等值快、不支持范围);索引类型按功能分主键、唯一、普通、联合、全文等;主键索引即聚簇索引,叶子节点存整行数据,唯一索引保证约束但允许一个 NULL(不同数据库细节不同),二级索引叶子存的是主键值,查非索引列要回表。答完补一句联合索引的最左前缀和索引下推,说明你确实在线上用过。