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

2015-01-09 13:06:05 +08:00
 flash866

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

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

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

请大家指教啊!!!

4978 次点击
所在节点    问与答
13 条回复
Tomilay
2015-01-09 13:58:48 +08:00
。。。
cevincheung
2015-01-09 14:03:03 +08:00
max_requests = 100

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

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

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

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

这些历史都经历过,自然就了然于心了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/160602

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX