标签题目
性能排查相关面试题
如何保障服务稳定性?
这题考服务稳定性体系化思维,回答要从目标、风险预防、运行时止损、恢复复盘四层展开,而不是只背限流熔断。
协程解决什么问题,和线程性能怎么比较?
这题考并发模型和性能边界,回答要说明协程降低的是调度和内存成本,不是让 CPU 计算突破核心数。
什么是零拷贝?
这题考 Linux I/O 数据路径,回答要说明零拷贝减少的是用户态与内核态之间的数据搬运和上下文切换。
CPU load 是什么?
这题考 Linux 性能指标理解,回答要区分 load average、CPU 使用率、核数和不可中断 I/O 等待。
日志服务如何异步写入,避免影响主流程?
这题考异步化、背压和可靠性分级,回答要说明日志不阻塞主流程的同时不能无限丢失或无限占内存。
Redis 热点缓存数据如何处理?
考察 Redis 热 key 的识别、读流量分散、缓存重建保护和强弱一致性取舍,核心是先定位热点再按业务语义降压。
排查性能瓶颈时应该监控哪些参数?
考察性能排查的指标体系和定位顺序,重点是从用户影响出发,沿应用、资源、依赖和链路追踪逐层收敛。
内存对齐的作用是什么?
考察内存布局和硬件访问效率,重点是对齐规则、padding 来源、结构体大小、缓存友好性和 ABI 兼容风险。
filter、map、reduce 的性能和区别是什么?
这题考察数组高阶函数的语义、返回值、遍历成本和可读性取舍。先讲用途差异,再谈性能,避免把所有问题都归结为 reduce 更强。
RDMA 连接和性能调优通常关注哪些参数?
RDMA 参数题通常不是让背某一个结构体字段,而是考察能否把关键配置维度讲清楚:资源对象参数、连接寻址参数、传输可靠性参数、内存注册参数、网络层参数以及性能调优参数。完整答案应覆盖 QP、CQ、PD、MR、LID/GID、QPN/PSN、MTU、SL 或 traffic class、RoCE v2 的 IP/UDP/VLAN/PFC/ECN,以及 inline、队列深度、CQ moderation、retry、RNR timeout 等影响吞吐和延迟的参数。
怎么查看OS的负载?
查看 OS 负载不能只报一个命令,要说明 Linux load average 的含义、采集入口、判断标准和定位路径。核心是先用 uptime、top、w 或 /proc/loadavg 看 1/5/15 分钟平均负载,再结合 CPU 核数、运行队列、不可中断任务、IO 等待、上下文切换和进程级指标判断是 CPU 饱和、IO 阻塞还是调度压力。
服务端限流常见方案有哪些?
服务端限流的核心不是单纯拒绝请求,而是在系统容量有限时,把入口流量、服务调用、关键资源和热点参数控制在可承受范围内,优先保护核心链路稳定性。面试回答应从限流位置、算法模型、分布式实现、限流 key、被限流后的处理、与熔断降级的区别、监控和误伤治理几条线展开。
怎么选取合适的线程数?
选取合适线程数的核心不是背一个固定数字,而是先判断任务是 CPU 密集、IO 密集还是混合型,再结合机器核数、阻塞比例、线程池队列、延迟目标、吞吐目标和资源上限做估算,最后通过压测观察 CPU 利用率、上下文切换、队列堆积和响应时间来迭代调优。
后端慢 SQL 会如何影响前端体验?
后端慢 SQL 不只是后端问题,它会沿着请求链路放大为前端可感知的卡顿、白屏、加载时间过长、按钮无响应、接口超时、重复提交和数据不一致。核心机制是数据库读写占用锁、CPU、IO 和连接,进一步拖慢应用线程、连接池、网关队列与浏览器请求队列,最终影响页面渲染、交互反馈和业务流程完成率。
协程适合IO密集型还是计算密集型任务?
协程更适合 IO 密集型任务,核心原因是它能在用户态以较低成本挂起和恢复执行流,把等待网络、磁盘、RPC、数据库响应的时间让给其他任务;但协程并不会凭空提升 CPU 算力,计算密集型任务如果持续占满 CPU,仍然需要多线程、多进程、并行计算或任务切分配合调度。
怎么加速模型训练?
加速模型训练要从数据、模型、计算、分布式和实验流程五层回答。核心不是简单说“加 GPU”,而是减少无效计算、提高硬件利用率、降低通信成本,并保证加速后模型效果和可复现性不被破坏。
同题还出现在 1 个公司岗位
XGBoost 为什么比传统 GBDT 快?
XGBoost 比传统 GBDT 快,主要来自工程和算法两方面优化:二阶近似、预排序或直方图、稀疏感知、列块并行、缓存友好访问、正则化剪枝和分布式训练。回答要避免只说“并行”,因为 boosting 的树轮次本身仍然有依赖。
有哪些限流算法?
限流算法常见有固定窗口、滑动窗口、漏桶和令牌桶。面试回答要讲清每种算法解决什么问题、是否允许突发流量、实现复杂度和分布式一致性取舍。
XGBoost 如何实现正则化和并行化?
XGBoost 的正则化体现在目标函数和树结构约束中,并行化主要体现在特征分裂候选和直方图统计等计算过程,而不是每棵树完全独立并行。
模型在线训练和离线训练有什么区别?
在线训练和离线训练的区别在于数据更新频率、训练时效、系统复杂度和稳定性要求;推荐场景常用离线主模型加在线增量或实时特征的混合方案。
单进程服务器中某个客户端不调用 recv 时,阻塞和非阻塞模式会怎样?
客户端不调用 recv 时,服务端发送缓冲区会逐渐积压;阻塞模式可能卡住整个单进程服务,非阻塞模式会返回 EAGAIN,需要事件驱动和背压处理。
linux怎么查看cpu使用情况?
linux怎么查看cpu使用情况?这道腾讯牛客题的关键是围绕“Linux CPU 使用率观测与定位”讲清概念、机制、取舍和边界。Linux 查看 CPU 使用情况不能只报一个 top 命令。要区分整机 CPU 使用率、单进程/线程占用、用户态/内核态时间、iowait、load average 和上下文切换。不同指标回答的是不同层级的问题。
内存泄漏如何定位和排查?
内存泄漏如何定位和排查?这道腾讯牛客题的关键是围绕“内存泄漏定位与排查”讲清概念、机制、取舍和边界。内存泄漏排查要先确认是进程常驻内存持续增长、堆对象无法释放,还是缓存、连接、文件句柄等资源增长。Java 场景重点看堆转储、GC Roots 和对象引用链;C/C++ 场景还要看 malloc/new 未释放和越界破坏。
为什么redis这么快?
为什么redis这么快?这道腾讯牛客题的关键是围绕“Redis 单线程与高性能”讲清概念、机制、取舍和边界。Redis 快主要因为数据在内存中、数据结构高效、命令执行主路径单线程避免锁竞争、事件循环配合 I/O 多路复用处理大量连接。Redis 单线程通常指命令执行线程,后台持久化、异步删除、网络 I/O 线程等并不都在同一个线程。
redis是单线程还是多线程,为什么用单线程?
redis是单线程还是多线程,为什么用单线程?这道腾讯牛客题的关键是围绕“Redis 单线程与高性能”讲清概念、机制、取舍和边界。Redis 快主要因为数据在内存中、数据结构高效、命令执行主路径单线程避免锁竞争、事件循环配合 I/O 多路复用处理大量连接。Redis 单线程通常指命令执行线程,后台持久化、异步删除、网络 I/O 线程等并不都在同一个线程。
redis是单线程还是多线程,为什么用单线程,为什么不用多线程?
redis是单线程还是多线程,为什么用单线程,为什么不用多线程?这道腾讯牛客题的关键是围绕“Redis 单线程与高性能”讲清概念、机制、取舍和边界。Redis 快主要因为数据在内存中、数据结构高效、命令执行主路径单线程避免锁竞争、事件循环配合 I/O 多路复用处理大量连接。Redis 单线程通常指命令执行线程,后台持久化、异步删除、网络 I/O 线程等并不都在同一个线程。
Linux中,如何查询系统负载情况?
Linux中,如何查询系统负载情况?这道腾讯牛客题的关键是围绕“Linux 系统负载查询”讲清概念、机制、取舍和边界。Linux 查询系统负载常用 uptime、top、w 或 cat /proc/loadavg。load average 的 1/5/15 分钟值表示一段时间内处于可运行 R 或不可中断睡眠 D 状态的任务平均数。
压测过程中关注哪些核心指标?
压测过程中关注哪些核心指标?这道腾讯牛客题的关键是围绕“压测核心指标”讲清概念、机制、取舍和边界。压测要关注吞吐、延迟、错误率、资源利用率、饱和点和稳定性。核心指标包括 QPS/TPS、P50/P95/P99、超时率、错误码、CPU、内存、GC、磁盘 I/O、网络、连接池、队列长度和依赖服务耗时。
为什么线程上下文切换的开销通常小于进程上下文切换?
为什么线程上下文切换的开销通常小于进程上下文切换?这道腾讯牛客题的关键是围绕“进程与线程区别及上下文切换”讲清概念、机制、取舍和边界。进程是资源拥有和隔离单位,线程是同一进程内的调度执行单位。同一进程的线程共享地址空间、堆、全局变量和文件描述符,但有独立栈、寄存器上下文、线程局部存储和调度状态。
数据库性能优化通常从哪些方向入手?
数据库性能优化通常从哪些方向入手?这道腾讯牛客题的关键是围绕“数据库性能优化方向”讲清概念、机制、取舍和边界。数据库性能优化要从定位、SQL/索引、表结构、事务锁、连接池、缓存、架构扩展和硬件参数多层看。先用慢查询日志、监控和执行计划定位瓶颈,再决定是改 SQL、加索引、拆表、调连接池还是做缓存/读写分离。
LLM 服务用 vLLM 和 Streaming 输出时,如何在首 token、总延迟和吞吐之间折中?
这题考 LLM 推理服务的性能取舍,回答要把 vLLM/KV-cache、Streaming、TTFT、总延迟、吞吐和 batching 之间的矛盾讲清楚。
大模型推理中 Prefill/Decode(PD)分离部署为什么能提升处理速度?
这题考 LLM serving 的工作负载拆分,回答要讲清 prefill 和 decode 的差异、分离部署收益、KV cache 交接和适用边界。
LLM 服务在 500 并发下如何把 TTFT P99 从 3s 优化到 1.5s?
这题考高并发 LLM 服务的首 token 长尾优化,回答要先建立可观测性,再从排队、调度、prefill/decode、批处理、KV 缓存、prompt 长度、容量和流式链路逐层处理。
LLM 多卡并行推理中,显存占用和通信开销如何影响吞吐与延迟?
这题考 LLM 多卡并行推理的性能瓶颈,回答重点是权重显存、KV Cache、prefill/decode 差异、并行切分通信、批处理调度和长尾延迟。
前端如何用 SSE 实现 AI 流式输出,并做好增量渲染和吐字动画?
这题考前端如何用 SSE 承接 AI 流式输出并实现稳定的吐字动画,回答重点是流解析、增量状态、渲染节流、取消重连和边界处理。
LLM 推理中 Continuous Batching 和 Prefix Caching 如何影响请求切分、batch 维度和吞吐/延迟取舍?
这题考 LLM 推理调度中的 Continuous Batching 和 Prefix Caching,回答重点是请求在 prefill/decode 阶段如何切分、按什么维度组 batch,以及吞吐和延迟如何取舍。
LLM 训练或推理中 FP8 和 BF16 如何按吞吐、显存和稳定性取舍?
这题考 LLM 训练或推理中 FP8 和 BF16 的精度格式取舍,回答重点是显存、带宽、吞吐、数值稳定性和工程校准,不应断言所有 DeepSeek 或 Qwen 版本的内部实现。
给定输入 shape 为 (b, s, h),如何估算 Multi-Head Attention 的计算量?
这题考给定输入 shape 为 (b, s, h) 时如何估算 MHA 计算量,回答重点是 QKV 投影、注意力矩阵、加权求和和输出投影,其中长序列瓶颈来自 O(b s^2 h)。
FlashAttention 的核心原理是什么,为什么能降低长序列 attention 的显存和 IO 开销?
这题考 FlashAttention 的 IO-aware 原理,回答重点是它不改变标准 attention 数学结果,而是通过分块、在线 softmax 和重计算减少显存读写。
同题还出现在 1 个公司岗位
为什么 RMSNorm 在大模型中比 LayerNorm 更常见?
这题考 RMSNorm 为什么在大模型中常见,回答重点是它去掉均值中心化,只按均方根做尺度归一化,计算更简单且通常足够稳定。
LLM 推理算子优化中,Memory Coalescing 和 Bank Conflict 分别是什么,如何影响显存访问效率?
这题考 CUDA 访存优化在 LLM 推理算子里的基本功。回答要把 GMEM 的连续合并访问、SMEM 的 bank 并行访问、warp 级访问模式和 profiling 现象连起来,而不是只背两个定义。
LLM 推理算子中,Tensor Core、WMMA 和 MMA 分别是什么,工程上如何选择使用层级?
这题考候选人是否理解 NVIDIA GPU 矩阵乘加的硬件、CUDA C++ 抽象和更底层指令接口。回答要能说明 Tensor Core 是硬件单元,WMMA 是较高层 CUDA API,MMA 是更贴近指令和 PTX 的矩阵乘加操作。
LLM 推理算子变慢时,如何判断瓶颈是 Memory Bound 还是 Compute Bound?
这题考算子性能诊断方法。回答要从理论 roofline、算术强度、实际 profiler 指标、stall reason 和优化方向闭环判断,而不是只说“看 GPU 利用率”。
LLM 推理服务如何做流量调度,兼顾模型副本、队列长度、KV 资源和延迟 SLO?
这题考 LLM 推理服务的请求路由和服务治理。回答要围绕模型副本选择、prefill/decode 队列、KV cache 资源、batching、优先级、SLO 和故障降级展开,避免泛泛而谈负载均衡。
LLM 长上下文推理中,KV Cache 压缩如何降低显存占用,和 Prefix Cache 的作用有什么区别?
这题考长上下文 LLM 推理中的显存管理。回答要把 Prefix Cache 的跨请求前缀复用和 KV Cache 压缩的单次/多次请求显存降载区分开,再说明压缩策略、精度损失、服务集成和评估指标。
向量数据库在 AI 应用中数据量增大时,如何扩展索引、分片和召回性能?
这题考向量库从小规模知识库增长到大规模检索服务时的扩展思路。回答要覆盖容量评估、索引选择、分片分区、过滤与召回、在线更新、评估和成本延迟取舍。
训练 Qwen 这类大模型时,分布式训练的通信瓶颈如何优化?
这题考大模型训练中的通信瓶颈定位与优化,重点是理解数据并行、张量并行、流水线并行和 ZeRO/FSDP 等策略如何产生不同通信模式,并用 profiling 指标做取舍。
AI Infra 中拿到一个慢算子时,如何判断是否值得优化,并选择 kernel 优化、算子融合、图优化或数据布局调整?
这题考慢算子优化的工程决策树,重点不是单独判断 Memory Bound 或 Compute Bound,而是先判断投入是否值得,再把 profile 证据映射到 kernel、融合、图优化和 layout 等不同路径。