Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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 fpm的已用内存?_Php_Fpm - Fatal编程技术网

如何计算php fpm的已用内存?

如何计算php fpm的已用内存?,php,fpm,Php,Fpm,假设我有一个使用php fpm运行的php应用程序。下面是php/php fpm和opcache的选项。如何计算所有组件使用的内存量 memory_limit=128M ... opcache.memory_consumption=128M ... [www] pm = dynamic pm.max_children = 2 pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_spare_servers = 2 这是我的想法。php fpm

假设我有一个使用php fpm运行的php应用程序。下面是php/php fpm和opcache的选项。如何计算所有组件使用的内存量

memory_limit=128M
...
opcache.memory_consumption=128M
...
[www]
pm = dynamic
pm.max_children = 2
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 2
这是我的想法。php fpm正在启动一个128 MB的进程,并且opcache 128MB=256 MB。如果php fpm创建一个新的服务器/进程,我们将有两个进程,分别为256 MB和opcache 128 MB=384 MB。对吗


背景是计算Kubernetes部署的正确内存限制。

如果您谈论的是应用程序使用的内存量,您可以使用
ps aux|grep-P“fpm|COMMAND”

一旦你有了它,比如10MB,你就知道你的FPM线程使用了多少MB。这是你的孩子

接下来,您需要知道服务器正在使用多少内存。打开
htop
,按mem排序(
shift+m
),将所有与php无关的1MB以上的内存使用量加起来,这就是当前的服务器使用量(非php)

如果您可以在检查时加载服务器,这会有所帮助,特别是如果您正在运行的mysql使用了大量内存,那么在检查时加载服务器也会有所帮助


例如,如果您发现8GB服务器仅使用512MB内存,您可以为其保留一些额外空间,例如750MB或1GB。剩下的7GB要除以你的应用程序内存使用量
10MB/7GB
=
700
threads/child.

如果你在谈论应用程序使用了多少内存,你可以使用
ps aux|grep-P“fpm|COMMAND”

一旦你有了它,比如10MB,你就知道你的FPM线程使用了多少MB。这是你的孩子

接下来,您需要知道服务器正在使用多少内存。打开
htop
,按mem排序(
shift+m
),将所有与php无关的1MB以上的内存使用量加起来,这就是当前的服务器使用量(非php)

如果您可以在检查时加载服务器,这会有所帮助,特别是如果您正在运行的mysql使用了大量内存,那么在检查时加载服务器也会有所帮助


例如,如果您发现8GB服务器仅使用512MB内存,您可以为其保留一些额外空间,例如750MB或1GB。剩下的7GB要除以你的应用程序内存使用量
10MB/7GB
=
700
threads/childs.

内存限制并不意味着占用的内存,它意味着可能占用的内存,这是每个“请求”(运行脚本)的内存,因此如果FPM进程(以某种方式)同时处理多个请求,那么它可能会占用更多内存。同样,这些都是最大值而不是绝对值。@apokryfos是的,我理解。也许我的问题没有说清楚。我想计算php可以为自己声明的最大内存。据我对php fpm文档的理解,
pm.max_children
是php fpm将同时处理的请求数。那么,我的计算是正确的吗?我想是的。内存限制并不意味着占用的内存,它意味着可能占用的内存,这是每个“请求”(运行脚本)的内存。因此,如果FPM进程(以某种方式)同时处理多个请求,那么它可能会占用更多内存。同样,这些都是最大值而不是绝对值。@apokryfos是的,我理解。也许我的问题没有说清楚。我想计算php可以为自己声明的最大内存。据我对php fpm文档的理解,
pm.max_children
是php fpm将同时处理的请求数。那么,我的计算是正确的吗?我想是的。