V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
flash866
V2EX  ›  问与答

[PHP 是最好的语言,没有之一!]mod_php 和 fast cgi 本质是多线程与多进程的区别,大家认同不?

  •  
  •   flash866 · 2015-01-09 13:06:05 +08:00 · 4953 次点击
    这是一个创建于 3407 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近应聘百度,百度一大神电话面试,问了一大堆问题,最终我自我感觉砸在了fast cgi上,因为从来没研究过这个东西,于是百度学习了下。
    看了很多,最终自己这么理解:
    相对于传统的CGI模式,

    mod_php 的优势就是用多线程模式来应对请求,每次执行完后,线程消失,所有资源消失。存在的问题是其中一个线程可能会搞死主进程,造成server宕机。且大量逻辑计算会影响主进程的相应速度;

    fastcgi的优势是主server进程通过socket与cgi管理器通信,cgi管理器从cgi进程池中安排其中一个cgi进程进行处理,处理完毕后这个cgi进程回收资源但是不退出,等待下一个处理。这样即使cgi进程崩溃,也完全不会影响server进程。且server的计算更加单纯,只负责收发数据。相当于是一种负载均衡解决方案,可以支撑大量访问。但是我觉得存在的问题是因为cgi进程不会退出,可能其稳定性会存在问题,比如回收不彻底等,会造成其崩溃,所以虽然主server进程不挂,但是处理某一个人的计算的时候,可能会针对这个请求挂掉,所以稳定性并不是完全可靠。

    请大家指教啊!!!

    13 条回复    2015-01-09 16:25:14 +08:00
    Tomilay
        1
    Tomilay  
       2015-01-09 13:58:48 +08:00
    。。。
    cevincheung
        2
    cevincheung  
       2015-01-09 14:03:03 +08:00   ❤️ 1
    max_requests = 100

    当进程处理过100个请求,自动退出,再开进程。

    php-fpm默认关闭该选项
    yakczh
        3
    yakczh  
       2015-01-09 14:44:56 +08:00
    会这个百度开多少钱?
    flash866
        4
    flash866  
    OP
       2015-01-09 14:59:57 +08:00
    @yakczh 只是电话面试,还没能到谈论薪资的环节。
    udonmai
        5
    udonmai  
       2015-01-09 15:08:53 +08:00   ❤️ 1
    面 PHP 前看下这两个呗。。。 Google 直接搜 [ php best practice ] 。。。

    http://www.phptherightway.com/#virtual_or_dedicated_servers
    https://phpbestpractices.org/
    aiwha
        6
    aiwha  
       2015-01-09 15:37:12 +08:00 via Android
    这是面试的运维职位吧?不知咋的,SA需要掌握何知识面远大于程序猿,可工资水准却顶多一万,比DBA还差,小公司SA还兼DBA和修电脑的。。。。
    flash866
        7
    flash866  
    OP
       2015-01-09 15:51:05 +08:00
    @aiwha 不是运维,面试的是移动服务端开发。
    nigelvon
        8
    nigelvon  
       2015-01-09 16:01:59 +08:00
    个人觉得有点略偏。不会也不能说明什么,对于Server开发这个职位来说。
    tabris17
        9
    tabris17  
       2015-01-09 16:07:43 +08:00
    这不是PHP基础知识么
    flash866
        10
    flash866  
    OP
       2015-01-09 16:18:55 +08:00
    @tabris17 求教程
    qqjt
        11
    qqjt  
       2015-01-09 16:23:20 +08:00
    贴子加这个前缀没问题么……
    qqjt
        12
    qqjt  
       2015-01-09 16:24:20 +08:00
    apache -> mod_php
    nginx ->php_fpm

    我是这么理解的……
    tabris17
        13
    tabris17  
       2015-01-09 16:25:14 +08:00
    @flash866 没有教程。当初从PHP4开始,CGI方式 、Apache模块、IIS的ISAPI模块,直到后来的FastCGI,php-fpm的出现,再后来php-fpm被官方招安。还有写PHP扩展需留意的ts版本和非ts版本。

    这些历史都经历过,自然就了然于心了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3386 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:43 · PVG 20:43 · LAX 05:43 · JFK 08:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.