PHP-FPM 请求结束后,不会回收全部内存。

1. 运行环境

Docker + Centos7 + Nginx + php7.4

1). 当前使用的 Laravel 版本?

8.0 (其实与laravel无关)

2). 当前使用的 php/php-fpm 版本?

PHP 版本:

7.4.27

php-fpm 版本:

没找到 php7

3). 当前系统

Centos7

4). 业务环境

开发环境

5). 相关软件版本

nginx version: nginx/1.21.4

2. 问题描述?

Laravel

Laravel

每次运行完一个请求,fpm进程并不会回收内存。导致一直占用内存。

PHP-FPM 请求结束后,不会回收全部内存。
机器只有不到1G的内存可以使用,不自动释放的话。3,4个请求之后,内存就满了

3. 您期望得到的结果?

自动释放内存

4. 您实际得到的结果?

请求结束后,回收脚本使用的全部内存

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 9
╰ゝSakura

php-fpm是常驻进程,占用内存是正常的。 至于回收脚本使用的内存,是指你的php程序执行中声明的变量,分配的内存会在请求结束后回收。 如果你要测试验证,你就写个php脚本,file_get_contents读取个几百M的文件,请求这个脚本,php-fpm占用内存不会随着你这个脚本读取的几百M文件上升的。

1年前 评论
pleaseyang (楼主) 1年前
╰ゝSakura (作者) 1年前

发表下个人愚见,很多程序在 linux 运行都会持续占用内存,但这并非真正的占用,在其他应用真正需要内存时,系统会回收掉这部分内存

1年前 评论
pleaseyang (楼主) 1年前
荒街! (作者) 1年前
巴啦啦

想问一下你是通过什么方式读取的一个大文件?

1年前 评论
巴啦啦 (作者) 1年前
pleaseyang (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!