php配置学习

重要的以粗体+斜体进行展示

php-fpm.conf

emergency_restart_threshold = 10  :  在指定时间内,如果失效的php-fpm子进程数超过这个数值,php-fpm主进程进行优雅重启

emergency_restart_interval = 1m    :  设定emergency_restart_threshold设置采用的时间跨度

11005865-4f80405de5c9e36e.png

Pool Definitions

include=/usr/local/php72/etc/php-fpm.d/*.conf  :  一个名为Pool Definitions的区域,这个区域里的配置用于设置每个php-fpm进程池.php-fpm进程池中是一系列相关的php子进程.include=是引入进程池定义文件.在/usr/local/php72/etc/php-fpm.d/中有个www.conf就是进程池的配置文件

www.conf

[www]  ====>www是进程池的名称

user = nginx 拥有这个php-fpm进程池中子进程的系统用户

group = nginx 拥有这个php-fpm进程池中子进程的系统用户组

listen = 127.0.0.1:9000  php-fpm进程池监听的IP和端口,让php-fpm只接受nginx从这里传入的请求

listen.allowed_clients = 127.0.0.1  可以向这个php-fpm进程池发送请求的ip地址.127.0.0.1的设置.说明了只有当前设备能把请求转发给php-fpm进程池

pm.max_children = 51    设定php-fpm进程池最多有多少子进程.我们可以根据设备进行设置.比如你给php分配了512MB内存,然后每个php进程大概是5-15mb内存.512/10(平均单个进程内存) = 51 个子进程

分配可以参考如下方式  1.一共能给php分配多少内存?2.单个php进程平均消耗多少内存?可以用top命令查看,也可以在php代码最后调用memory_get_peak_usage()返回分配给 PHP 内存的峰值(字节数)3.获得能负担得起多少个php-fpm进程, 总内存/平均单个内存=php-fpm进程数

pm.start_servers = 2   php-fpm启动时进程池中立即可用的进程数.

pm.min_spare_servers = 1   php应用空闲的时候php-fpm进程池中存的进程数的最小值

pm.max_spare_servers = 3   php应用空闲的时候php-fpm进程池中存的进程数的最大值

pm.max_requests = 500     回收进程前,php进程最多处理的http请求数.这个设置有助于避免内存泄漏

slowlog = log/$pool.log.slow    这个日志文件用于记录处理时间超过request_slowlog_timeout的http请求信息

request_slowlog_timeout = 5    关联slowlog使用,超过这个时间就进行记录


php.ini

memory_limit = 128M    设置单个php进程可以使用的系统内存最大值

Zend OPcache扩展----用于缓存操作码

HTTP请求流程

客户端 ===> nginx ===>  转发给php-fpm  ===> 把请求交给php子进程处理 ==> 找到对应的代码==>  读取代码===>   将代码编译为操作码(字节码)===>   执行操作码===>  生成响应===>  发给nginx===>   客户端

缓存之后我们可以从缓存中直接读取并执行预先编译好的操作码,不用每次处理http请求的时候都查找,读取和编译

下面是关于这个zend  OPcache的配置,从php5.5就已经内置了Zend OPcahce扩展(我的是php7.2),下面的配置可以参考但别照抄应该根据自己的系统配置

11005865-048619a2c82ade5b.png

开启

zend_extension=opcache.so

opcache.enable=1

opchache.memory_consumption=128   为操作码缓存分配多少内存量(MB)

opcache.interned_strings_buffer=8  用来存储驻留字符串的内存量(mb)

驻留字符串解释

php解释器在会找到相同字符串的多个实例,把这个字符串保存到内存中,如果再次使用相同的字符串,php解释器会使用指针,这么做能节省内存.在默认情况下,php驻留的字符串会隔离在各个php进程中.而opcache.interned_strings_buffer这个配置能将所有进程的驻留字符串保存到共享的缓冲区中.这样多个进程之间就可以使用这个驻留字符串.从而节省更多内存

opcache.max_accelerated_files=10000    操作码缓存中最多缓存多少个php脚本.这个值一定要比你php应用的文件数量大.但是也要在200----100000(不通php版本可能不一样,100000是我从Modern PHP看的)

opcache.revalidate_freq=2    设置多长时间检查一次php脚本是否有更新(单位:秒)

opcache.validate_timestamps=1   1:经过一段时间(revalidate_freq)php会检查php脚本的内容是否有变化.   0:不自动检查,需要自己手动清除缓存的操作码.(建议开发环境设为1,正式环境设为0).手动的方式是调用opcache_reset()这个php方法刷新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值