三场面试基本上都面了一个小时,全在问八股和场景,没有做题,面的很是憔悴。
一面:
1.自我介绍
2.说说Go的GMP调度模型(原理、解决了什么问题以及更多细节)
3.如果在不同进程之间共享同一片内存空间如何做到
4.说说Go的context
5.如果我想从外部直接终止一个goroutine,我该怎么做
6.Go如何检查一个变量有没有被并发读写
7.Go程序上线后可用内存一直变小,如何排查
8.Go中的map如果取出不存在的值会报错吗?
9.A | B,对于这个命令现在想同时将内容保存到文件中,该怎么实现
10.ps下有哪些字段,问了些特殊的字段含义,以及STAT列的Z、S、D、R表示什么意思
11.如果发现一个进程长时间处于D说明什么,该怎么排查处理
12.问了项目中的代码沙箱具体的安全性问题(没答上来用seccomp配置限制系统调用)
13.说说项目中为什么要用JWT,JWT的结构,JWT可以用来存身份证号等敏感信息吗?
14.如何判断一个消息队列中消息太多,控制生产速率,如何识别这个?
15.ebpf的扩展性是如何体现的,和iptables比优势是什么
16.如果想上报数据给Prometheus 有几种方法
17.假设我为一个请求了很大的系统,我打算把request id 作为label,上报给prometheus,合适吗,为什么
18.Ping用的什么协议,这个协议还有哪些应用场景
19.问了NAT,以及Linux如何查看NAT表
20.反问
二面:
1.假设有个Go程序启动了10个goroutine,每个goroutine打开文件或者发送http请求,现在用户ctrc+c终止程序,这个信号怎么发送的,如何优雅的关闭全部资源
2.利用context如何主动关闭所有协程
3.Context中的WithCancle实现原理
4.一个channel有无buffer的区别是什么
5.如果一个是有buffer的channel,可以同时读写吗?如果可以,怎么实现的
6.在struct中给字段打上tag,这个tag什么时候生效,怎么生效的?
7.tag是静态完成的吗?
8.go中的局部变量分配在哪?
9.逃逸分析什么时候完成的?为什么运行时不能做逃逸分析
10.return一个变量,变量的值能在defer中修改吗?原理是什么
11.如何查看一个进程的端口
12.cat a.txt会发生什么
13.DHCP的工作原理和六成
14.DNS Server的ip从哪里获取的
15.ping response的可能性
16.假设我有一个用户请求名单和一个黑名单,设计方案查出哪些ip可以放行
17.写SQL,查询选课数最多的10门
18.反问
三面:
1.聊聊你对分布式系统的设计
2.Zookeeper与DNS的区别
3.怎么评估他们的性能,如何设计指标
4.吞吐、时延、QPS在压测中的关系是什么,如何做压测
5.根据时延和QPS如何设计一个单一指标评估系统的性能
6.放了很多实际场景图问我怎么看,怎么评估以及改进
7.select会阻塞吗?如果不阻塞用什么?
8.如何设计worker组,让它们针对性的负责不同优先级的任务,以及如何实现负载均衡,如何保证低优先级任务不饿死
9.反问
全部评论
(3) 回帖