0

如果之前的已经完成,我正在尝试运行一个每小时启动的大型 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 会消耗资源?

4

1 回答 1

0

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

代替sw-engine,您可以使用服务器上安装的任何 PHP 版本。例如,/usr/bin/php对于 OS 供应商提供的 PHP,或/opt/plesk/php/7.2/bin/phpPlesk 附带的 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
于 2018-09-03T15:36:42.853 回答