如何计算器在php-fpm中使用内存?

时间:2017-07-12 08:33:53

标签: 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正在启动1个进程,128 MB,opcache 128MB = 256 MB。如果php-fpm创建一个新的服务器/进程,我们将有2个256 MB的进程和opcache 128 MB = 384 MB。这是对的吗?

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

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

如果您正在谈论应用程序使用了多少内存,则可以使用类似 ps aux | grep -P "fpm|COMMAND"

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

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

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

如果您找到例如您的8GB服务器仅使用512MB内存,您可以为其保留一些额外的空间,例如750MB或1GB。剩下的7GB可用空间除以您的应用程序内存使用量。 10MB/7GB = 700个线程/子代。