滴滴-运维开发工程师-面经分析(已意向,还愿贴)
timeline:8.28投递-》9.7笔试-》9.25一面-》二面-》三面-》10.21意向
许愿成功了,分享面经还个愿!泡了三周终于泡出来了!
总结:滴滴的面试节奏很快,全方位拷打,很注重对基础以及业务架构的理解,会考察很多关于高可用、高并发的场景题。面试难度hard。
一面(考察网络、OS、mysql、监控、架构设计及高可用场景):
1.你平时就是像学习,你有什么渠道或者是一些你自己的学习方法。
2.我也经常看github,你上面有什么感兴兴趣的这个开源项目吗?有了解吗?
3.你本身的专业是网络方面的对吧?对,那你的这个像linux还有就是数据库程序设计之类的,是你们本身网络课里边就带的,还是说你感兴趣你就是找培或者是自学的?
4.开发语言这一块的话,我看你简历里面有这个shell、python,主要就是这两个语言,还有别的吗?
5.稍微介绍一下,看你理解的这个SRE的工作。
6.TCP和UDP的区别
7.TCP三次握手和4次挥手
8.close wait和time wait它俩的区别在哪里?
9.那像这个去优化它的参数,调整内核的这个参数,你大概能说出来几个吗?就是针对time_wait规则优化这一块,内核参数。
10.然后虚拟内存你知道是什么吧?
11.虚拟内存和正常内存它们在运行效率上有差别吗?
12.堆和栈的区别
13.cookie和session都是什么?他们有什么区别?
14.了解过CDN吗?
15.你也有看普罗米修斯,包括之前实习的时候也有接触过。它的一个metric的一个指标里边都包含哪些内容?
16.如果说你要监控一个生产环境的这个服务,那你大概会监控哪些东西?
17.前面你就是包括像CPU,CPU像磁盘。对,就是包括像一些服务的,可能它本身的质量,这些都是应该被监控到的那他们这些指标其实是很大的一个范围,它是属于一大类。这里边的话你觉得这个指标细致一些,应该去监控哪些细致?
18.像那服务的质量你都关注哪些点?那肯定请求他请求量这一块肯定也跟本身服务容量是有关的。那你这个肯定是要关注的,你还要关注哪些方面的东西?
19.CICD它是什么?它整个它出现的概念其实也近十年,反正出现的那它存在的意义是什么?
20.容器和虚拟机,它们两个的区别都在哪里?
21.这个docker和k8s他们两个是什么关系呢?
22.像k8s的话,他要管理docker的话,一般会通过什么方式来管理呢?
23.这些资源配置要写在哪里呢?
24.赛德car了解过吗?
25.像蓝绿部署,还有这个滚动部署,这块你了解吗?
26.mysql的事务你了解吗
27.redis这种,它跟传统的数据库有什么区别。
28.mysql它的水平扩展和垂直扩展,你知道吗?
29.四层和7层的那LVS和nginx它的负载均衡模式都有哪些,你清楚吗?
30.如果说让你设计一个支持高并发的系统,你从这从怎么说呢?就你怎么设计,就是从就整个系统都交给你,你从前到后,就是说从开始的一些是可能是包括像刚才说的CDN,就是这种公司外部的资源来到公司内部的底层,你这里边你都会用哪些组件,要用他们的哪些特性。然后对然后最好每一步都要考虑一下有关它的扩展性这一块,就是不止要支持高并发,同时还要考虑一下扩展性。
31.然后如果说这个并发很高,那像可能端上可能也会有重复发送的消息,也包括可能nginx它自身可能也有重试,就是对这种一致性,就是请求的一致性。你这块儿有什么从程序设计这一块的一些方法,对,或者是一些概念方面
32.乐观锁和悲观锁
33.然后这个并发因为你刚才也有说到,用这个用队列去走一步,然后让他可以去减小这个实时并发的压力。如果说队列要被写爆了,对,队列如果要被写爆了,那你要用什么手段或者是建立什么样的能力,然后去防止整个系统被压力压垮、压崩溃、压雪崩。
34.缓存一般都是缓一些,可能是预先预热的一些读的一些数据,然后里面写的比较多。那像这种情况,你作为SRE,你在事先应该准备过一些能力,怎么去保护整套系统不雪崩意思就是可能我现在比如说我缓存它,可能现在发生了很多数据失效的一个情况,然后大量请求直接打到我们的云服务器。
35.那如果说不用限流,还有别的方法会相对温和一些,然后也能比较就解这个压力的问题
36.面试官主动介绍部门
二面(考察linux、网络、开发能力、实习):
1.一个最精简的linux内核包括哪几大部分最精简的linux内核包括哪几大部分?
2.不管是讲进程了也罢,或者是文件,或者说是你说的一些网络,随便你找一个你最熟悉的,然后你最擅长,你给我讲一下
3.如果我们感觉这个系统比较慢,或者说有有一些卡顿,然后顺着你这个问题,我们肯定会进程方面也会排查一下。你一般排查思路是什么?就是你刚才讲到了top,你看到你会看什么?这个指标是代表啥意思?
4.你释放一般怎么释放?就kill掉,然后还加点什么东西吗?你不觉得很暴力吗?强制kill掉和发送信号有什么区别?
5.为什么time_wait多会导致网络卡顿,怎么排查和解决
6.它有一个理论值的上限,time_wait的连接上限。对,有没有想过?
7.为什么网络端口只有65535个
8.你查这些文件数一般用什么命令,我怎么去看呢?
9.在哪查系统现在有多少time_wait
10.cookie和session的区别
11.代码开发用什么语言
12.其实我是想问你递归是吧?递归然后递归比较经典的,你学习的东西无非就是说什么可以用哪些数据,或者说是汉诺塔都可以。你能大概描述一下它的一个原理吗?
13.一个递归里面大概有两种,我们去看就是从实现方式来说有两种。还记得吗?我不知道这个就是一种是一种是说空间会会复杂度会高一些,一种空间复杂度会相对会低一些。
14.在浏览器里你输入一个地址应该是很健很开放经典问题就是背后其实设计东西挺多的,你你理解怎么讲?就是说结合我们毕竟你,结合运维和你的计算机网络系统支持。告诉我这背后有什么原因,包括过程中涉及到的一些架构。
15.首先问一下运维这个方向,这个方向自己喜欢做吗?
16.这里边我不知道你是做的比较全,还是都做过哪些方向。这里边有有没有自己特别喜欢的事情
17.那你觉得这个实习经历我们就讲聊XX这一块,你觉得怎么样?感受如何?
18.因为毕竟SRE最多的时间会放在稳定性这一块。我看你也做前后也参与了一些。你能举一个这种很典型的来了一个case,然后这个case你都做了什么?
三面(重点考察实习以及对SRE的了解程度和一些软性素质):
1.拷打实习
2.dockerfile的话我想问一下,在实践中的话,是你是怎么去用它。包括是整个业务镜像是怎么去做这样的一个分层。
3.比如现在APP上某个界面它是打不开的状态。就说是从整个SRE的一个去做问题定位的一个流程。你会从哪些方面去做这样一个问题定位?
4.给你印象最深的故障。你自己感觉哪些点是从业务架构和SRE的层面可以去做一些反思的。
5.我觉得其实因为你在在XX也实现了比较这时间我觉得还是对整个SRE的一个运作机制也比较熟悉了。我就不不不问的更多了。我想问一下,你现在在XX是他们给你转正吗?
#秋招##滴滴#