服务器程序源代码分析之二:php-fpm

服务器程序源代码分析之二:php-fpm,第1张

php作为排名top2 互联网开发工具,非常流行,可以参考:中国最大的25个网站采用技术选型方案

php这个名称实际上有两层含义

直接定义:

php-fpm从php533开始已经进入到php源代码包,之前是作为patch存在的

很少人会去读php本身源代码,我6年前解决php内存泄露问题的时候做了些研究,最近再查看了一番,发现php的开发者很有诚意,这是一款非常出色的服务器软件,支持如下

在linux服务器上,如果不设置 eventsmechanism ,那么默认就是采用epoll,所以

php-fpm的IO模型&并发处理能力和nginx是完全一致

nginx以性能卓越闻名,大部分程序员都认为php效率低下,看了源代码,才知道这是传奇啊

在高性能部署的时候,大家往往会针对性的优化nginx 。我自己之前部署php程序也犯了错误,8G内存的server,php-fpm的max children都会设置128+,现在看来太多了,参考nginx的部署:

php-fpm配置为 3倍 cpu core number就可以了

php-fpm稳定性比nginx稍差 这是因为php-fpm内置了一个php解析器,php-fpm进程就和php程序捆绑了,如果php脚本写得不好,有死循环或者阻塞在某个远端资源上,会拖累加载它的php-fpm进程

而nginx和后端应用服务器之间通过网络连接,可以设置timeout,不容易堵死的

php-fpm的fastcgi是短连接 我原以为是长连接的,看了代码才知道也是短连接,处理一个request就关闭掉

php-fpm接口采用fastcgi 非常遗憾,php-fpm和fastcgi完全绑定了,无法独立使用 。只能部署在支持>1、检查本地网络是否有抖动或者断网从而导致本地FTP客户端软件连接到服务器之间有问题。
2、查看需要服务器状态是否正常,是否宕机或者有其他问题导致的中断。
3、查看服务器端网络是否有抖动或者断网从而导致FTP服务端与FTP客户端无法正常连接。
4、检查服务器端FTP服务是否正常运行。
5、查看FTP服务端配置中的连接时间设置。

Tomcat是一种开放源代码的Web服务器,由Apache软件基金会维护和开发。它是一个实现Java Servlet和JavaServer页面技术的Web服务器,可以作为单独的服务器来运行,也可以作为一种中间件来使用。Tomcat可以执行预先编译的Java代码,但是无法解析源码。Tomcat本身是用Java语言编写的,它是一个基于JVM(Java虚拟机)的Web应用容器,可以处理用户请求并返回相应的内容,但不能解析源码。因此,要想让Tomcat解析源码,必须将源码编译成可执行的Java class文件,然后将其放置在Tomcat的Webapps文件夹中,使Tomcat能够正确地解析和执行它。总的来说,Tomcat可以打但是无法解析源码,因为它不能解释源码,只能识别和执行预先编译的Java class文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10461591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-08
下一篇 2023-05-08

发表评论

登录后才能评论

评论列表(0条)

保存