SRE运维工程师面试都问些啥?

SRE、运维工程师面试过程中,会问哪些问题?特别是TCP网络一直都是面试的高发题目,会被问些啥呢,这里我整理了相关的高发问题。
在这里插入图片描述

所有的问题会陆续更新到WX公众号:Linux运维实战派

或扫描关注,获取最新更新
在这里插入图片描述

一线大厂面试真题:

大厂面试必问:CPU使用率100%怎么办?运维高手这样回答!
字节面试真题–用户反馈网页访问慢,可能会有哪些原因
字节面试真题–TCP建立连接为什么要三次握手?为什么不是两次或者四次?
面试八股(五) TCP的三次握手与四次挥手过程【是详述可不是简单几句话哦】
面试八股(六) 腾讯面试真题:close_wait状态的原因是什么?该怎么办?
面试八股(七) TCP Keepalive和HTTP Keep-Alive有什么区别?
面试八股(八) Linux服务器拔网线或者断电,已建立的TCP连接会中断吗?
面试八股(九) 关于TCP TIME_WAIT状态的所有面试题都在这里了
面试八股(11) 字节真题,关于TCP半连接与全连接队列的所有面试题
面试八股(12) 大厂真题,你了解synflood攻击吗?该如何应对

问题10:服务端处于TCP TIME_WAIT状态的连接,客户端重用这个连接还能连上吗?

书接上回,在服务端处于TIME_WAIT状态时,如果客户端使用了相同的四元组来尝试建立连接(接收到SYN包),会怎么样?会被reset吗?

下边我会结合kernel 5.10的源码分析结果。

一、问题结论

服务端收到合法的SYN会被接收并正常建立连接

服务端收到非法的SYN包后,会向客户端回复ACK,因为客户端此时连接已经关闭(或SYN_SENT状态),所以这个ACK会被客户端reset

二、合法SYN包

接收到的数据包的时间戳比上一次连接中接收的数据包时间戳大,且数据包的序列号要比上一次连接中接收的数据包最后的序列号要大

在这里插入图片描述

三、非法SYN包

收到非法的SYN包的时候

在这里插入图片描述

四、服务端TIME_WAIT状态的异常场景

在这里插入图片描述

4.1 问题场景

在上边的场景中,就是经过了NAT,或者LVS(LVS的fnat),NAT或者LVS节点的local ip比较少,有的甚至只有一个。目标服务也只有一个实例,或者很少几个

  • 第一个client请求过来的时候,经过NAT或者LVS NAT之后,使用的local ip是一个。请求到Server之后,记录下了这个四元组的序号和时间戳。

  • 如果Server服务频繁的中断连接,出现大量的TIME_WAIT连接

  • 在高并发的场景下,在后续的第二个Client过来请求的时候,如果出现了端口回绕(四元组源IP,目标IP,目标端口是固定的),使用相同的源端口(23456)到达Service(服务上的四元组正处于TIME_WAIT)

  • 如果后续Client的时间戳比Service上记录的时间戳小,这个时候就会触发非法SYN包的逻辑,客户端会收到ACK报文。客户端将这个ACK进行RST,最终导致时钟慢的主机,会连接失败。

4.2 出现概率

  • NAT/LVS上的local ip比较少,后端服务Service节点太少的时候,造成四元组只有源端口一个可变因素

  • 高并发的短连接(服务端主动关闭)造成大量的TIME_WAIT

4.3 怎么解决

  • NAT/LVS增加local ip,在之前LVS的Fullnat结构中,每个LVS实例都会配置一整个C段作为源IP

  • 扩容后端Server的节点数量

  • 采用长连接【很重要】

五、源码分析

基于kernel 5.10源码分析,TCP收包的入口函数tcp_v4_rcv

time_wait状态的处理流程:

tcp_v4_rcv
 
<think>好的,我现在需要处理用户关于百度SRE运维面试题。用户之前已经询过相关内容,现在需要根据提供的引用和系统指令生成相关题和回答,并确保格式正确。首先,我要确认用户的主要需求是获取面试题或准备资料,特别是百度SRE运维相关的经验。 根据用户提供的引用[1]和[2],引用[1]提到了运维工程师面试题涵盖的多个领域,如Linux、k8s、Shell脚本等,而引用[2]则涉及大厂SRE实习面经,包括面试官可能会题以及反的机会。因此,我需要结合这些信息,整理出百度SRE运维面试可能涉及的技术题和软技能题。 接下来,按照系统指令,回答需要结构清晰,分步骤说明,并生成相关题。同时,要注意使用正确的中文和LaTeX格式。例如,在提到Linux命令时,需要用行内数学表达式,如$top$,而独立公式如监控系统负载公式需要使用$$...$$。 需要确保每个技术点都有对应的示例或解释,比如在Linux题中,可以举出常用命令,并结合实际场景说明其用途。同时,在系统设计部分,可能需要设计一个监控告警系统,这里要分步骤说明关键点,如指标采集、阈值设定、告警策略等。 此外,软技能题如故障处理流程,需要详细描述步骤,并强调沟通和记录的重要性。在团队协作方面,可以提到使用Jira或Confluence工具,以及如何与开发团队合作优化系统性能。 最后,根据用户要求生成相关题,这些题需要覆盖技术、场景、优化和职业发展等方面,确保全面性。例如,关于Linux性能调优的具体步骤,或者高可用架构的设计细节。 现在,我需要检查是否符合所有系统指令:使用正确的中文,LaTeX格式正确,引用标识自然添加,结构清晰,分点回答,生成相关题。同时,确保没有使用Markdown格式,代码块用三个反引号包裹,并正确标注引用来源。 总结步骤: 1. 分析用户需求,确定回答结构。 2. 结合引用内容,提取相关面试知识点。 3. 分技术、系统设计、软技能、综合场景四部分详细解答。 4. 每个部分提供具体例子或步骤。 5. 生成相关题,覆盖不同方面。 6. 确保格式正确,引用标识正确添加。</think>### 百度 SRE 运维面试准备指南 #### 一、技术基础题 1. **Linux 系统管理** - 常用命令:$top$, $vmstat$, $iostat$, $netstat$, $lsof$ - 文件系统权限题:如何修复因权限错误导致的服务启动失败? **示例场景**:若 Nginx 因日志目录权限不足无法启动,需执行 $chmod -R 755 /var/log/nginx$ 并检查 SELinux 状态[^1]。 2. **脚本与自动化** - Shell/Python 脚本考察:编写脚本清理 7 天前的日志文件 ```bash find /path/to/logs -type f -mtime +7 -exec rm {} \; ``` 3. **监控与故障排查** - 系统负载公式:$$ \text{Load Average} = \frac{\text{Runnable Processes} + \text{Uninterruptible Processes}}{\text{CPU Cores}} $$ - 网络延迟高时,通过 $tcpdump$ 抓包分析或 $mtr$ 诊断链路题。 --- #### 二、系统设计能力 1. **设计监控告警系统** - **关键步骤**: 1. 指标采集(如 Prometheus) 2. 阈值动态调整(基于历史数据) 3. 告警分级(P0/P1/P2)与去重(如 Alertmanager) 2. **高可用架构设计** - 数据库主从切换方案:VIP 漂移 + Keepalived - 服务容灾:多机房部署 + 流量调度(如 BGP Anycast)[^1]。 --- #### 三、软技能与流程 1. **故障处理流程** - 步骤:发现 → 止损(重启/扩容) → 根因分析 → 复盘 → 预防措施 - **核心要点**:优先恢复业务,再排查原因,避免陷入技术细节[^2]。 2. **团队协作** - 使用 Jira 跟踪故障工单,Confluence 沉淀解决方案 - 与开发协作优化代码(如减少慢 SQL)。 --- #### 四、综合场景题 **案例**:某服务 CPU 使用率突然飙升至 90%,如何排查? 1. 检查 $top$ 确定占用 CPU 的进程 2. 通过 $perf$ 或 $strace$ 分析进程行为 3. 排查代码(如死循环)或外部依赖(如 API 调用阻塞)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值