新闻详情

新闻详情

首页 / 资讯中心 / 详情

阿里运维工程师面试题:Linux排障、阿里云换源与K8s迁移压测

发布时间:2026/9/18 4:03:19来源:尧图网络
阿里运维工程师面试题:Linux排障、阿里云换源与K8s迁移压测
简介这份文档是面向互联网求职者的阿里运维工程师面试真题回忆整理适合准备一线大厂运维、Java 开发岗位笔试与面试的应届生及社招人群用于摸清阿里的面试流程、考查维度与答题思路。压缩包内共 1 个 docx 文件约 21KB内容以对话形式复现真实面试场景涵盖方向确认、自我介绍、简历项目挖掘等技术面环节并围绕 JVM 运行时数据区、类加载与双亲委派机制、GC 分代回收原理、内存分配策略及并发包常用组件等知识点展开还附有作者对每轮回答的复盘与阶段总结。读者可据此了解面试官如何从简历项目切入提问、哪些内容需要重点准备、自我介绍与项目陈述如何突出亮点并对照题目自查知识盲区提前组织回答话术。文档已有 1159 人学习篇幅精炼但信息密度较高适合作为面试前的针对性复习材料。1. 阿里运维工程师面试.docx 里真正拉开差距的是哪几类题手里攥着一份「阿里运维工程师面试.docx」的人大多已经刷过三四轮题了但面到二面还是会卡面试官不再问“Linux 查看端口用什么命令”而是丢一句“线上这台 ECS 负载 20你先看什么”。题面本身不难难在你得把命令、参数、现象串成一条能自圆其说的链路还要扛得住追问。这也是初级运维工程师面试题和高级岗位题看着相似、评分点却完全不同的原因。初级答出命令就算过中高级要答出为什么这么选、参数边界在哪、换到容器和云上还成不成立。阿里云环境又多一层安全组、VPC、SLB、突发型实例的 CPU 积分都会让本地跑通的结论直接失效。下面按面试现场被追问的顺序拆Linux 与网络排障、阿里云镜像源与构建提速、微服务从单节点 K8s 迁到阿里云 ECS 再加压测验收最后补几个常被问倒的细节。每一块都给能直接复现的命令、参数和判断依据。2. Linux 与网络排障运维工程师面试题里占比最高的一块这块内容几乎每轮必考因为它是可验证的。面试官问“负载高怎么办”不是想听你背top的字段含义而是想看你的排查顺序是否收敛先判断类型再缩小范围最后落到具体线程或连接。顺序错了会被认为只会在单机上敲命令没做过线上定位。2.1 从负载高到定位到具体线程的命令链排障最忌讳一上来就top然后盯着看。我的习惯是先分清是 CPU 型、IO 型还是阻塞型再决定往下钻哪里。# 第一步判断负载趋势和类型区分突发抖动与持续压力 uptime # 1/5/15 分钟三个值递增 持续压力只有 1 分钟高 突发 vmstat 1 5 # r 列超过 CPU 核数说明在排队b 列大于 0 说明有阻塞进程 # 第二步锁定进程再下钻到线程 ps -eo pid,ppid,pcpu,pmem,stat,comm --sort-pcpu | head -10 top -H -p 12345 # -H 展开线程找出真正吃 CPU 的那个 TID # 第三步线程号转十六进制去线程栈里对齐 printf %x\n 12378 # 输出 305a再到 jstack 结果里搜 nid0x305auptime的三个值要连起来看趋势单看一个数字没有意义vmstat的r列必须跟 CPU 核数比较不是跟 1 比较这是最常见的答错点top -H是最容易漏的一步Java 服务光看进程只能看到整体占用看不出哪条线程在空转。最后转十六进制是因为 jstack、gdb 里的线程标识都是十六进制不转就对不上。如果vmstat显示b列持续大于 0、wa很高方向就要换成 IOiostat -x 1看%util和await再用iotop -o找具体进程。面试时把这两条分支都说出来比只答 CPU 分支完整得多。2.2 网络连通性四件套在阿里云 ECS 上的额外坑网络类问题在阿里云上有它自己的形状。经典四件套是 ping、telnet、ss、tcpdump但前提是你得知道公网 IP 并不绑在网卡上——ECS 的公网地址是 NAT 映射出来的ip addr看不到它。不理解这一点抓包时会一直疑惑“为什么源地址不是公网 IP”。ss -tnlp | grep 8080 # 端口有没有被监听比 netstat 快且不依赖 net-tools tcpdump -i eth0 -nn port 8080 -w /tmp/8080.pcap -c 500 mtr -r -c 20 10.0.0.8 # 内网逐跳路径比 ping 更能定位是哪一段丢包ss -tnlp里的-t是 TCP、-n不做域名解析、-l只看监听态、-p带进程四个组合起来才是排查“端口没起来”最快的写法。tcpdump的-c 500限制抓包数量避免把磁盘写满这是个很实际的细节。mtr比 ping 更适合定位中间路径问题但它依赖 ICMP 回显遇到禁 ping 的节点会显示???这时候要改判为 TCP 探测而不是下结论说链路断了。安全组是另一道必答的门。ECS 上服务起来了、本机curl 127.0.0.1通、外部访问不通八成是安全组入方向没放行而不是服务本身的问题。同理用 xshell 这类客户端连 ECS 做部署时22 端口只对堡垒机或固定办公出口放行这一点在面试里提一句会显得你考虑过生产安全边界。2.3 面试官最爱追问的内核参数与句柄限制到了这一层问题会变成“你调过哪些参数、依据是什么”。答不上具体值没关系但要说得出怎么查、什么场景下必须调。下面这几个是命中率最高的。参数查看命令常见起点什么时候必须调单进程最大句柄ulimit -n、cat /proc/PID/limits1024Nginx、网关、Java 长连接服务全连接队列长度ss -lnt看 Send-Q128短连接高并发会出现握手丢失本地端口范围cat /proc/sys/net/ipv4/ip_local_port_range32768 60999大量主动外连的客户端场景TIME_WAIT 复用cat /proc/sys/net/ipv4/tcp_tw_reuse0本机作为客户端频繁建连时间同步源chronyc sources -v4 个源集群、证书校验、日志对齐2.3.1 句柄限制怎么改才不会被 SSH 会话“吃掉”很多人改完/etc/security/limits.conf发现只在当前 SSH 会话生效放到 systemd 托管的服务里又变回 1024原因就在这里。# 全局登录会话生效注意 * 不覆盖 root需要单独写一行 echo -e * soft nofile 65535\n* hard nofile 65535 /etc/security/limits.conf # systemd 托管的服务要单独覆盖否则走的是守护进程默认值 mkdir -p /etc/systemd/system/nginx.service.d printf [Service]\nLimitNOFILE65535\n /etc/systemd/system/nginx.service.d/limits.conf systemctl daemon-reload systemctl restart nginx systemctl show nginx -p LimitNOFILE # 验证别只看 ulimit关键点是limits.conf的作用域是 PAM 登录会话systemd 服务从 PID 1 拉起来根本不经过 PAM所以必须用 drop-in 目录覆盖。验证方式也要用systemctl show而不是在当前 shell 里敲ulimit -n后者看的是你自己的会话跟服务无关。这一点被追问时能答出来基本能证明你真在生产上踩过。3. 阿里云镜像源与构建yum、pip、maven 配置阿里云仓库怎么答才算及格换源这类题看着像送分题其实很容易答浅。面试官真正想确认的是三件事你知不知道什么时候该换源、换源之后怎么验证真的生效了、以及内网源和公网源的区别会不会影响你的构建方案。答成“把 yum 源文件里的地址改掉”就停基本只能算及格线。3.1 为什么换源值得单独问一轮换源的收益不只是“下载快”。在阿里云 ECS 上同地域的内网镜像地址走的是内网链路不占公网带宽、不计公网流量CI 流水线里如果是几十个节点同时拉包公网源会直接把你按带宽计费的出口打满。这就是为什么构建提速和成本控制会绑在一道题里问也是为什么 maven 配置阿里云仓库几乎是 Java 岗的必问题。判断该不该换源看三个信号单次构建耗时里下载占比超过三成、拉包偶发超时重试、以及跨地域节点拉同一份依赖速度差异明显。反过来如果依赖里有大量内部私服包无脑换源会把私服地址一起劫持掉这是踩过坑才会想到的边界。3.2 CentOS 7 和 CentOS 9 更换阿里 yum 源的可复现步骤两个版本的路径不一样混着写脚本一定会出问题。CentOS 7 已停止维护官方镜像路径迁移到了 vault直接套用老教程会大量 404这是目前最高频的一个坑。# 通用第一步备份原仓库配置出问题能立刻回退 mkdir -p /etc/yum.repos.d/bak mv /etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/bak/ # CentOS 9含 Stream 9更换阿里 yum 源 curl -fsSL -o /etc/yum.repos.d/CentOS-Base.repo \ https://mirrors.aliyun.com/repo/Centos-vault-9.repo # CentOS 7 走 vault 路径不要再用旧的 CentOS-Base.repo curl -fsSL -o /etc/yum.repos.d/CentOS-Base.repo \ https://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache yum repolist -v | head -20 # 看 baseurl 是否已指向 mirrors.aliyun.com-fsSL四个参数分别是不显示进度、静默模式下失败返回错误码、遇到重定向跟随、下载到文件脚本里少一个-f就可能在 404 时把错误页写进 repo 文件之后yum makecache报一堆莫名其妙的解析错误。yum clean all清的是本地元数据缓存不清的话改完源还是走旧索引看起来像“换了没用”这是排查顺序上最容易绕的一步。验证不要去猜yum repolist -v会直接把每个仓库的实际 baseurl 打出来。如果换完仍然报找不到包先看 DNS 和出口curl -I https://mirrors.aliyun.com/能通说明是 repo 文件内容问题不通就是网络侧问题别在源文件上反复改。3.3 pip 阿里源与 maven 配置阿里云仓库的正确写法Python 和 Java 的配置方式差别挺大一个走配置文件、一个走 settings.xml考点都在“生效范围”上。# pip 阿里源写入用户级配置影响所有虚拟环境 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ pip config set global.trusted-host mirrors.aliyun.com pip config list # 确认写入位置和内容trusted-host这行不能省它解决的是部分环境对镜像域名的证书校验问题不加会出现证书告警甚至直接拒绝。pip config list会告诉你配置落在~/.config/pip/pip.conf还是虚拟环境内部如果 CI 里用的是容器这个文件不在镜像里配置就得写进 Dockerfile 或者用环境变量PIP_INDEX_URL传。!-- ~/.m2/settings.xml只保留一个 central 镜像mirrorOf 必须写准 -- mirror idaliyunmaven/id mirrorOfcentral/mirrorOf namealiyun public repository/name urlhttps://maven.aliyun.com/repository/public/url /mirrormirrorOf写central表示只代理中央仓库写*会连公司私服一起劫持结果就是私服包永远拉不到。正确写法是external:*或者*,!私服id。这一点几乎每次面到 maven 都会被追问答得出来说明你真的配过带私服的构建环境。4. 从单节点 K8s 到阿里云 ECS迁移与压测这道大题怎么拆这道题是当前最贴近真实工作的一类单节点 K8s 上跑着若依那套微服务要准不停服、不丢数据地迁到阿里云 ECS迁完还要用 JMeter 做高并发验收。它同时考架构理解、数据一致性和压测方法答得完整就能明显区分层级。4.1 迁移前先做资源画像别上来就买机器单节点 K8s 的所有组件都挤在一台机器上kubelet、容器运行时、Nacos、MySQL、Redis 加上一堆 Java 进程kubectl top node的数字往往已经失真。正确的做法是先看 requests 和 limits再看真实使用量。kubectl top nodes kubectl describe node node1 | grep -A 20 Allocated resources kubectl top pods -A --sort-bycpu | head -20top反映的是瞬时使用量describe node里的 Allocated resources 反映的是调度层面的预留两者差距大说明 limits 设得过高或过低迁移到 ECS 时按哪个数买机器就得说清楚。我的习惯是把 limits 按峰值打七折留余量ECS 规格按 Pod 的 requests 总和加 30% 冗余来选而不是按峰值直接乘。特别注意突发型实例。它的 CPU 积分一旦耗尽性能会断崖式下跌压测时表现得像“云上比本地还慢”其实是积分用完了。生产库和网关节点不要用突发型。4.2 准不停服、不丢数据迁移到阿里云 ECS 的执行顺序顺序错了要么停机时间拉长要么数据对不上。我的执行顺序是先把目标环境跑通再同步冷数据最后才处理数据库和切流。# 静态文件首轮全量同步--delete 保证目标端与源端结构一致 rsync -avz --delete --excludelogs/ --excludetmp/ \ -e ssh -p 22 /data/app/ roottarget-ecs:/data/app/ # 数据库全量导出并记录 binlog 位点用于追增量 mysqldump -uroot -p --single-transaction --master-data2 \ --databases ruoyi /data/backup/ruoyi_$(date %F).sql--single-transaction让 InnoDB 在一个一致性快照里导出全程不锁表这是不停服的前提--master-data2会在 dump 文件头部写上 CHANGE MASTER 语句的注释那个位点就是增量同步的起点。切流窗口内的动作是固定的停写 → 追完最后一段 binlog → 校验行数 → 切 SLB 或 DNS。校验不能只看表数量至少要比对关键表的count(*)和几条业务主键的更新时间。镜像也要提前搬到阿里云镜像仓库让集群从内网拉不要切完流才发现节点在公网拉镜像卡住。同理配置里的数据库连接串、Nacos 地址、Redis 地址都要在压测前改完压测通过才算迁移完成。4.3 用 JMeter 做高并发验收与云上瓶颈定位压测要在非 GUI 模式下跑GUI 只用来编脚本。命令行参数直接决定结果可信度。# -n 非 GUI-t 脚本-l 结果文件-e -o 生成 HTML 报告 jmeter -n -t ruoyi_login.jmx -l result.jtl -e -o report/ \ -Jthreads500 -Jramp60 -Jduration600-J传进去的是脚本里的${__P(threads)}这类属性好处是同一份 jmx 可以跑不同并发梯度不用改脚本。ramp60表示 60 秒内把 500 个线程压上去ramp 太短会变成瞬时冲击测出来的是队列长度不是承载能力。压测过程中要盯的指标不止应用本身观察对象关键指标常见异常信号ECSCPU 积分、steal 时间突发型积分耗尽性能断崖SLB新建连接数、QPS连接数打满引发握手失败RDS连接数、IOPS、慢查询连接池大于实例上限带宽出方向带宽、PPS带宽跑满但 CPU 很低系统TIME_WAIT 数量短连接压测下的正常现象但要能解释最后一条很关键压测后看到大量 TIME_WAIT 不要急着说是问题短连接模型下这是必然结果能说清楚它是客户端侧还是服务端侧、要不要开tcp_tw_reuse比单纯报个数字更有说服力。5. 面试收尾的几个细节SSL 证书、OSS 参数与验证习惯最后这轮往往问得很散考的是你平时有没有形成验证习惯。这类问题没有标准答案但答得具体就能加分。5.1 阿里云 SSL 证书免费续期的到期检查怎么写免费证书有效期短、需要定期续靠人记必然出事。与其讨论怎么续不如先做到“到期前一定知道”。# 直接读对端证书的生效与到期时间不依赖浏览器 echo | openssl s_client -servername example.com -connect example.com:443 2/dev/null \ | openssl x509 -noout -dates-servername必须带SNI 场景下不带会拿到默认站点的证书检查结果就是错的。把这条命令包进脚本解析notAfter转成时间戳和当前时间做差小于 30 天就告警挂到 crontab 每天跑一次。证书和私钥的匹配也可以顺手验一下比对两边的公钥指纹是否一致避免换了证书没换私钥这类低级事故。5.2 阿里云 OSS 相关的三个必答参数对象存储的问题通常集中在权限和生命周期上答的时候把默认值说清楚就行。配置项建议值理由Bucket 读写权限私有公共读一旦配错等于把文件放到公网生命周期规则按前缀设置转换与过期日志类对象自动转低频、到期删除跨域 CORS只放行必要域名和方法前端直传场景才需要别用通配符访问凭证不要写死在代码里用实例角色或 STS 临时凭证这条几乎是必问的追问点。理解这三项之后再遇到“图片处理怎么做”“大文件怎么上传”这类延伸问题思路都是从权限、生命周期、访问方式这三个维度往外扩。回到最初的场景一份面试题文档能帮你覆盖知识点但覆盖不了判断力。真正值得练的是把每条命令跑一遍然后问自己三个问题——这个参数改大改小会发生什么、换成容器和云上还成立吗、出问题时我先看哪个输出。这三问答得出来面试基本就稳了。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

大模型System Prompt泄露风险与四层防御实战 2026/9/18 4:48:23

大模型System Prompt泄露风险与四层防御实战

1. 这不是“提示词泄露”,而是模型交互链路上的系统性暴露风险最近在多个技术社区和内部复盘会上,频繁看到“system_prompts_leaks”这个短语被当作一个独立术语使用——它既不是某个开源项目名,也不是某家厂商的专有功能,而是一个…

阅读更多 →
miniblink49 内嵌 V8 的 Google Test(gtest)构建与集成指南:从源码编译到宏级定制 2026/9/18 4:48:23

miniblink49 内嵌 V8 的 Google Test(gtest)构建与集成指南:从源码编译到宏级定制

miniblink49 内嵌 V8 的 Google Test(gtest)构建与集成指南:从源码编译到宏级定制 【免费下载链接】miniblink49 a lighter, faster browser kernel of blink to integrate HTML UI in your app. 一个小巧、轻量的浏览器内核,用来…

阅读更多 →
QMK Firmware 实战:Boston Meetup 2019 Macropad 完整指南(配置、编译与默认键位解析) 2026/9/18 4:48:23

QMK Firmware 实战:Boston Meetup 2019 Macropad 完整指南(配置、编译与默认键位解析)

QMK Firmware 实战:Boston Meetup 2019 Macropad 完整指南(配置、编译与默认键位解析) 【免费下载链接】qmk_firmware Open-source keyboard firmware for Atmel AVR and Arm USB families 项目地址: https://gitcode.com/GitHub_Trending/…

阅读更多 →
华为 CodeArts 调 Anthropic,TaoToken 在代理层填 Key 2026/9/18 4:48:23

华为 CodeArts 调 Anthropic,TaoToken 在代理层填 Key

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
单片机选型全攻略:开发适配、应用验证与量产配套实战指南 2026/9/18 4:48:23

单片机选型全攻略:开发适配、应用验证与量产配套实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
FreeRTOS任务优先级全解析:从调度原理到工程实战 2026/9/18 4:45:23

FreeRTOS任务优先级全解析:从调度原理到工程实战

1. 先把优先级这张牌看懂:数值越大优先级越高,还是越低?FreeRTOS的任务优先级,很多新手第一次接触就会栽跟头。它在配置上很简单,就是一个整数,但背后的调度规则会直接影响整个系统的实时性和稳定性。先说最…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞