I have done some investigations and I have found this to calculate and adjust **pm.max_children** value

https://myshell.co.uk/blog/2012/07/adjusting-child-processes-for-php-fpm-nginx/

but for example :

- I have 8Gb on my server
- I'm hosting 30 websites
- php-fpm average process size around 40mb
- php-fpm max process size around 80mb
- I want to allocate 5Gb max of my memory to php-fpm processes

If I apply this :

**pm.max_children = Total RAM dedicated to the web server / Max child process size**

So in my case :

**pm.max_children = 5120 / 80 = 64**

But If I add **pm.max_children = 64** on each php-fpm website conf files, this means every website can use **64 children process** X **size of 1 process** (ex 40mb) = **2560Mb**

And If we imagine, at the same time, all the 30 website have reach the pm.max_children value, we will have : **2560Mb** (max per website) x **30** websites = **76 800** Mb

Am I correct?

Si yes, this means when many websites are hosted on the same server, we have to divide the result of the calcul **pm.max_children = 5120 / 80** = **64** by the number of websites hosted (here 30).

So 64 / 30 = 2,1 and **pm.max_children = 2** per website

Is it correct or not?

Thanks