fyi这个问题是重复的,很多人都问,但我已经收集了我问题的所有答案,我做了什么仍然存在问题或不起作用,但我解释了更多细节,我想知道为什么。类似于
- 致命错误:允许的内存大小268435456字节已用完(试图分配71字节(和其他有很多反应告诉它的重复和任何事情
情况是我有3个服务器(引擎(运行应用程序(laravelweb(。
A。我的引擎(工作/没有错误(:(apache Ubuntu 18.04.6 LTS(
❯ free -m
total used free shared buff/cache available
Mem: 7976 865 497 18 6613 6797
Swap: 0 0 0
B我的引擎(不工作/错误分配内存(:(nginx((Ubuntu 18.04.4 LTS(
➜ ~ free -m
total used free shared buff/cache available
Mem: 7975 658 4312 22 3005 7006
Swap: 4095 1 4094
C。我的引擎(不工作/错误分配内存(:(nginx((Ubuntu 20.04.1 LTS(
~ » free -m ~
total used free shared buff/cache available
Mem: 1987 1096 112 131 778 568
Swap: 0 0 0
我所做的是运行一个查询,导出一个excel文件,其中数据来自应用程序。到目前为止,应用程序正在构建,因此需要大量内存、时间或处理。如果昨天看到有9000个数据/行。
我(用我的三台服务器(在做什么
- 在nginx/apache上增加内存配置
- 尝试覆盖.httaccess/file.php/index.php上的设置以增加内存处理
- 调优mysql-oracle/mysql-mariadb
我的服务器(B(不工作:(我的配置(
➜ ~ locate php.ini
/etc/php/7.4/apache2/php.ini
/etc/php/7.4/cli/php.ini
/etc/php/7.4/fpm/php.ini
/usr/lib/php/7.4/php.ini-development
/usr/lib/php/7.4/php.ini-production
/usr/lib/php/7.4/php.ini-production.cli
/usr/lib/php/8.1/php.ini-development
/usr/lib/php/8.1/php.ini-production
/usr/lib/php/8.1/php.ini-production.cli
➜ ~ php -i | grep php.ini
Configuration File (php.ini) Path => /etc/php/7.4/cli
Loaded Configuration File => /etc/php/7.4/cli/php.ini
然后我修改了php内存
// [ 1 ]
// /etc/php/7.4/cli/php.ini
max_execution_time = 3600
max_input_time = -1
memory_limit=512M // i have tried set to 2048M or -1 or 99999999999M
然后我重新启动php和nginx进行测量。。。
➜ ~ sudo service nginx restart && sudo service php7.4-fpm restart
➜ ~ nginx -s reload
没有错误,但仍然存在问题分配内存停留在16384字节所以我试着覆盖index.php
上的设置,它位于laravel/index.php和laravel/public/index.php上。我把这些代码粘贴到.php文件中。
<?php
set_time_limit(0);
ini_set('memory_limit', '-1');
ini_set('max_execution_time', 360);
仍然存在问题。我调试的是,当我试图将内存设置为仅512M时,它的警报会引导我增加更多内存(允许内存大小为268435456字节已耗尽(试图分配20480字节((,但当我尝试增加到2048M时,警报会有所不同
所以我们可以在这里近距离了解对于第一个
- 请尝试分配更多20480字节秒
- 请尝试分配更多16384字节
有人能解释为什么吗?卡在16384字节上。。。我增加到最大。
但在我的第一台使用apache的服务器上,它的配置工作和覆盖(而不是index.php(的棘手之处在于使用.htaccess.
您按照我的理解编辑了/etc/php/7.4/cli/php.ini
。这只是您的php-cli的配置文件。
Nginx正在使用/etc/php/7.4/fpm/php.ini
你需要在那里更改你的内存限制