代码之家  ›  专栏  ›  技术社区  ›  Chrisissorry

Heroku内存限制PHP

  •  0
  • Chrisissorry  · 技术社区  · 8 年前

    This article 在Heroku上,128MB对于大多数PHP应用程序来说应该足够了。我认为这是一个大胆的声明 composer

    具体来说,我们在生成pdf或处理大型数据库导出时遇到问题。我想我错过了一些最佳实践。我们应该如何处理Heroku上的记忆密集型任务?

    实现这一点的一种方法可能是编写 .user.ini

    1 回复  |  直到 8 年前
        1
  •  1
  •   xavriley    8 年前

    (披露-我在Heroku支持团队工作)

    HeloCu是一个处理各种应用程序的平台,它们需要在最大效率(应用程序利用大量并发)和足够的空间来处理共同的处理任务之间进行平衡。这意味着128Mb是根据PHP团队的经验选择的。(见 https://devcenter.heroku.com/articles/php-concurrency#determining-a-suitable-memory-limit

    关于composer使用1.5GB的例子很有意思,但值得注意的是,依赖解析和运行构建步骤(composer处理这些步骤)等任务的配置文件与服务web请求的配置文件大不相同。如果你在做一些密集的事情比如处理PDF, ideally this should be handed off to a background process 尽可能少地提出要求。任何后台排队系统都可以做到这一点,但这里有一个例子 https://devcenter.heroku.com/articles/php-workers

    也就是说,一个大小肯定不适合所有人,如果有必要的话,完全有可能改变默认值。

    https://devcenter.heroku.com/articles/php-concurrency#tuning-concurrency-using-memory_limit

    一个 .user.ini

    php_value[memory_limit] = 64M
    

    要使这些设置生效,您需要在 Procfile 命令以便加载配置:

    web: vendor/bin/heroku-php-apache2 -F fpm_custom.conf