面试面经 · 腾讯
【腾讯】【后端开发】【一面】Linux命令连环问+限流设计场景题
【腾讯】【后端开发】【一面】
基本信息
| 项目 | 内容 |
|---|---|
| 公司 | 腾讯(具体BG未披露) |
| 岗位 | 后端开发 |
| 轮次 | 技术一面 |
| 时间 | 2025年11月 |
| 面试时长 | 约60分钟 |
| 面型体感 | 题量大、追问深,Linux命令问得极细 |
| 结果 | 待通知 |
面试题目(按提问顺序)
- 项目介绍
- 实习介绍,最难的点以及怎么解决的
- 你做的分库分表中间件,支持多线程并发写入吗?怎么保证线程之间 ThreadLocal 不冲突?有没有考虑用异步上下文?
- ThreadLocal 什么样的信息需要存到 ThreadLocal 里?
- 多线程访问临界区资源,一般用什么办法?
- 除了锁之外,无锁方案你有了解吗?
- 无锁技术跟加锁相比,主要区别在哪?
- 锁除了互斥能力,还提供了什么能力?(可见性、有序性)
- 读写锁了解吗?它怎么解决公平性问题?
- MyBatis Plugin 拦截替换表名时,如果遇到嵌套 SQL(
select * from (select * from xxx))怎么处理?怎么确保不替换错? - 什么情况下会出现 OOM?举个例子
- 说一下有哪些垃圾回收器
- G1 的回收机制是什么?为什么被称为并发低延迟回收器?什么场景不适合用 G1?
- 说一下你熟悉的 Linux 命令有哪些
- 看当前一个目录占的容量大小是什么命令?(
du) - 看当前磁盘的 IO 吞吐用什么命令?(
iostat) - Qdepth 指的是什么?
- 看当前网卡流量用什么命令?(
sar -n DEV/iftop) - 看当前 CPU 每个核的占用情况?(
mpstat -P ALL) mpstat有什么使用场景?- 如果 CPU0 的 iowait 高,CPU5 的 user 高,怎么判断问题是 IO 还是线程调度问题?
- 怎么用
mpstat判断某个核卡住了?看什么指标?怎么推断可能是磁盘问题? - 从指标看出访问磁盘有瓶颈后,后续怎么追踪定位?
- 怎么看某个进程绑定在哪个 CPU 核上?CPU 亲和性怎么设置?用过
taskset吗? - 场景题:两个服务 A 和 B,A 每秒发 10 万请求给 B,B 要限流并保持队列不爆炸,设计中间的限流 + 缓冲组件
面试感受 / 反馈
- 面试节奏极快,几乎没有喘息时间
- Linux 命令问得异常细致,不是简单说命令名就行,要能解释使用场景和指标含义
- 场景题考的是真实工程思维,不是背概念
- 整体风格:从 Java 基础一路追到操作系统内核级别
准备建议
- Linux 性能监控命令要能信手拈来,不只是知道名字,要能解释指标含义和排障思路
- JVM 相关:G1 回收器的原理、适用/不适用场景要清晰
- 无锁编程(CAS、Atomic 类)要了解基本原理
- 场景设计题要有真实思考,不能只堆技术名词
反问示例
- 团队的技术栈是什么?
- 新人进来后主要负责什么方向?