PS:本文就是用于回答我朋友的问题【本文以渣男角度陈述】
重型:是指php 可执行文件运行后,会调用大量的文件操做函数【如open,read等】读取大量的php文本文件【只不过老实人喜欢叫php源码文件,而且老实人喜欢重型脚本称为框架】
【本文不按套路陈述用法也不讲用法,不适合小白,本文只是传达一个标题的概念】
本文的环境:linux+php+nginx 其它没有了【本人是渣男,不会遵照任何官方相应条款】
【本文须要你看完以本身去架着轰炸机去测试php-fpm】
安装流程
1 去这里下载 【固然你老实本份就composer create-project laravel/laravel,我是渣男不老实,据说人家不喜欢老实人】 php
2 安装 linux
它安装时会读取composer.json等文件去下载类库文件,因此你若是安装时遇到各类问题,能够修改composer.json决定要装什么东西,人家说php版本必须是高版本才能装laravel8【这通常是老实的人才会遵照的条款,我是渣男,确定不会遵照老外的条款】 nginx
3 而后瞎配置一下nginx[它会把数据发给php] laravel
4 启动服务
nginx只是转发请求给php-fpm处理而已,毕竟这是老传统了,当你愿意遵照这个传统条款时。 面试
5 而后我先老实的访问一下 json
6 以上是老实作法,下面咱们根据提示调整参数
这些配置参数不用记,记来干什么?用来面试别人?真是老实人。segmentfault
而后重启服务 ,再来老实的访问 app
而后出现这种,通常这种状况老实人就比较紧张了,怕人家强暴同样的紧张。咱们如今看一下php-fpm进程执行的状况 composer
上面图中我圈出的就是重点,你硬是看不懂,我没有办法了。 要不599找我手把手教你吧。^_^ 框架
接下来根据它的提示调整一下
咱们调整好之后,再访问
这个时候你也别紧张兮兮,咱们看一下php-fpm运行laravel的状况再说话,不要像怨妇同样上来就是啊,怎么办?
咱们看到这php-fpm在运行laravel时,打开的脚本文件那是至关多,我这里只是截图部分,为了处理一个小小的访问,它打开一堆脚本文件,后面它直接去访问500这个文件了。很不给面子。
7 接下来,咱们一步步的看一下我运行,php-fpm为了处理这个重型框架到底加载了多少php脚本文件【部分截图】【本身用电脑看,不要用小的可怜兮兮的手机看,渣男就应该用PC看】
路由注册服务
Kernel 核心文件
好了,咱们不是要研究框架的运行机制,咱们如今先看一下500报错页面的加载
你们能够看到,一个小小的业务需求,它就加载一大堆的【open,read,lstat,close文件,这些操做都是要去磁盘里读取,框架越重,php-fpm处理时间越长,固然了php-fpm自己是个守护进程,接收一次tcp链接和数据传输后,它就断开了】在这里你们能够自行的进行测试,从框架的index.php到最后输出,打开了N个文件,都是要操做磁盘,读取的数据固然是要占用内存,c会申请一堆内存再去处理这些脚本的语法,进行解析。
8 下面随便给大家看下问题所在
看一下它写的内容就知道问题在哪里了
write(4, "[2021-01-29 10:47:15] production.ERROR: No application encryption key has been specified. {"exception":"[object] (I
这句话看不懂,那就比较老火了。
大家有兴趣就去看一下它的加密注册服务代码
解决一下
我不老实,不按上面解决,按渣男方式解决
再访问时
手动写一个
下面测试一下
改为这吊样
请求过程
最后一把
//请求
路由注册
控制器调度
响应
php-fpm和nginx运行时系统调用状况【响应北风之神内容的分析】
【统计偏差很小,你们能够自行统计】
1 系统调用时产生的记录日志大小
php-fpm运行时的系统调用产生:1.4M
ngninx:1.5M
open 打开php脚本文件次数
open 打开php脚本后read读取脚本内容次数
read php脚本时大概读取多少个字节
根据公式换算一下:
1M=1024KB
1KB=1024Byte
1M=1024*1024=1000,000
1362477=1330KB=1M
php-fpm响应给nginx字节数
nginx响应给用户的字节数