Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何限制PHP';s整个apache的总内存使用率_Php_Apache_Cakephp_Memory Management_Cakephp 2.x - Fatal编程技术网

如何限制PHP';s整个apache的总内存使用率

如何限制PHP';s整个apache的总内存使用率,php,apache,cakephp,memory-management,cakephp-2.x,Php,Apache,Cakephp,Memory Management,Cakephp 2.x,因此,我和我的同事都无法找到我们问题的答案。如何限制apache上PHP的总内存使用量 我们在AWS上的EC2实例上运行CakePHP 2.x,该实例有15GB内存。我知道在php.ini文件中有一个内存限制={GB/MB},根据php限制任何单个脚本可以使用的内存量。那么,我们如何在整个PHP上启用相同类型的限制呢?我们正在Apache2.4上运行PHPV5.4。任何帮助都将不胜感激 哦,我明白了。使用php语言无法做到这一点。您必须限制apache服务器内存。我也不认为这是可能的。但是您可以

因此,我和我的同事都无法找到我们问题的答案。如何限制apache上PHP的总内存使用量


我们在AWS上的EC2实例上运行CakePHP 2.x,该实例有15GB内存。我知道在php.ini文件中有一个内存限制={GB/MB},根据php限制任何单个脚本可以使用的内存量。那么,我们如何在整个PHP上启用相同类型的限制呢?我们正在Apache2.4上运行PHPV5.4。任何帮助都将不胜感激

哦,我明白了。使用php语言无法做到这一点。您必须限制apache服务器内存。我也不认为这是可能的。但是您可以优化服务器cpu使用率(进程和线程的数量),并使用php.ini
memory\u limit=128M
,这将限制每个进程的内存使用

您可以编辑您的conf\extra\httpd mpm.conf并对其进行管理:

# prefork MPM

# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of connections a server process serves

# before terminating
<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>
#预工作MPM
#StartServers:要启动的服务器进程数
#MinSpareServers:保留备用的最小服务器进程数
#MaxSpareServers:保留备用的最大服务器进程数
#MaxRequestWorkers:允许启动的最大服务器进程数
#MaxConnectionsPercild:服务器进程服务的最大连接数
#终止前
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPercild 0

希望它有帮助,如果有一个特定的代码块需要分配更多的内存来处理,这主要取决于您的逻辑。 有两种方法

  • php.ini中的内存限制
  • 检查并获取适合您的需要/提供您的内存需求的EC2实例

一点也不。PHP使用内存脚本,正如您已经发现的那样。但是您可以限制apache同时执行特定数量的PHP脚本。您知道如何@MarkusZeller执行此操作吗?这是不可能的。但是一个想法是用有限的资源启动一个docker容器并调用其中的所有php。