9月中旬某个晚上,我卡在美团运维&安全岗第一批笔试的最后一道编程题上,盯着屏幕上的“进程内文件描述符泄漏排查”题目,脑子飞速转了几圈后突然意识到:这场笔试真正想考察的,根本不是“你会不会背命令”,而是“你在生产环境碰到问题时的处理链路是否完整”。这篇文章就把我参加2025年秋招美团运维&安全岗第一批笔试的完整复盘记录下来,从题型分布、考点拆解到备战路线,一次性讲清楚。
先说结论:美团运维&安全岗的笔试整体偏向“工程能力 + 安全基础 + 场景分析”三合一,不是单纯靠刷题能糊弄过去的。题型覆盖了Linux基础、网络排查、容器云原生、Web安全基础、逻辑推理和在线编程,整体难度在互联网大厂校招运维岗位里属于中上水平。如果你是准备投递运维、SRE、安全运维相关岗位的同学,这篇文章值得你花15分钟认真读完。
1. 笔试整体体感:题量大、场景多、时间紧、细节点深
1.1 美团运维&安全岗笔试的基本信息
美团校招的笔试一般通过牛客网进行,运维&安全岗第一批笔试的时间是120分钟,整体题量大概在40道左右,包括单选题、多选题、简答题和在线编程题。我当时看到的时间分配建议是:选择题控制在60分钟内完成,简答题30分钟,剩下30分钟做编程题,但实际做下来,选择题的阅读量比预想中大不少,很多题目的描述就是一个完整的故障场景,需要先理解背景再选答案,所以最后编程题只剩了20分钟左右。
这里先提醒一句:美团运维岗的笔试不是纯技术题,它还会夹杂一部分“情景判断题”,比如“线上服务突然超时,你会按什么顺序排查”,这种题没有绝对标准答案,但考官会通过你的选项组合来判断你的运维思维是否成熟。我在选择题里大概碰了8-10道这种情景题,占比不小。
1.2 笔试涉及的知识板块分布
根据我的回忆和同批次的讨论,整张卷子的知识点分布大概如下:
| 知识板块 | 大致占比 | 典型考点 |
|---|---|---|
| Linux操作系统与基础命令 | 20% | 进程管理、文件系统、权限模型、系统负载分析 |
| 网络基础与网络排查 | 20% | TCP/IP协议、HTTP状态码、DNS解析、抓包分析 |
| 容器与云原生 | 15% | Docker、Kubernetes、containerd运行时关系、Pod生命周期 |
| 数据库与中间件 | 10% | MySQL索引与锁、Redis持久化与缓存击穿 |
| 脚本编程与自动化 | 10% | Shell、Python基础、正则表达式 |
| 安全基础 | 20% | Web安全、加密算法、安全加固、CTF常见题型 |
| 逻辑推理与英语 | 5% | 行测类逻辑题、专业英文阅读理解 |
备考时如果你的时间有限,优先把Linux命令、网络排查、容器基础和安全基础这四块吃透,基本能覆盖70%以上的考点。我当时由于前期重点花在了容器和网络,反而在数据库和中间件上丢了不少分,这个教训后面细说。
1.3 笔试的实际做题感受
整场笔试做下来,我最直观的感受是三个字:场景化。几乎每道题都不是直接问“某个命令的参数是什么”,而是先给你一段业务背景或者一段报错日志,让你去判断问题出在哪、下一步该用什么手段确认。
举个印象很深的例子:有道多选题给了这么一段描述——“一个Java服务运行在容器中,最近频繁出现接口超时,监控平台显示CPU使用率不高但load average持续上升,GC日志显示Full GC频率正常”,问题是“接下来你会怎么做”。四个选项里有一个是“直接重启容器”看起来没什么错,但如果选了它,就说明你的运维思维还停留在“遇到问题先重启”的阶段。这道题我犹豫了很久,因为考试时间紧张,但其实题目想考的是你是否能区分CPU使用率和负载的区别、是否理解D状态进程对load的影响、是否知道容器环境下问题诊断和物理机有什么不同。
这道题背后的知识点我后面会详细展开。这里只想先强调一点:美团笔试的题目设计者是把你当作一个“即将入职的运维工程师”来考察的,而不是把你当作“背题库的应届生”。
2. 核心考点拆解:不同模块的底层逻辑与备考重点
2.1 Linux与操作系统:命令是表面,内核机制才是核心
Linux在运维笔试里永远不会缺席,但美团的考法和很多中小厂不一样。中小厂可能直接问“如何查看某个端口被哪个进程占用”这种命令题,美团则会先丢出一句“线上服务文件句柄耗尽,报错Too many open files”,然后问你“ulimit -n 和 /proc/sys/fs/file-max 的区别是什么”或者“为什么调大了进程的limit还是报错”。
这就逼着你去理解Linux的资源管理机制,而不只是背命令。比如文件描述符这个点,背后至少有四层:
- 用户态层:可以通过
ulimit -n设置当前shell进程的文件描述符上限,这是软限制; - 系统层:
/proc/sys/fs/file-max是整个操作系统能够打开的最大文件描述符数量; - 全局计数层:
/proc/sys/fs/file-nr记录系统当前已经分配的文件句柄数; - Cgroup限制层:容器环境下如果使用cgroup v2,
pids.max和memory.max也会影响文件描述符的分配行为。
如果只背了“ulimit -n 可以调大上限”,在容器环境里就会踩坑,因为即使你在容器里把ulimit调到了很大,宿主机或者cgroup的约束仍然可能限制住文件句柄数。美团笔试中有一道题就是考察这个场景的,问“容器内进程报Too many open files,在容器里执行ulimit -n 65535后依旧报错,可能的原因有哪些”,答案里就包括了“宿主机file-max限制”“cgroup限制”“进程本身未重启导致旧limit生效”这几个选项。这种题考的是知识串联能力,没有实际踢过坑的人很难全选对。
再提一个高频考点:Linux的负载分析。很多同学都知道uptime查看load average,但load到底怎么来的?内核里 load average 是运行队列中可运行进程和不可中断进程(D状态)数量的指数加权移动平均。为什么服务CPU不高但load高?大概率是有大量D状态进程卡在IO上。我在笔试里遇到的题目就是“CPU使用率低但load高,可能是什么原因”,选项包括“磁盘IO阻塞”“内存回收引起的大量内核线程阻塞”“用户态死循环”——前两个是对的,第三个是典型的混淆项,因为用户态死循环通常意味着CPU使用率高。这个区分是面试官特别爱考的,既能排查你是否知道load的构成,又能顺带考一下进程状态。
2.2 网络排查:从TCP握手到HTTP状态码,链路思维是拿分关键
网络部分的题目同样不是死记硬背能搞定的。比如有一道题给了netstat -anp | grep 8080的输出,里面有一段tcp 0 0 1.2.3.4:8080 5.6.7.8:54321 ESTABLISHED,问“这个连接处于什么状态,接下来最可能发生什么”。如果你只背过“ESTABLISHED表示连接已建立”,那这道题基本就废了。它想考的其实是TCP连接的状态迁移和超时机制——当对端异常断开但本端没有收到FIN包时,这条连接会一直处于ESTABLISHED状态直到TCP keepalive或应用层超时触发。这种“看似没问题其实有问题”的连接,正是线上服务端口耗尽、连接数飙升的常见原因。
HTTP状态码也是必考内容,但美团的考法通常是给你一段Nginx访问日志,里面有大量的499、502、504,让你判断是什么问题。这里帮大家理清一个经典的排查序列:
- 499:客户端在Nginx等待后端响应期间主动断开了连接,通常是后端处理太慢,客户端等不及了;
- 502:Nginx作为网关从上游收到了无效响应,比如后端进程崩溃或FastCGI服务不可用;
- 504:Nginx等待上游响应的超时时间到了,后端还在处理中,gateway_timeout配置需要调整。
这三个状态码连在一起看,基本能勾勒出一条“用户发起请求 → Nginx转发 → 后端处理”的链路,运维拿到日志后先看状态码分布,再逐层定位。笔试里那几道网络题,考察的其实是这种“拿到日志先看什么、再看什么”的链路思维。
另外一个我觉得值得单独拎出来讲的,是DNS排查。有一道情景题说“用户反馈网站偶尔打不开,本地ping域名能通,但curl域名偶尔超时”,选项里有一个非常容易误选的答案是“网络不稳定,建议联系运营商”。但正确思路是:先确认DNS解析结果是否一致(不同DNS服务器返回的IP可能不同),再确认是否有DNS缓存污染问题——之前出现过某个域名在全国某些地区被解析到错误IP的情况,就属于DNS层面的故障。运维排查网络问题,一定要有“DNS→TCP连接→HTTP请求→业务处理”这种分层定位的意识,笔试中这种题拉分特别明显。
2.3 容器与云原生:Kubernetes和containerd成为题目常客
近几年美团运维笔试里容器相关的内容比重逐年上升,今年第一批笔试里我至少遇到了7-8道容器和Kubernetes的题目,其中有一道简答题让不少同学直呼“难顶”:描述一下从Kubernetes创建一个Pod到containerd启动容器的完整调用链路。
这道题如果只看过Kubernetes的文档,不熟悉底层实现,可能只能写下“kube-apiserver收到请求→调度到Node→kubelet创建Pod”这种粗颗粒度的回答。但题目希望看到的答案是更细一层的:kubelet通过CRI(Container Runtime Interface)调用containerd的grpc接口,containerd再通过containerd-shim进程拉起runC,runC利用Linux内核的namespace和cgroup特性创建并隔离容器进程。具体来说链路是这样的:
- kubectl发送创建Pod的请求到kube-apiserver;
- kube-apiserver完成认证、授权和准入控制后,将Pod对象写入etcd;
- kube-scheduler watch到未调度的Pod,根据资源、亲和性等策略选择一个Node,将绑定信息写回;
- 目标Node上的kubelet watch到Pod被调度到本节点,开始执行Pod创建流程;
- kubelet调用CRI插件(CRI-O或containerd的CRI service)的
RunPodSandbox接口创建Pod沙箱,这一步会先创建一个pause容器用于共享网络和PID命名空间; - containerd收到请求后,为每个容器启动一个containerd-shim进程,它负责接管容器的生命周期、转发信号和收集退出状态;
- containerd-shim调用runC(或者通过runC的libcontainer库)执行容器的创建和启动;
- runC通过clone系统调用创建进程,同时设置namespace、cgroup、rootfs等隔离条件,最终容器内的主进程被拉起。
美团考这道题,我猜是因为他们内部很多服务已经全面容器化,对云原生基础设施的依赖非常深,所以特别看重候选人对容器运行时原理的理解。如果你准备投运维岗,我建议一定要把Kubernetes调度的主链路、CRI接口的作用、containerd与Docker的关系、Pod和容器的生命周期这几个点吃透。
另外容器安全也考了一道题:给定一个镜像,如何判断它是否存在安全漏洞?候选方案包括docker scan、Trivy、Clair、Anchore。这道题其实在考你是否了解“镜像安全扫描”是CI/CD流程中重要的一环,以及开源工具链的选型。我当时因为用过Trivy,所以答得比较快,但如果你完全没接触过这方向,至少要知道容器安全的核心就是“镜像签名校验、漏洞扫描、运行时监控”三件事。
2.4 安全基础:Web安全、加密算法与安全加固
安全部分是我这次笔试中相对有把握的板块,可能是因为平时做过一些CTF练习。先说Web安全必考的内容:SQL注入、XSS、CSRF、SSRF、命令注入,这些都是“安全岗笔试五件套”。但美团除了考原理,还特别喜欢考修复方案。比如给你一段存在SQL注入风险的Java代码,让你选择修复方式——正确答案大概率是“使用预编译的PreparedStatement”,而不是“对用户输入进行关键字过滤”。因为过滤黑名单很容易被绕过,而参数化查询是从语法的层面杜绝了注入的可能性。这个“优先选择参数化查询,而不是关键字过滤”的答题原则,在线下安全面试中也同样适用。
还有一道让我印象深刻的题目是SSRF(Server-Side Request Forgery,服务端请求伪造)。题目描述是:某个Web应用允许用户输入一个URL,由服务端发起请求来获取远程图片,问如何防止恶意的内网扫描。选项包括“禁用HTTP重定向”“设置URL白名单/黑名单”“禁止访问内网IP段”“限制请求协议”。这道题的正确思路是:SSRF的防护绝不能只靠黑名单IP,因为攻击者可以利用DNS重绑定、IPv6映射、URL解析差异、重定向等多种方式绕过。最稳妥的方案是“解析目标域名获取IP后,确认IP不是内网地址,并且禁止重定向跟随,再发起请求”。这个题如果没真正做过Web安全测试,很难答得完整。
加密算法方面,美团考了对称加密和非对称加密的区别、HTTPS握手过程中证书的作用,以及密码存储时为什么要加盐。其中“加盐”这题很有迷惑性,因为选项里有个“客户端加密后存储,即使数据库泄露攻击者也拿不到明文”看起来很安全,但实际上是错的——客户端加密不等于安全存储,真正做法是使用bcrypt、scrypt或PBKDF2等专门用于密码存储的慢哈希算法,并且每个用户使用独立的随机盐值。原因在于普通哈希算法(如MD5、SHA256)计算速度太快,攻击者可以暴力穷举或使用彩虹表破解,而慢哈希算法通过增加计算成本来提高暴力破解的代价。这个知识点既在笔试里出现,也是安全工程师的基本功,值得彻底弄懂。
安全加固部分考了Linux系统加固。这道题给了四台服务器,问哪一台的配置最安全。考察点包括SSH是否允许root直接登录、密码策略复杂度、是否开启了防火墙、关键服务是否以最小权限运行。这几个点刷过等保测评相关内容的同学应该都很熟,没接触过的同学也不难,记住一个原则:最小权限、默认拒绝、关闭无关服务、日志全量记录。
2.5 数据库与中间件:索引失效、缓存雪崩、消息堆积
数据库和中间件的题目是我这次丢分比较严重的地方,因为前期复习时大部分精力都用在了Linux、网络和容器上,对数据库底层原理准备得不够细致。这里复盘两道比较典型的题,帮大家避坑。
第一道是MySQL索引失效的判断。题目给了几个SQL语句,问哪些会使用索引失效导致全表扫描,选项里有WHERE name LIKE '%张'、WHERE age + 1 = 30、WHERE status IN ('A', 'B')、WHERE create_time BETWEEN '2025-09-01' AND '2025-09-30'。正确的答案是前两个会失效,因为左边模糊匹配无法利用B+树索引的有序性,索引列上做计算也会导致优化器无法直接使用索引。这个知识点对于日常排查慢SQL非常关键,运维和DBA的工作常常重合,工作中真的会遇到很多因为“在索引列上写了函数”导致的慢SQL问题。备考时一定要把MySQL索引失效的几种常见情况背熟,这是面试和笔试的双高頻考点。
第二道是Redis相关,问“缓存击穿、缓存穿透、缓存雪崩”的区别以及应对方案。这三个概念是Redis面试八股文经典题目,美团笔试果然也考了。这里帮大家快速区分一下:
| 概念 | 定义 | 典型应对方案 |
|---|---|---|
| 缓存穿透 | 查询不存在的数据,导致请求直接打到数据库 | 布隆过滤器、缓存空值 |
| 缓存击穿 | 某个热点key过期,大量请求同时打到数据库 | 互斥锁、逻辑过期 |
| 缓存雪崩 | 大量key同时过期,或Redis宕机,引发数据库压力剧增 | 过期时间加随机值、多级缓存、高可用架构 |
实际上,这三个概念的区分方式就是“穿透是数据不存在、击穿是单个热点key过期、雪崩是大面积key过期或Redis整体不可用”,要按这个逻辑去记,而不是死背定义。此外美团还问了一道和消息队列有关的题:RabbitMQ消费者处理速度跟不上生产者,消息大量堆积,解决思路有哪些。选项中我选了“增加消费者实例、提高消费者消费速率、临时将消息转存到其他队列、调整QoS预取数量”,这些都对。消息堆积在运维日常中很容易遇到,核心思路就是“要么提高消费速率、要么减少堆积量、要么临时扩容”,没有银弹。
2.6 在线编程题:不是考算法,而是考工程排查能力
在线编程题是美团运维&安全岗笔试中区分度最高的一部分。和纯开发岗的LeetCode题不一样,运维岗的编程题更贴近工程场景。我这次抽到的编程题是一道“模拟日志分析”题:给出一份Nginx访问日志,统计某个时间段内的请求量、独立IP数、TOP5访问URL,以及识别4xx和5xx错误码的占比。
说实话这道题难度不算高,但它考察的是用Python或Shell处理文本、分析日志的基本功。我当时的思路是:用Python的字典(Counter)统计频次,逐行解析日志并用正则提取IP、时间、URL和状态码,再用时间字符串的区间过滤来统计某时间段的请求量。这里有一个实战技巧:千万不要用“逐行用正则提取所有字段再过滤”这种慢方法,正确做法是先按行用split()快速切分,再对需要的字段做正则提取。Nginx的默认日志格式是按空格分隔的,第1列是IP,第4列是时间([09/Sep/2025:10:30:25 +0800]),第7列是请求URL,第9列是状态码。直接split后取对应索引,比全行正则快一个数量级。
再补充一个笔试常见的坑:日志文件很大时,不要一次性read()整个文件到内存,应该用for line in file逐行迭代,这样Python会自动做缓冲读取,内存占用保持稳定。我在这道题里还额外做了两个动作:一是用defaultdict(set)来统计独立IP,二是按小时聚合请求量,这样数据更有洞察力。最后我还加了一个“识别异常状态码”的逻辑,把所有状态码大于等于400的请求单独输出到一个文件。这些细节不一定要求你全部实现,但“在代码里体现出工程意识”是加分项,考官更希望看到你有生产环境处理数据的直觉,而不是只会写玩具代码。
编程题的另一类常见题型是“写一个Shell脚本实现某个运维操作”。美团往年考过“监控某个进程是否存在,不存在则拉起的脚本”“批量重命名日志文件的脚本”“一键部署Nginx并配置虚拟主机的脚本”。如果抽到这类题,一定要记得加入“日志输出、错误处理、退出码判断”这些细节,而不是只写几行核心命令。我当时之所以没有被难倒,是因为平时做自动化时习惯用set -euxo pipefail开头,写脚本时顺手就带上了解释,这些小细节在阅卷人眼里就是区分度。
3. 从笔试题反推岗位能力模型:美团到底想要什么样的运维
3.1 运维思维的三个层次:会操作、会诊断、会预防
如果把美团笔试的题目按“思维层次”分类,大致可以分成三层:第一层是“会操作”,比如知道查看进程用什么命令、修改权限用什么命令,这一层通过刷题就能解决;第二层是“会诊断”,比如遇到接口超时能分析出是网络层还是应用层问题,遇到CPU不高但load高能想到IO阻塞,这一层需要有实际的故障排查经验或深度的原理理解;第三层是“会预防”,比如知道如何设计日志监控、如何配置告警阈值、如何做容量评估,这一层在笔试中的体现就是“情景判断题”和“方案设计题”。
美团给运维岗笔试出的题,明显在努力区分这三层思维。比如同样考Linux的负载,如果只问“查看负载用什么命令”,这是第一层;如果问“CPU不高但load高可能是什么原因”,这是第二层;如果问“如何通过监控来提前发现负载异常”,这就到了第三层。我在做题时发现,很多选项的设置本身就是按照这个层次递进的,选“用top看一眼”和选“结合监控系统回顾历史趋势然后定位异常窗口”的得分明显不同。
3.2 运维与安全岗位的能力重叠与交叉
美团这次笔试把运维和安全放在一个岗位类别里,本身就说明他们期望的候选人要有跨界能力。运维工作中的安全合规、安全监控、漏洞修复,与安全工作中的基础设施加固、日志审计、应急响应,这两个方向在真实工作中的交集越来越多。从笔试题目也不难看出:Linux加固、Web漏洞修复、密钥管理、容器安全这些内容,既属于运维的日常工作范围,也是安全岗位的必考知识。
所以如果你同时准备运维岗和安全岗,很多知识点是可以共用的。我的建议是:以运维知识为主体框架(Linux、网络、容器、中间件、脚本),再往上面叠加安全专项(Web安全、加密、加固、CTF基础)。这样一套组合打下来,无论最终笔试抽到的是偏运维的题还是偏安全的题,你都能Hold住一部分。不要只盯着一个方向刷题,否则很容易在“安全测试基础”和“运维场景题”之间出现知识断层。
3.3 美团内部的运维技术栈与笔试出题倾向
从公开的技术分享和笔试题目反推,美团内部的运维体系大概涉及这几个方向:大规模容器集群管理、全链路监控系统、混沌工程与故障演练、安全合规自动化。因此笔试中反复出现Kubernetes调用链、故障定位、Web安全修复等相关题目,其实都是内部真实场景的映射。
这一点给我的启示是:备考大厂运维岗,不能只刷通用题,一定要去了解目标公司的技术博客、开源项目、技术大会分享,从中推断他们最关注的技术方向,然后针对性地深入学习。我当时特意翻了美团内部的运维技术文章,看到很多关于全链路监控和容器化的分享,所以后面复习时有意识地把重点放在“链路排查”和“容器运行时”上,结果考试时果然碰到了相关的考点。这种“提前摸清目标公司技术偏好”的策略,比盲目刷题有效得多。
4. 备考路线建议:如果让我重新准备一次美团运维&安全岗笔试
4.1 基础打底阶段:吃透五本“指定教材”
如果你从现在开始准备明年秋招,我建议按以下顺序打基础:
- Linux方面,《鸟哥的Linux私房菜》的基础篇必须看完,重点掌握文件权限、进程管理、系统服务、网络配置。这本书很厚,但不用全部啃完,优先看与运维直接相关章节;
- 网络方面,理解TCP/IP协议栈的经典知识,重点掌握TCP三次握手和四次挥手、HTTP状态码、DNS解析流程、常用的网络排查工具(ping、telnet、curl、traceroute、ss)的使用场景;
- 容器方面,看完Docker和Kubernetes的官方文档基础部分就够了,再额外补充一份containerd和CRI的入门文章,理解容器运行时的基本原理;
- 数据库方面,MySQL的索引原理、事务隔离级别、锁机制是核心,Redis的持久化策略、缓存常见问题、过期策略是核心;
- 安全方面,Web安全方向推荐《Web安全深度剖析》或者OWASP Top 10官方文档,至少把SQL注入、XSS、CSRF、SSRF、文件上传漏洞的原理和修复方式弄懂。
4.2 实战进阶阶段:用真实项目代替无效刷题
如果说基础阶段是“背书”,进阶阶段就必须“动手”。Linux知识靠看是记不牢的,一定要自己搭一套实验环境。我的做法是在一台闲置服务器上部署了一个完整的应用栈:Nginx + MySQL + Redis + Java应用,然后人为制造故障,比如误删配置文件、杀错进程、磁盘写满、内存耗尽,再去排查和恢复。这个过程让我在笔试中遇到“情景判断”题时特别有底气,因为很多故障现象我真实见过,选答案时基本能排除明显错误项。
安全方向的实战,建议打CTF平台的Web方向题,比如经典的靶场环境。做CTF不是单纯为了比赛,而是为了让你对漏洞的触发条件和利用方式建立直观认识。比如你亲手利用过一次SQL注入,就会明白为什么修复时要选择预编译而不是简单过滤;你亲手打过一次SSRF,就会理解为什么“禁止内网IP段”并不安全。这种“知其所以然”的知识,笔试中遇到稍微变形一点的题目也能做对。
4.3 时间分配的优先级建议
综合我和同期同学的经验,备考时间的合理分配大概是:
- Linux + 网络:35%。这是运维岗的地基,也是最容易在选择题中拿分的部分;
- 容器 + 云原生:20%。美团重点考察的方向,值得投入;
- 安全:20%。如果投的是运维&安全岗,安全部分的权重比你想象中高;
- 数据库 + 中间件:15%。需要理解原理,不要只背面试题;
- 脚本编程:10%。每天手写几个小脚本,保持文本处理的手感。
另外强烈建议每周至少做一次限时模拟笔试,严格按照120分钟的时间来。我备考时用过牛客网的模拟题库,也找过一些真题资源,但最有效的还是自己给自己出场景题——把一段故障描述写下来,再列出五六个选项,逼迫自己在一个时间内选出最优解,然后复盘错误选项为什么错。这种方法一开始很费时间,但练几套之后,你对“出题人想考什么”的敏感度会明显提升。
5. 笔试现场技巧:答题顺序、时间控制和代码规范
5.1 答题顺序:先做情景题,再啃难题
美团运维&安全岗笔试的题目编排并不是按难度递增的,前面几道选择题可能是比较容易的基础题,但中间也会穿插一两道特别绕的场景题。如果你按顺序硬做,很容易在一道纠结题上卡住五六分钟,导致后面的大题时间不足。
我的建议是:先把整张卷子快速浏览一遍,标记出“情景判断类”和“纯知识点类”题目。优先做纯知识点题,因为它们通常可以在30秒内决定答案,得分率高;情景判断类题目留到后面,用整段时间集中思考。编程题千万不要留到最后没时间了才写,哪怕只写了一半的逻辑过程和伪代码,也比完全空白强。阅卷人在看编程题时,除了看最终代码能否运行,还会看你的思路是否清晰。
5.2 多选题:宁可少选,也别错选
美团笔试的多选题占了不少分值,而且计分规则通常是“多选、少选、错选都不得分”,这意味着每题的风险很高。对付多选题,我的经验是“不确定的选项不选”。虽然有少数考试采用“少选得部分分”的规则,但如果你不确定评分规则,保守策略永远是最安全的选择。平时刷题时要注意总结多选题的常见混淆项设置方式——出题人经常用一个“看起来正确但不完整”的说法来设置陷阱,比如“重启容器可以解决一切故障”,这类表述在单选题里可能还能蒙对,在多选题里就是送命题。
5.3 代码题的写作规范:阅卷人也是一个开发工程师
编程题不是只写核心逻辑就完事了。即使时间紧张,也要在代码中体现几个关键工程习惯:
- 函数有清晰的命名和注释,写明输入和输出;
- 对异常情况有基本处理(文件不存在、格式非法、内存超限);
- 代码结构分层明确,数据读取、处理逻辑、结果输出分离;
- 如果某段逻辑复杂,在旁边用注释写一下解决思路,方便阅卷人理解你的设计意图。
我当时写日志分析题时,就用注释把“双端队列维护滑动窗口统计每小时请求量”的思路简单写了一句,后来复盘时觉得这个动作留下的印象分比多写几行代码更重要。
6. 笔试之后的复盘与后续准备
笔试考完到收到面试通知,中间大约隔了一两周。这段空窗期很多人会彻底放松,但其实这是最宝贵的复盘窗口。我当时做了一件事,就是把自己能回忆起的题目全部整理到一个文档里,按知识点分类,然后标注“掌握牢固”“模糊”“完全不会”三个等级。之后针对“模糊”和“完全不会”的部分集中补课——比如我发现自己对MySQL索引失效的几种场景掌握得不够牢固,就集中看了一整天的索引相关知识,并做了几道练习题。
美团面试一般在笔试通过后一周内发起,面试流程通常包括两到三轮技术面加一轮HR面。笔试中暴露出的薄弱点,往往会在面试中被进一步追问。比如笔试考了容器调用链路,面试官可能就会顺着问“pause容器的作用是什么”“如果Pod里的业务进程退出了,kubelet会怎么处理”。所以笔试后立刻复盘,其实是在为下一阶段的面试做准备。
另外,如果有机会,建议在这个阶段找一位有经验的运维工程师聊一聊,把笔试里的场景题拿给对方听,让他们说说真实工作中他们会怎么做。我备考时经常问身边做运维的朋友“你们线上遇到这个问题真的会这样排查吗”,得到的回答帮我纠正了好几个“教科书式但不实用”的思维误区。比如教科书告诉你排查网络问题要先看OSI模型从物理层到应用层逐层排查,但真实运维的排查顺序往往是“先看监控和报警,再看业务日志,最后才抓包”,因为监控能快速缩小范围,而逐层排查效率太低了。这种“真实世界”的经验,笔试和面试里都特别有价值。
- 以上就是我关于2025年秋招美团运维&安全岗第一批笔试的完整复盘。说句实在话,这套笔试题的难度不算变态,但它对“知识的实际运用能力”要求很高,单纯靠刷题和背八股很难拿高分。如果你正在准备类似岗位的校招,我希望这篇文章能帮你少走一些弯路——重点抓住Linux、网络、容器、安全四个板块,多做场景判断训练,多动手搭环境,把“会操作”和“会诊断”之间的距离缩短,你离Offer就会近一大步。