字节测开一面:接口被占用、Linux排障与K8s基础

  • 日期:2025-08-26
  • 企业与岗位:字节跳动|测试开发(26届秋招)
  • 适用层级:初级/中级

本篇为社区对用户分享面经的整理汇编,旨在帮助求职者了解面试考察方向。问题部分力求忠实还原原帖问答脉络;「参考答案 / 复盘思路」为整理方结合工程实践原创补充,仅供交流参考,不代表官方标准答案。

面试问题与参考答案

1. 研究生课题、数据集规模与代码是否开源。

参考答案 / 复盘思路:

先用两三句话说明研究目标、任务类型和数据来源,再解释训练/验证/测试集如何划分以及如何防止数据泄漏。数据规模要说明样本单位与分布,不能只报一个总数。若代码未开源,解释隐私、协议或尚未整理的原因,并展示可公开的实验设计、复现脚本或评测指标,证明成果可验证。 如果使用过AI模型,还应讲清测试集如何保持独立、如何记录实验配置避免结果不可复现。

2. Web端接口被占用时怎么处理?

参考答案 / 复盘思路:

“被占用”含义不明确,先澄清是端口冲突、连接池耗尽、接口并发争用还是资源锁。端口冲突用ss/lsof定位进程;连接耗尽看活跃连接、池配置与慢请求;业务互斥则查锁和幂等设计。测试分别构造高并发、连接不释放、超时与重试,观察错误码、恢复时间和资源是否回收,不能一概通过重启解决。 最好给出一条具体错误日志或连接池指标,说明怎样从现象一步步缩小范围。

3. 进程与线程的区别。

参考答案 / 复盘思路:

进程通常拥有独立虚拟地址空间和资源边界,线程共享进程内存但各自有栈与执行上下文。线程通信快,但共享状态需要同步;多进程隔离更强,进程间通信和创建成本通常更高。测开可以用线程并发请求、进程隔离测试任务,但要验证数据竞争、资源泄漏、异常隔离与退出回收,避免只记概念。 实际写并发测试时应记录每个请求的唯一标识,避免日志混在一起后无法复盘。

4. Linux怎样查看CPU占用情况?

参考答案 / 复盘思路:

先用top、htop或mpstat看整体CPU使用率、user/sys/iowait,再用ps、pidstat定位高消耗进程和线程;需要分析热点可用perf采样。若load高而CPU不高,考虑I/O等待或不可中断任务。排查应保留时间窗口、负载、容器CPU限制及异常日志,避免用单张截图判断长期瓶颈。 若容器中CPU被限流,还要看throttling指标,不能只按宿主机空闲判断资源充足。

5. HTTP与HTTPS有什么区别?

参考答案 / 复盘思路:

HTTPS是HTTP在TLS等安全传输之上的使用方式,提供加密、完整性和服务端身份认证,常见场景还可使用客户端证书。HTTP语义如GET、POST和状态码并未因此改变。测试要覆盖证书链、主机名匹配、过期、TLS版本、重定向与敏感信息泄露;不要简单认为HTTPS能防止所有应用层漏洞。 还可以检查TLS证书轮换期间的旧连接与新连接,防止上线后发生偶发握手失败。

6. 了解Redis、C++和Go吗?

参考答案 / 复盘思路:

原帖把三个技术方向放在同一项中,回答时应分别说明真实掌握程度。Redis可讲缓存键设计、TTL、穿透/击穿和持久化;C++重点说明内存生命周期、RAII和并发;Go可讲goroutine、channel、context与竞态检测。不会的语言不要硬背高级细节,可说明用过哪些工具及如何验证其代码质量。 例如Redis缓存必须设计回源与失效策略,不能把“用了缓存”直接等同于系统更稳定。

7. 用过Docker,了解Kubernetes吗?

参考答案 / 复盘思路:

Docker常用于构建和运行容器镜像;Kubernetes负责在集群中编排Pod、Deployment、Service等资源。面试可说明镜像不可变、配置注入、探针、滚动升级和资源limit的关系。测试侧重点是容器重启后状态恢复、readiness失败时摘流、升级回滚、网络策略与资源不足下的服务行为,而非只会kubectl命令。 将readiness与liveness探针区分开:前者控制流量,后者触发重启,配置错误可能造成雪崩。

8. 手撕:逆循环/回溯恢复被打乱顺序的原列表。

参考答案 / 复盘思路:

原帖仅描述“逆循环回溯打乱顺序的原列表”,没有给出完整输入、变换规则和样例,因此无法还原唯一算法题。面试中应先问清操作是否可逆、是否保留索引映射、是否允许重复值,再判断能否通过逆操作或搜索恢复。可先用小规模样例验证逆序列,再分析复杂度;不能擅自将其改写为某道确定的力扣题。 这类信息缺失的算法题在社区应保留原始描述,不宜生成看似完整但未经来源支持的代码答案。

延伸思考(社区补充)

Web接口出现连接耗尽,但容器CPU正常,怎样判断是连接泄漏还是下游慢请求?

联合连接池active/idle/wait指标、请求Trace、线程栈与下游延迟做时间线对齐;对比请求结束后的连接回收情况,并在压测中模拟慢依赖验证恢复。

推荐学习