当前位置:   article > 正文

2016阿里云实习面经_suricata面试问题

suricata面试问题

0. 前言

本文仅为博主的个人面试经历,如果以下内容对您有帮助的话,请不要忘记请我吃鸡腿^_^。

05/11/2016, 新增资料推荐部分。

1. 一面

一面加起来一共30+分钟, 主要是围绕项目问一些问题。

  • 面: 聊聊你做的第一个项目frog
  • 我: 主要说了 1. 做这个项目的原因(需求) 2. 项目中使用的相关技术 3. 自己通过做这个项目学到了什么东西 4. 认识到了自己的一些不足和开源的魅力。

    注: frog 是笔者写的一个http 库,代码托管在 https://github.com/okingniko/frog

  • 面: 看来你对服务器后台设计有些研究啊,说说常见的服务器端编程模式

  • 我: 主要是参考《linux 多线程服务器端——使用muduo库》和《unix网络编程》相关章节以及平时积累的一些东西 进行介绍。

    技术注解: 里面主要提到了prefork, pre threaded(线程池) ;reactor和proactor等模型,以及根据服务器是计算密集型还是I/O密集型进行一些组合的情况。

  • 面: 那你自己设计服务器会采用什么模式

  • 我: Reactor + 线程池, 巴拉巴拉。。。最后讲了一下epoll怎么使用。

    技术注解: Reactor模式实际为 非阻塞I/O + I/O多路复用(select, poll, epoll)

  • 面: 那你讲讲epoll的边缘触发和水平触发的区别

  • 我: 边缘触发是在监听的文件描述符上有新的I/O活动(例如新的输入)时,触发通知; 水平触发是在文件描述符上可以非阻塞的执行I/O系统调用时,此时认为它已经就绪。

    技术注解: 具体可参见《linux/unix系统编程手册》第63章和 UNP的第6章,写的不能更棒的两章。

  • 面: 多线程服务器下,你会开多少线程。

  • 我: 具体我不太清楚, 我看过的开源软件suricata中默认设置是1.5倍,所以我一般根据系统的核数设置为1.5倍。
  • 面: 那你实际上是不太清楚了
  • 我: 嗯, 那您能帮我解释一下么
  • 面: 这也是个经验值,但至少要比CPU核数要多,因为有些线程会处于空闲状态,等等。。。

  • 面: 我看你项目中用了一些C++11的feature, 里面有些用的太过了,比如shared_ptr(智能指针)和lambda函数

  • 我: 是的,智能指针会带来额外的开销(维持引用计数)、lambda函数看起来也不是那么的直观,必要的话我会考虑用函数指针来代替。

  • 面: 有没有什么问题问我的。

  • 我: 没想到什么特别好的问题问您。

2. 二面

二面主要是一个实力很强的中年男子,按照我写的简历一行一行问,大概持续70min。

  • 面: 看了你的简历,简单聊聊你的项目。
  • 我: 和一面一样,介绍了一下自己的项目

  • 面: HTTP了解的怎么样

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/288021
推荐阅读
相关标签
  

闽ICP备14008679号