一、大厂和小厂的面试不同总结
互联网的运维行业,一般来说分为:
- IDC运维:机房和服务器运维相关,例如机房巡检,机器上架、系统安装和机器维修等。
- 系统运维:linux系统相关,稳定性故障排查,性能调优等。
- 中间件运维:应用组件相关,例如nginx等,一般来说底层资源是自购物理机会和系统运维耦合,如果是云厂商,可能会独立运维。
- 数据库运维:各种DBA运维,比较偏专业深度。
- 安全运维:安全方向,偏专业深度。
- 业务运维(SRE、devops):根据业务特性做针对性运维,例如业务上线迭代效率,业务成本优化等,大厂偏向于paas层的业务运维。
- 架构师:熟悉数据流向,熟悉业务架构鲁棒性建设,运维更容易接触到这些。
因为笔者在百度工作,所以先说百度:
对于百度来说架构复杂、分工细致且体量较大,每个人只对自己负责的部分熟悉,很难了解全貌。由于百度大部分工具均为自研,无论是paas、监控和批量工具等均为自研,无通用性。
- 面试中大厂的时候,面试官很多都是有大厂工作经历的,能够理解这么类似百度这种体量下的分工和开展工作的难度,更多的是聚焦在项目本身,对方案的思考和设计等。当然也可以理解为虚一些的东西。
- 小厂偏向全能,偏向底层,对工作人员要求全局均有涉猎。更关注对于基础工具的使用,对底层原理的考察,希望候选人有他们现在使用的平台或系统的相关经验(大多数是开源软件),希望能短时间内上手,不关注项目,偏务实。
本质上这些面试问题没有对错之分,对于小厂的一些特别细枝末节问题答不上来,一方面是自己确实在生产环境中没有遇到过,本质还是工作岗位不对口,很多问题,在小厂根本不存在,但是在百度这种存在了20年的互联网公司来说,存在船大难掉头和架构陈旧导致的效率低下等问题。
总计:小公司更多的是技术全面,大公司更多的是人情世故。
二、面试问题
1、tiktok
1.1 一面
介绍部门情况
- 自我介绍
- 问项目经历
- 平常用到的查看cpu、mem、磁盘的命令
- 怎么释放文件句柄,磁盘空间没有释放的原因
- 一道算法题,给出一个数组,求其中两个数相减的最大值,要求减数的索引位置大于等于被减数,且结果为正。
##写法有点low,欢迎大神补充
price = [6, 1, 2, 3, 4, 7, 9]
max_profit = []
num = 0
for i in range(len(price)):
for j in range(i+1, len(price)):
if price[j] - price[i] > 0:
profit = price[j] - price[i]
max_profit.append(profit)
print(max(max_profit))
- 还有什么问题问他?
1.2 二面
- 自我介绍
- 用户请求502的排查思路
- 做过效率方向特别好的项目,夹杂一些项目问题
- 写一个算法,超长字符串(百万级别)的倒序排列
说来惭愧,至今未找到答案
- 最近读过什么技术书籍
- 有什么问题问他?
2、米可世界
2.1 一面
- 自我介绍
- 怎么查看系统日志?怎么查看网卡或者硬盘的日志。
- 磁盘空间仅适用30%,但inode满了,是为啥?
https://www.cnblogs.com/cyrus0w/p/13186878.html
可能为大量小文件占满inode,可以批量扫描后清理
- sar命令,磁盘网卡的查看命令、sed -e命令
- 将一个文件夹下的所有大于10k的文件移动至tmp目录
考察find命令使用
- fd是什么?
- 给出一些数据,对月份数据进行排序
20150106|2210
20150206|2234
20150206|1234
20150305|2234
20150405|2235
20150405|235
涉及到substr用法
- 对k8s的实际使用
- 对数据库的实际使用
- 进程间通信方式
3、联通智网
- 自我介绍
- docker调度原理
- pod中的pause docker作用
见上述引用
- docker中的deamonSet作用
用于保证node加入节点后,生成固定pod,控制pod生命周期等
- 网络相关接触
- linux系统目录proc