【已解决】Insufficient shared memory 报错,不能执行任何操作

banro512

已解决

最终仔细排查发现,问题出在 opcache.memory_consumption 和 opcache.interned_strings_buffer 这2个参数配置问题,太小了不够用,分别调大一倍,并将 interned_strings_buffer 设为前者的一半后,问题解决。
最终配置
opcache.memory_consumption = 256
opcache.interned_strings_buffer=128

问题描述

最近一周,几乎每天出现一次这类错误

无论是执行 php -v 还是 php start.php reload php start.php restart 等任何有关php操作,都会报错 Fatal Error Insufficient shared memory!

只好 ps aux 然后 kill -9 所有workerman 进程,再启动。

服务器 4核,开启8个进程,压力主要集中在4个进程上。当kill -9 掉这4个进程后,再php相关操作就不再报错了.php 内存限制 1280M,报错时为止,服务器内存 尚余 10% 空闲。

程序代码

php -v
php start.php start
php start.php restart
php start.php reload

报错信息

 Fatal Error Insufficient shared memory

截图报错信息里报错文件相关代码

操作系统及workerman/webman等框架组件具体版本

Linux iZbp151opoxzdhdzlc7ufyZ 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.8.2003 (Core)
Release:        7.8.2003
Codename:       Core
PHP 8.1.9 (cli) (built: Aug  9 2022 10:39:55) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.9, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.9, Copyright (c), by Zend Technologies

Webman-framework v1.3.14
1166 1 0
1个回答

banro512

坐等高手指教,(#^.^#)

  • wolfcode 2023-03-02
    df -h | grep shm
  • banro512 2023-03-03

    感谢回答,最终仔细排查发现,问题出在 opcache memory_consumption interned_strings_buffer 这2个参数配置问题,分别调大一倍,并将 interned_strings_buffer 设为前者的一半后,问题解决

年代过于久远,无法发表回答
🔝