【问题标题】:sw-engine Plesk Onyx causing Out of Memory Errorsw-engine Plesk Onyx 导致内存不足错误
【发布时间】:2018-08-26 12:49:44
【问题描述】:

如果之前的已经完成,我正在尝试运行一个每小时启动的大型 php-scipt。

现在我遇到内存不足错误,如果我分析“top”,则 sw-engine 任务正在消耗大量内存,并且该内存不会随时释放。 已安装 Plesk Onyx 版本 17.8.11 更新 #17 - 使用 php 7.2.9。

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  4626 psaadm   20  0    8838088 8.195g 17344 S  1.7  34.1    9:23.35 sw-engine

关于如何摆脱消耗所有资源的 sw 引擎的任何想法?

当我只是启动一个计划任务时,为什么 sw-engine 会消耗资源?

【问题讨论】:

    标签: php out-of-memory plesk plesk-onyx


    【解决方案1】:

    sw-engine 是一个 PHP-FPM 处理程序,Plesk 内部使用它来运行,例如,Plesk UI 和 PHP 脚本作为计划任务:

    # sw-engine -v
    PHP 7.1.14 (cli) (built: Apr  9 2018 16:55:38) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    

    您可以使用服务器上安装的任何 PHP 版本,而不是 sw-engine。例如,/usr/bin/php 代表操作系统供应商提供的 PHP,或 /opt/plesk/php/7.2/bin/php 代表 Plesk 附带的 PHP 7.2。

    为此,只需使用Run a command 类型创建一个计划任务,并在脚本路径前面加上 PHP 可执行文件的路径:

    根据 OOM 问题,sw-engine 默认使用 256 MB 内存限制:

    # grep limit /usr/local/psa/admin/conf/php.ini
    memory_limit = 256M
    

    所以看起来内存限制是在脚本本身的某个地方重新定义的。 可以如下验证:

    # grep -i memory_limit /path/to/script.php
    

    另外,您可以尝试手动运行它,看看它在不同 PHP 版本下的表现如何,看看是否有任何差异:

    # /usr/bin/php /path/to/script.php
    # /usr/sbin/php-fpm /path/to/script.php
    # /usr/sbin/sw-engine-fpm /path/to/script.php
    # /opt/plesk/php/7.2/bin/php /path/to/script.php
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      相关资源
      最近更新 更多