AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

    • 主页
    • 系统&网络
    • Ubuntu
    • Unix
    • DBA
    • Computer
    • Coding
    • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 458772
Accepted
PeterMmm
PeterMmm
Asked: 2012-12-17 03:55:18 +0800 CST2012-12-17 03:55:18 +0800 CST 2012-12-17 03:55:18 +0800 CST

处理 php 内存不足错误

  • 772

我在相对较小的虚拟服务器(512MB RAM)上有一个基于 Drupal 的网站。最近该网站开始返回 php out of memory 消息,如下所示:

Fatal error: Out of memory (allocated 17039360) (tried to allocate 77824 bytes) in /home/...

所有 php.ini 内存限制参数都设置为关闭 (-1)。

可能网站已经变得复杂、内容等。但我无法很好地解释该消息:这是否意味着整个请求现在已经分配了 17MB(?),并且无法从操作系统获得更多的 7KB(?)。是 Web 服务器用完了所有内存还是操作系统没有更多内存可供分配?

我不确定内存开销是来自 Web 服务器还是其他服务,因为当我收到内存不足消息时,我无法使用 ssh 进入服务器。一段时间后,一切再次正常运行。

php
  • 3 3 个回答
  • 6657 Views

3 个回答

  • Voted
  1. Best Answer
    Simon Hayter
    2012-12-17T16:09:41+08:002012-12-17T16:09:41+08:00

    在 php.ini 中设置以下内容,

    memory_limit = 100M
    post_max_size = 100M
    

    此外,值得注意的是,如果您通过 GD 发送库上传图像,那么您发送的图像将在内存中解压缩。因此,例如,如果它是一个 3000x3000 文件,则使用 GD 时的实际大小为:

    宽度 * 高度 * 位深度,例如 3000*3000*32 = 288000000 位 = 34 MB

    还值得一提的是,如今任何 Linux 构建的 512mb 对于 LAMP 来说都是一个很小的数量,即使该站点很小并且每天只有少数访问者,内存使用量也接近其最大值,并且取决于您的上传内容一个问题。许多 VPS 禁用 SWAP,因为 VPS 所有者不希望 CONSTANT 磁盘写入会减慢其他 VPS 的速度(磁盘会导致启用 SWAP 的 VM 服务器滞后)。

    所以变化是文件太大,内存不足,假设你使用一个好的 vps 提供商,你应该能够将内存扩展到 1gb,看看它是否仍然记得这个错误。

    • 1
  2. Anagio
    2012-12-17T16:21:16+08:002012-12-17T16:21:16+08:00

    您是否向站点添加了任何新模块?它可能是脚本中的内存泄漏或无限循环。但它们通常会产生高 CPU 使用率。

    你应该考虑安装 xdebug ( http://www.xdebug.org/ ) 你会得到关于应用程序的详细错误信息来找出问题区域。不过,这主要由开发人员使用。

    • 1
  3. Prasad Ajinkya
    2012-12-17T20:24:26+08:002012-12-17T20:24:26+08:00

    在Stackoverflow及其答案上找到可能的重复项

    您是否尝试过杀死以前的 apache 线程?

    • 1

相关问题

  • 用户特定的 Php.ini 当 php 作为模块运行时?

  • 使 php mail() 函数在 ubuntu-server 上工作的步骤是什么?

  • Web 服务器和数据库服务器位于完全不同的位置

  • PHP 作为 CGI 还是 Apache 模块?

  • 通过 VPN 连接什么是远程服务器 IP?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助
subwaysurfers
my femboy roommate

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve