20220908-阿里自闭二面
1.四次挥手为什么要等2MSL
2.MSL是怎么测量或者计算得到的(不知道,查了一下是根据TTL测算的,但是Linux和Windows里面都是固定值)
3.进程间通信方式
4.2T的大文件(每一行包含域名,访问IP,访问时间3个字段),使用4G内存的机器,在100ms内查询某个域名某个时间段内访问它的IP.
(我说对文件先根据域名再根据访问时间排序后建立索引,面试官觉得不符合100ms的要求)
(如果这个文件里所有记录都符合条件,把2T文件拆分成512个4G的小块逐个输出所有记录也要进行512次IO,我实在想不到啊)
5.单机系统中,A给B通过消息队列发消息,B给C通过消息队列发消息,B处理能力差后消息会堆积到B,怎么修改这个系统让消息堆积到外部?
(我说可以让A和B之间定期发送心跳,发现B的处理能力下降后A也降低自己的发送速率)
(他说那消息怎么发呢?我说TCP和UDP都行。
他问我有没有更好的方式,面到后面太紧张了直接忘了这是个单机系统了,我说应该没有了吧)
6.介绍一下自己项目里的难点。(他表示没搞懂我这个难点到底在哪里,实现起来有什么难的)
7.反问,我问了5应该怎么解决。
(他说单机系统里共享内存就可以了,但是他接下来想问300台机器怎么办,共享内存就要加锁,300台机器如果加锁解锁开销会很大,他的方案是让上一台机器的出队区域和下一台机器的入队区域进行内存共享,如果下一台机器处理能力不足了,消息就会堆积在共享区域,上一台机器的出队能力受限,就会去在共享内存里申请新的内存[这里我有点没懂],然后整体系统发送速率就会下降,当然这样对内存划分的要求很高也很复杂)
8.问我还有其他问题吗,我说没有了,其实本来还想问问4的,但是感觉已经在5上浪费了很多时间,没好意思问。
#阿里巴巴##面经#
2.MSL是怎么测量或者计算得到的(不知道,查了一下是根据TTL测算的,但是Linux和Windows里面都是固定值)
3.进程间通信方式
4.2T的大文件(每一行包含域名,访问IP,访问时间3个字段),使用4G内存的机器,在100ms内查询某个域名某个时间段内访问它的IP.
(我说对文件先根据域名再根据访问时间排序后建立索引,面试官觉得不符合100ms的要求)
(如果这个文件里所有记录都符合条件,把2T文件拆分成512个4G的小块逐个输出所有记录也要进行512次IO,我实在想不到啊)
5.单机系统中,A给B通过消息队列发消息,B给C通过消息队列发消息,B处理能力差后消息会堆积到B,怎么修改这个系统让消息堆积到外部?
(我说可以让A和B之间定期发送心跳,发现B的处理能力下降后A也降低自己的发送速率)
(他说那消息怎么发呢?我说TCP和UDP都行。
他问我有没有更好的方式,面到后面太紧张了直接忘了这是个单机系统了,我说应该没有了吧)
6.介绍一下自己项目里的难点。(他表示没搞懂我这个难点到底在哪里,实现起来有什么难的)
7.反问,我问了5应该怎么解决。
(他说单机系统里共享内存就可以了,但是他接下来想问300台机器怎么办,共享内存就要加锁,300台机器如果加锁解锁开销会很大,他的方案是让上一台机器的出队区域和下一台机器的入队区域进行内存共享,如果下一台机器处理能力不足了,消息就会堆积在共享区域,上一台机器的出队能力受限,就会去在共享内存里申请新的内存[这里我有点没懂],然后整体系统发送速率就会下降,当然这样对内存划分的要求很高也很复杂)
8.问我还有其他问题吗,我说没有了,其实本来还想问问4的,但是感觉已经在5上浪费了很多时间,没好意思问。
总之就是感觉自己很菜,像第5题面试官给出的内存划分解决方案已经超越的我的认知了,可能还是视野的问题吧。可能因为太菜了,面试官又一直在质疑,不像其他家的面试基本都是讨论问题的感觉,于是面完就自闭了。总结为寄。
#阿里巴巴##面经#