【问题标题】:PHP Laravel memory usage increase on Direct Admin serverDirect Admin 服务器上的 PHP Laravel 内存使用量增加
【发布时间】:2020-10-07 12:45:12
【问题描述】:

我们开发了基于 Laravel 的软件,并使用 Laravel Valet 进行了本地测试,一切正常。一个安装在具有完全相同的数据库和代码的登台(直接管理员)网络服务器上,内存使用量急剧增加。

本地测试规范: 操作系统:MacOS Catalina 处理:2.3 GHz 8 核 Intel Core i9 内存:16 GB 2667 MHz DDR4

暂存服务器规格: 操作系统:CentOS 7.0 64 位 处理器速度 (MHz) 2693.670 总内存 1014728 kB

这是一个基本的静态页面:

Staging server: 21MB, PHP 7.4.2

Development machine: 5MB, PHP 7.4.4

另一个更大的页面(需要优化):

Staging server: 101MB, PHP 7.4.2

Development machine: 85MB, PHP 7.4.4

我们知道这台开发机器要慢很多,但我们无法解释内存使用量的增加。有人知道如何分析和解决这个问题吗?

使用的框架是 Laravel v6.18.20

【问题讨论】:

  • 首先要仔细检查的是您是否遵循了部署 Laravel 应用程序的指南(可在此处找到:laravel.com/docs/6.x/deployment)看起来您使用的是不同版本的 PHP。我很好奇内存使用差异是否在 7.4.2 和 7.4.4 之间。
  • 已尽可能遵循部署程序。同样在本地,这还没有完成,这正在使用更少的内存。我真的无法想象这个版本差异在内存使用方面会发生如此大的变化。在这种情况下,新版本会更糟......
  • 我的第一个猜测建议是比较您在每个系统上用于 PHP 和 Apache/Nginx 的扩展和模块。这些会严重影响内存使用。考虑到两个示例中内存使用量的差异为 16 MB,这似乎是一个可能的原因。要检查的另一件事是缓存设置或可能受.env 设置影响的其他内容。

标签: php laravel memory laravel-valet directadmin


【解决方案1】:

Laravel Valet 使用一个非常轻量级的 Web 服务器,这是一个巨大的差异,我建议将您的 Web 服务器配置为使用 Nginx 而不是 Apache,并确保您使用 PHP 作为 FPM 模块,一般来说,具有 Direct Admin 的服务器使用默认情况下使用 Apache 网络服务器,这将增加每个请求的内存使用量。

尝试切换到 Nginx 网络服务器

【讨论】:

  • 刚切换到 Nginx。结果是一样的。 PHP 服务器已经作为 FPM 模块运行。
猜你喜欢
  • 2021-12-08
  • 2017-05-25
  • 1970-01-01
  • 2014-01-09
  • 2012-06-22
  • 1970-01-01
  • 2016-04-30
  • 2014-12-11
  • 1970-01-01
相关资源
最近更新 更多