sw-engine Plesk Onyx导致内存不足错误

问题描述 投票:0回答:1

我正在尝试运行一个大型的PHP脚本,如果之前已经完成,则每小时启动一次。

现在我出现内存不足错误,如果我分析“顶部”,则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个回答
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

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

要做到这一点,只需使用Run a command类型创建一个计划任务,并在脚本前面添加PHP可执行文件的路径:

enter image description here

根据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
© www.soinside.com 2019 - 2024. All rights reserved.