一次网上面试经历
应朋友介绍,有幸在网上接受了一家国内比较著名的网络公司的面试,其实这家公司之前已经接触过两次,对于这次面试,和上两...
扫描右侧二维码阅读全文
07
2008/09

一次网上面试经历

应朋友介绍,有幸在网上接受了一家国内比较著名的网络公司的面试,其实这家公司之前已经接触过两次,对于这次面试,和上两次一样,至少自己是不满意的,感觉自己仍旧欠缺很多东西,先把这次面试的问题说一下

  • 你认为组成web站点体系有哪些元素?
  • 这样的配置,在apache起来后会有几个子进程? (别把这个问题想的简单化)
    <IfModule mpm_prefork_module>
    StartServers 5
    MinSpareServers 50
    MaxSpareServers 100
    MaxClients 150
    MaxRequestsPerChild 0
    </IfModule>
  • 在apache的worker MPM中,为什么ServerLimit要放到配置段最前面?
  • 千兆网卡的极限pps是多少?是如何算出来的?
  • 为什么lighttpd,nginx的并发性能比apache要高?
  • top命令里running的值表示什么意思?这个值和CPU数有什么关系?
  • 在http header头里看到的:Last-Modified,Expires,max-age,etag这四者有什么关系?
  • 一个web站点,如何计算所需要的带宽?公式是什么?
  • 如何看http的并发连接数的?
  • FIN_WAIT2是在什么状态?
    iostat看到的:
    wsec/s = 600
    那么wKB/s = ?
  • 当打开apache的mod_status后,可以通过http://ip/server-status看到相关的状态值,那么Srv, Acc, M,SS,Req各表示什么含义?
  • 如何计算客户端到服务器段的带宽?

对于上面这些问题,也说不上有多难,很多问题google上都能够找到,而且对于系统运维人员来说这些内容是必须了解的,但是你说仅仅是了解,恐怕也不够,其实很多东西不是说没接触过,而是都做过和接触过,但没有深入的去研究过,只知其然 而不知其所以然,感觉做我们这行的,需要掌握的知识面是相当广泛的,大到网络应用架构到,小到一个命令的参数,一个脚本编写,你都要知道,知识是需要积累的,但也需要你怎么运用他,我们很多时候所做的仅仅是如何用,而没有去考虑为什么要这样用,比如说技术文档,有多少人会仔细的查看MAN帮助,有多少人去研究过RFC文档?再比如说简单的iptables应用,一般很少会过多的去考虑当使用了iptables 后会对tcp连接产生多大的影响,可能在等到出现 “ip_conntrack: table full, dropping packet."的情况下才会去检查问题的所在,很多人会觉得这些东西都是需要经验的,你碰到过这个问题就知道,没有碰到过就不知道,就如上面的问题,假如你的服务器每天就几千连接,恐怕你是一辈子都不会碰到这个问题的。道理是这样,但我们是不是也应该多了解一下这么做合理性,可能会出现什么问题。一个架构的实施一个软件的应用,不是简单的把它部署运行起来,我们应该考虑更多的问题。像我们blog的Johnny Woo同学,他考虑的问题就比我要深入的多,比如说他经常会做一些测试,各种WEB服务器,缓存服务器的性能测试,一些架构技术的研究,我想知识的积累就是如此,不是等待问题的出现,而是自己去找出可能会出现问题,GOOGLE提供给了我们一个非常巨大的知识库,我们如何把别人共享的知识转化成我们自己掌握的知识,关键还是在于实践,在于自己去找问题。还有一点,环境因素,就如上面说的,如果你的环境是每天只有几千人的访问量,你可能不会太多的去关注性能方面的问题,而即使关注,也仅仅是靠自己做一些实验测试而不能真正在生产环境下检验,这也是其中的一个问题,但关键一点还是在于自己,一个问题,一个技术是否是想继续深入的去了解呢,还是仅仅满足现在的要求而不考虑其他方面了。我想,我现在所欠缺的应该就是这些了。

另外再讨论一个问题:我们每天接触的最多的是自由软件,在感叹全世界那么多无私的开发者贡献出那么多完美的软件的同时,对于我们能做的难道仅仅是使用这些软件吗?我是相当佩服国内外一些做系统运维的牛人,他们是相当优秀的系统架构师,另外同时也是相当优秀的软件工程师。使用者最了解自己需要什么样的软件,那么对于系统运维,有谁比我们更了解我们需要什么吗?一个好的环境,再加上一份激情,你会有很多事情要做。

以上内容只是我个人的一些感受,希望经常关注我们blog的朋友能提供一些建议,非常感谢。

Last modification:November 26th, 2018 at 04:16 pm
If you think my article is useful to you, please feel free to appreciate

20 comments

  1. jean

    博主能否提供下这几题的答案?谢谢

  2. admin

    看了之后才自己的不足,谢谢提供

  3. admin

    看了之后才知道自己有好多的不足,谢谢楼主

  4. Song

    你认为组成web站点体系有哪些元素?
    这样的配置,在apache起来后会有几个子进程? (别把这个问题想的简单化)

    StartServers 5
    MinSpareServers 50
    MaxSpareServers 100
    MaxClients 150
    MaxRequestsPerChild 0

    在apache的worker MPM中,为什么ServerLimit要放到配置段最前面?
    千兆网卡的极限pps是多少?是如何算出来的?
    为什么lighttpd,nginx的并发性能比apache要高?
    top命令里running的值表示什么意思?这个值和CPU数有什么关系?
    在http header头里看到的:Last-Modified,Expires,max-age,etag这四者有什么关系?
    一个web站点,如何计算所需要的带宽?公式是什么?
    如何看http的并发连接数的?
    FIN_WAIT2是在什么状态?
    iostat看到的:
    wsec/s = 600
    那么wKB/s = ?
    当打开apache的mod_status后,可以通过http://ip/server-status看到相关的状态值,那么Srv, Acc, M,SS,Req各表示什么含义?
    如何计算客户端到服务器段的带宽?

    非常想知道,这几到题的正确答案 。

  5. Timo

    看来是SINA吧重复造轮子

  6. freeke

    唉,我也就是在小公司,什么都会配,什么也不精通!还得加强学习啊

  7. tito

    自己肯定不会去写操作系统,这样的反驳这个有点抬杠了,呵呵。

    只是在说明一些问题,就是在实际的应用中,可以选用开源软件,但也会在弄明白原理和机制后,进行过相应的测试后才会去使用。

    我听了他说的,我只是在想我拿来用的时候,是否真了解他们的原理和机制。

    我不知道google自己出浏览器算不算重复制造轮子,只是符合自己的应用而已。而对于个人来说,只是反思自己什么都拿来主义而不求甚解的态度。

    如果理解了,学习和模仿也是提高。如果不求甚解,也没什么意思。

    那家主管说他们页面都是c写的,包括论坛,这个无可厚非,可能只是他们需要那样的需求符合自己的应用而已。

    google的很多应用也应该是自己做的吧,那也只是符合他的应用。不做争论,好好学习,天天向上。

  8. Johnny Woo

    这就是为什么大公司可以锻炼人.而小公司却很难,因为大公司你可以对一个方向非常精通.而它也只需要你对这块非常精通.而小公司人力就不够.你什么都要做.结果什么都会.但是根本没精力去研究深入一样东西.
    GOOGLE.YAHOO.AMAZON这些公司都有很多东西是他们自己做的.甚至国内的sina以及taobao,tencent等等,都有很多专利技术.
    所以这也是为什么需要到大公司的主要原因.大公司不光福利好,也能让你把主要精力放在某一个方面,小公司你可以什么都会.但是最终还是什么都不精通.也就是停留在表面.也许这些服务都可以搞起来.但是没有一件是可以称为精通的.

  9. Johnny Woo

    这话有点NB.难道操作系统也自己写?
    如果写个web server或者其他维护工具.那还可以说说
    数据库,文件系统,这些关键性基础应用都自己写?

  10. tito

    也有次类似的经历。

    那次主要是想去交流下,他们主管说,我们基本不用开源软件,会自己去写。

    他说到,如果我们只是简单的使用而不了解或者不深刻理解的使用,当出现问题需要解决的时候,那样的代价太高。

    现在想起来也是。

    知其然,知其所以然。而不是简单的copy。

    不能简单的toubleshooting。

  11. z

    我在上周也面试了三家公司。
    有个体会,越是大公司,对于细节的地方越是关注,而且对比相当明显。

  12. Fenng

    原来....:)

  13. jackywdx

    楼主继续加油~

  14. IceskYsl

    你这是面试啥职位的,咋感觉比较细。

  15. Johnny Woo

    在开源上面修改.那也叫使用开源软件吧.
    如果修改也叫基本不用开源软件.那这个主管似乎对OSS没什么概念啊...
    大公司写基础应用挺多的.比如GOOGLE的GFS以及GWS,YAHOO的YAPACHE还有YUI很多很多这些的.AMAZON甚至开始卖自己的存储服务.
    不过即便是GOOGLE这样的大公司.也不会随意写OS以及数据库之类的.所以我们基本不用开源软件.这种话GOOGLE和YAHOO都不敢说出口的吧.

  16. coolerfeng

    自己写,可以是在开源软件上进行修改,hacking,不知道这个说法是否准确

    完全推倒,彻底重写代码,的确有些重复发明轮子的意思

  17. coolerfeng

    大公司真的是自己写基础应用,某些人可能不了解实际情况

  18. Martian Guo

    我估计是理解错误,要么就是在说大话,哈哈

  19. Johnny Woo

    >>他们主管说,我们基本不用开源软件,会自己去写
    还不是重复制造轮子么.

  20. Martian Guo

    自己写不是让你重复制造轮子

Leave a Comment