Skip to content

Commit 7396249

Browse files
Merge pull request #3004 from aleksandrychev/ENT-12957
Aligned PHP-FPM config based on system resources
2 parents d58448d + f12caa6 commit 7396249

File tree

2 files changed

+41
-4
lines changed

2 files changed

+41
-4
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,6 @@ build
5050
# Emacs
5151
.*\.~undo-tree~
5252
flycheck_*
53+
54+
#VScode
55+
.vscode

cfe_internal/enterprise/mission_portal.cf

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,57 @@ classes:
1414
and we use this class in httpd.conf to configure accordingly.";
1515
vars:
1616
policy_server.enterprise_edition.mission_portal_http2_enabled::
17+
"cpu_info_source" string => "/proc/cpuinfo";
18+
"cpu_cores_number"
19+
int =>
20+
int( execresult("grep -c ^processor $(cpu_info_source) 2>/dev/null", "useshell")),
21+
if => fileexists( $(cpu_info_source) );
22+
"mem_info_source" string => "/proc/meminfo";
23+
"mem_total_kb"
24+
int => int( execresult("grep ^MemTotal $(mem_info_source) | awk '{print $2}' 2>/dev/null", "useshell") ),
25+
if => fileexists( $(mem_info_source) );
26+
"php_fpm_www_pool_min_spare_servers_calculated" int => int(
27+
ifelse(
28+
isvariable("cpu_cores_number"),
29+
eval("$(cpu_cores_number) * 2"), # min spare servers are cpu cores number * 2
30+
"8" # fallback
31+
));
32+
"php_fpm_www_pool_max_spare_servers_calculated" int => int(
33+
ifelse(
34+
isvariable("cpu_cores_number"),
35+
eval("$(cpu_cores_number) * 4"), # max spare servers are cpu cores number * 4
36+
"16" # fallback
37+
));
38+
#start servers between min & max spare
39+
"php_fpm_www_pool_start_servers_calculated" int => int(
40+
eval(
41+
"($(php_fpm_www_pool_min_spare_servers_calculated) + $(php_fpm_www_pool_max_spare_servers_calculated)) / 2")
42+
);
43+
"fpm_children_average_memory_kb" int => "25600"; # average memory taken by one fpm process 25MB * 1024
44+
"php_fpm_www_pool_max_children_calculated" int => int(
45+
ifelse(
46+
isvariable("mem_total_kb"),
47+
eval("$(mem_total_kb) * 0.6 / $(fpm_children_average_memory_kb)"), # get only 60% of total memory and devide by avarage memory taken by one fpm process
48+
"60" # fallback
49+
));
50+
1751
"php_fpm_pid_file" string => "$(sys.workdir)/httpd/php-fpm.pid";
1852
"php_fpm_www_pool_max_children" string => ifelse(
1953
isvariable("default:def.php_fpm_www_pool_max_children"),
2054
"$(default:def.php_fpm_www_pool_max_children)",
21-
"60");
55+
"${php_fpm_www_pool_max_children_calculated}");
2256
"php_fpm_www_pool_start_servers" string => ifelse(
2357
isvariable("default:def.php_fpm_www_pool_start_servers"),
2458
"$(default:def.php_fpm_www_pool_start_servers)",
25-
"50");
59+
"$(php_fpm_www_pool_start_servers_calculated)");
2660
"php_fpm_www_pool_min_spare_servers" string => ifelse(
2761
isvariable("default:def.php_fpm_www_pool_min_spare_servers"),
2862
"$(default:def.php_fpm_www_pool_min_spare_servers)",
29-
"40");
63+
"$(php_fpm_www_pool_min_spare_servers_calculated)");
3064
"php_fpm_www_pool_max_spare_servers" string => ifelse(
3165
isvariable("default:def.php_fpm_www_pool_max_spare_servers"),
3266
"$(default:def.php_fpm_www_pool_max_spare_servers)",
33-
"50");
67+
"$(php_fpm_www_pool_max_spare_servers_calculated)");
3468
"php_fpm_state" data => mergedata(
3569
'{"vars": { "sys": { "workdir": "${default:sys.workdir}" } } }',
3670
'{

0 commit comments

Comments
 (0)