Python运维驿站Python 运维

滴滴面试记

2016-09-12  本文已影响1833人  田飞雨

滴滴投的是运维研发岗,两轮面试都是视频面的,完成的不是很好。

1. TIME_WAIT 的作用

TIME_WAIT 是为了实现 TCP 全双工连接的可靠性关闭,用来重发可能丢失的 ACK 报文;需要持续2个MSL(最大报文生存时间):假设应用程序端口在进入TIME_WAIT后,2个 MSL时间内并没有收到FIN,说明应用程序最后发出的ACK已经收到了;否则,会在2个MSL内再次收到ACK报文。

2. tcp 四次分手


3,500 和 502 的区别


500 Internal Server Error(内部服务器错误):服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。

502 Bad Gateway(网关故障):作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。

4,ping 使用的是什么类型的数据包


请求回显的包

5,根据端口查看进程名

# lsof -i:+端口号

6,查看系统的连接数

使用 ss 或者 netstat 都可以查看

7,app 打开慢,说下该如何查找问题

这个分析了半天


8, 当删除一个文件后,磁盘的空间不变


文件正在被进程使用,删除文件后,进程将仍然可以读取该文件,磁盘空间也一直被占用。

使用以下命令查看已经被删除但是仍然被应用程序占用的文件列表:

# lsof |grep deleted

9,找出大于 2G 的文件并删除

我对命令还是非常熟悉的:

# find ./ -type f -size +2G -exec rm -f {} \;
# find ./ -type f -size +2G | xargs ls -l {}

10,traceroute 的原理

这个不太了解,只知道 traceroute 的作用


主要的原理是IP路由过程中对数据包TTL(Time to Live,存活时间)的处理。当路由器收到一个 IP 包时,会修改 IP 包的 TTL(及由此造成的头部检验和checksum 变化)。每收到一个包,检查这个包的 TTL 是否是 0 或 1。如果是,表明这个包还没有到达目的地,而且剩余时间不多了,肯定是到不了目的地了。这样路由器就简单地丢弃这个包,并给源主机发送 ICMP 通知,说这个包已经超时了。ICMP 的通知信息里包含当前路由器发送时所用的IP。

这样就可以通过构造数据包,来间接检查到 达一个主机时经过了哪些路由。一开始发送一个TTL为 1 的包,这样到达第一个路由器的时候就已经超时了,第一个路由器就发通知说包超时,这样就可以记录下所经过的第一个路由器的IP。然后TTL加 1,安全通过第一个路由器,而第二个路由器的的处理与第一个相同,丢包,发通知说包超时了,这样记录下第二个路由器IP,由此可以一直进行下去,直到这个数据包到达目标主机,由此打印出所有经过的路由器。

11,滴滴客户端与服务器交互的过程

分析了一下 ISO 七层模型之间的数据传输


12,如何让一个服务开机自启

1,可以写一个服务脚本,将服务加入到 chkconfig list 中,然后设置开机自启。

#!/bin/sh
#chkconfig:2345 80 90      运行级别 启动级别 关闭级别
#description:auto_coreseek

2,将执行服务的命令写在 /etc/rc.d/rc.local 文件中

滴滴的面试官其实还算 nice,二面一上来先是让写一个算法题,也不是很难,十多分钟用 写完了,但是AC不了,给面试官说了下思路,面试官说还不错,然后又让写一个简单点的算法,确实不是很难,用 python 大概也就十分钟写完了,面试官看了下说你还挺熟悉 python 的,然后不让写代码了,就聊了下 Linux 的一些命令等,还问我可以来实习吗,我说要是能拿到 offer 可以考虑去实习,然后大概给我介绍了一下他们部门的情况。

上一篇下一篇

猜你喜欢

热点阅读