标签: memory-limit

PHP ini_set内存限制

当我们在代码中使用如下所示的 ini_set 时,所有其他代码的内存限制是否相同?或者仅对我们添加的代码有效?

ini_set('memory_limit', '512M');

谢谢

php memory memory-limit

8
推荐指数
1
解决办法
3万
查看次数

为什么内存使用量比我在 Kubernetes 的节点中设置的要大?

我仅将资源分配给 1 个 pod,内存为 650MB/30%(使用其他内置 pod,限制内存仅为 69%)

但是在pod处理过程中,pod的使用率在650MB以内,但是node的整体使用率为94%。

为什么会发生,因为它的上限应该是 69%?是不是因为其他内置的 pod 没有设置限制?如果内存使用率 > 100%,有时我的 pod 会出错,如何防止这种情况发生?

我的分配设置 ( kubectl describe nodes): 在此处输入图片说明

Kubernetes Node 和 Pod 空闲时的内存使用情况:
kubectl top nodes
在此处输入图片说明
kubectl top pods
在此处输入图片说明

运行任务时 Kubernetes Node 和 Pod 的内存使用情况:
kubectl top nodes
在此处输入图片说明
kubectl top pods
在此处输入图片说明


进一步测试的行为:
1. 在命名空间test-ns下准备部署、pods 和服务
2. 由于只有kube-systemtest-ns有 pods,所以分配 1000Mi 给它们每个 (from kubectl describe nodes) 目标是小于 2GB
3. 假设内存在kube-systemtest-ns 中使用将小于 2GB 小于 100%,为什么内存使用率可以是 106%?

.yaml …

nodes memory-limit kubernetes azure-aks

7
推荐指数
1
解决办法
3787
查看次数

Laravel DB插入错误:允许的内存大小已耗尽

我试图在我的数据库中插入~20K记录时遇到了问题.我注意到即使我在foreach循环中回显,我也没有在命令行中输出任何内容.相反,我插入~9440有关...的记录后出错

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 91 bytes) in /Users/me/Sites/Laravel/database/connection.php on line 293

这是我的代码(尝试使用Eloquent和Fluent):

<?php

class Process_Controller extends Base_Controller
{
    public function action_migrate()
    {
        $properties = DB::table('raw_properties')->get('id');
        $total = count($properties);

        foreach ($properties as $x => $p) {
            $r = RawProperty::find($p->id);
            $count = $x + 1;

            $prop_details = array(
                'column' => $r->field,
                // Total of 21 fields
            );

            DB::table('properties')->insert($prop_details);

            echo "Created #$count of $total\n";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

php memory-limit laravel

6
推荐指数
2
解决办法
1万
查看次数

无法增加MAMP的php内存限制

我一直在尝试增加MAMP(Mac OSX)中的php memory_limit.我使用的PHP版本是5.4.1.0.我已经阅读了有关为MAMP Pro创建新模板的信息,但我正在使用标准版本的MAMP.

我已经尝试了以下所有内容,但似乎没有任何效果.任何帮助将非常感激.

感谢您的时间.


我已将以下内容添加到我的网站的htaccess文件中,该文件由网站读取并运行(ExpressionEngine).但主PHP限制仍未更新.

php_value memory_limit 128M
Run Code Online (Sandbox Code Playgroud)

我在以下文件中将以下内容从32M更改为128M:

/Applications/MAMP/conf/php5.4.10
memory_limit = 128M ;

然后我完全退出MAMP并重新启动它,但在MAMP phpInfo中它仍然显示:
memory_limit 32M


虚拟主机

我正在使用虚拟主机来设置我自己的URL.我在某处读到可能需要增加内存限制.所以我把它添加到'php_value memory_limit 128M':

/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

<VirtualHost *:80>
 DocumentRoot /Applications/MAMP/htdocs
 ServerName localhost
 php_value memory_limit 128M
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

并降低相关站点配置中的同一文件:

<VirtualHost *:80>
  DocumentRoot "/Users/Username/Dropbox/Dev/sitename.dev"
  ServerName sitename.dev
  php_value memory_limit 128M
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

(顺便说一下,我把我的MAMP文件夹(Dev)保存在Dropbox中,它工作正常)


php.ini中

我还在我的站点目录的根目录和我的MAMP目录的根目录中添加了一个php.ini文件,其中包含以下内容:

memory_limit = 128M
Run Code Online (Sandbox Code Playgroud)

php mamp expressionengine memory-limit

6
推荐指数
1
解决办法
2万
查看次数

如何检测 Docker 容器何时达到其配置的内存限制

给定一个已启动的具有内存限制的Docker 容器,我想知道是否可以检测到何时强制实施该内存限制,从而使该容器即将崩溃,因为它的内存不足。是否有一些我可以捕获的信号?或者我可以轮询一些日志文件?事后检测到这一点,即使延迟几分钟仍然有用

memory-limit docker

6
推荐指数
2
解决办法
4572
查看次数

在PHP/Apache中提供大型受保护文件

我需要从Apache Web服务器提供大文件(> 2gb).这些文件是受保护的下载,因此我需要某种方式来授权用户.我正在使用的CMS使用针对MySQL数据库检查的cookie来验证用户.在服务器上,我无法控制max_execution_time,并且无法控制memory_limit.

我的技术一直在为小文件工作.在用户(通过CMS)授权用户之后,我使用readfile()来提供文件,该文件存储在文档根目录上以防止直接访问.我已经阅读了关于下载或使用fpassthru来绕过PHP内存限制的技术.但我还没有找到一种技术来绕过max_execution_time限制.

我考虑过将文件存储在文档根目录中,因此我们可以完全绕过PHP.但我无法弄清楚如何使用htaccess限制访问.在我可以为文件提供服务之前,我需要针对数据库验证用户.

谢谢.

php apache .htaccess large-files memory-limit

5
推荐指数
1
解决办法
1388
查看次数

有效的内存限制测试

我遇到了崩溃的ION-Cube模块的问题.该模块将csv数据导入我们的数据库,但如果csv文件为大(15 + M),则结果是内部服务器错误.

支持人员告诉我,我的服务器没有足够的RAM来运行模块.服务器内置了1GB的RAM,所以我写了一个简单的测试脚本来检查ini_set是否有效.

<pre>
<?php 
function tryAlloc($megabyte){
    echo "try allocating {$megabyte} megabyte...";
    $dummy = str_repeat("-",1048576*$megabyte);
    echo "pass.";
    echo "Usage: " . memory_get_usage(true)/1048576; 
    echo " Peak: " . memory_get_peak_usage(true)/1048576;
    echo "\n";
}   
for($i=10;$i<1000;$i+=50){
    $limit = $i.'M';
    ini_set('memory_limit', $limit); 
    echo "set memory_limit to {$limit}\n"; 
    echo "memory limit is ". ini_get("memory_limit")."\n";
    tryAlloc($i-10);
}

?>
</pre>
Run Code Online (Sandbox Code Playgroud)

这没有任何问题.这次测试有什么重大缺陷吗?我们在使用此模块时遇到了很多麻烦,并且支持人员一直告诉我们问题是我们的服务器.-.-

PS:不,我无法访问php.ini.不,我不能使用.htaccess来设置内存限制.不,我无法编辑修复/调试模块.

php memory-management memory-limit

5
推荐指数
0
解决办法
5128
查看次数

PHP memory_get_peak_usage和ini_set('memory_limit',' - 1')

我最近遇到了内存分配问题,所以我开始尝试使用ini_set('memory_limit', value);指令,我尝试输入值incrementaly.现在,通过网络搜索(和SO)我发现我可以把它-1作为value.所以,我做了,现在脚本完全运行到最后而不会中断(在我以前得到内存分配错误之前).

然而,我不明白的是,在脚本文件末尾给出这两行:

$mem = memory_get_peak_usage(true);         
echo "Peak mem. usage: <b>" . round($mem / 1024 / 10124, 2) . "</b> MB";
Run Code Online (Sandbox Code Playgroud)

产生大约10.8MB,当我调查时,/var/log/messages我可以看到这一行:

Nov 21 13:52:26 mail suhosin[1153]: ALERT-SIMULATION - script tried to increase  
memory_limit to 4294967295 bytes which is above the allowed value (attacker  
'xx.xxx.xxx.xxx', file '/var/www/html/file.php', line 5)
Run Code Online (Sandbox Code Playgroud)

这意味着脚本试图安排4096MB!

怎么会这样?而且,最让我感兴趣的是为什么在这种情况下脚本执行没有停止?是因为ini_set('memory_limit', '-1');?我的意思是,我没有读到,将-1作为value下不推荐,我知道问题出在脚本(在内存中一次读取数据的太大量),我会去和顺序读取修复它,但我我只是对这些数据差异感到困惑,所以如果有人能够对它有所了解,我将不胜感激.

php memory-management memory-limit

5
推荐指数
1
解决办法
3642
查看次数

为什么在这个Ubuntu 12.04 64位virtualenv应用程序中没有更多的内存分配?

我们有一台运行64位Ubuntu 12.04的服务器,它服务于在虚拟环境下运行的django应用程序,以及一个芹菜工作者.问题是服务器中没有进程使用超过2GB的内存.系统中有8GB内存,4GB交换.该图表显示该过程受到某些因素的限制

在此输入图像描述

我们没有做任何事情来强制执行32位或任何东西的运行进程.我还应该注意,django和芹菜都由主管进程管理器监控newrelic-client,我不知道这些是否与内存限制有关.

为什么celery进程不需要分配更多的内存?

系统:Ubuntu 12.04 64位
客户端:Django应用程序(2 GB)
RAM:8 GB
交换:4 GB

python django ubuntu memory-limit

5
推荐指数
0
解决办法
368
查看次数

如何使用PHP制作大数组(26000 x 26000)?

我尝试用PHP创建数组.阵列的尺寸是26000 x 26000.是否可以使阵列变大?我已经尝试制作尺寸为10000 x 10000的数组,但程序一直告诉我:

致命错误:第24行的C:\ xampp\htdocs\matrix\index.php内存不足(分配1886388224)(试图分配24个字节)

我有8GB内存,我已经在php.ini中设置了memory_limit -1(apache配置).构建数组的代码是这样的:

function zeros($rowCount, $colCount)
{
    $matrix = array();
    for ($rowIndx=0; $rowIndx<$rowCount; $rowIndx++)
    {
        $matrix[] = array();
        for($colIndx=0; $colIndx<$colCount; $colIndx++)
        {
            $matrix[$rowIndx][$colIndx]=0;
        }
        var_dump(memory_get_usage());
    }
    return $matrix;
}

$matrix = zeros(25000,25000);
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用SplFixedArray,但结果是一样的.请帮帮我,谢谢!:)

php arrays out-of-memory fatal-error memory-limit

5
推荐指数
1
解决办法
172
查看次数