Yadda Ake Hana PHP-FPM Daga Cinye RAM mai yawa a cikin Linux


Idan kun sanya tarin LEMP (Linux, NGINX, MySQL/MariaDB, da PHP), to tabbas kuna amfani da FastCGI wanda yake nema a cikin NGINX (azaman uwar garken HTTP), don aikin PHP. PHP-FPM (ma'anar ma'anar FastCGI Process Manager) babban amfani ne wanda aka yi amfani da shi da kuma aiwatar da babban aikin aiwatarwa na PHP FastCGI.

Anan ga jagororin masu amfani akan kafa LEMP Stack a cikin Linux.

  • Yadda ake Shigar da LEMP Stack tare da PhpMyAdmin a cikin Ubuntu 20.04
  • Yadda ake Shigar da Sabo na LEMP akan CentOS 8
  • Yadda ake Shigar LEMP akan Debian 10 Server

Kwanan nan, duk rukunin yanar gizon mu na PHP akan ɗayan sabar yanar gizon mu na LEMP sun zama a hankali kuma daga ƙarshe sun daina amsawa kan shiga cikin sabar. mun gano cewa tsarin yana ta ƙaranci kan RAM: PHP-FPM ya cinye yawancin RAM, kamar yadda aka nuna a cikin hotunan hoto mai zuwa (glances - system monitoring tool).

$ glances

A cikin wannan labarin, za mu nuna yadda za a hana PHP-FPM cinyewa da yawa ko duk memorin tsarin ku (RAM) a cikin Linux. A ƙarshen wannan jagorar, zaku koyi yadda ake rage yawan ƙwaƙwalwar ajiyar PHP-FPM da kashi 50% ko fiye.

Rage Amfani da Memory na PHP-FPM

Bayan yin wani bincike kan Intanet, mun gano cewa muna buƙatar sake fasalta manajan sarrafa PHP-FPM da wasu fannoni na shi don rage amfani da ƙwaƙwalwar ajiyar PHP-FPM a cikin fayil ɗin daidaitawar tafkin.

Tsohuwar tafkin ita ce www kuma fayil ɗin saitin sa yana a /etc/php-fpm.d/www.conf (akan CentOS/RHEL/Fedora) ko /etc/php/7.4/fpm/pool.d/www.conf ( akan Ubuntu/Debian/Mint).

$ sudo vim /etc/php-fpm.d/www.conf             [On CentOS/RHEL/Fedora]
$ sudo vim /etc/php/7.4/fpm/pool.d/www.conf    [On Ubuntu/Debian/Mint]

Nemo umarni masu zuwa kuma saita darajar su don dacewa da akwatin amfani da ku. Don umarnin da aka yi sharhi akai, kuna buƙatar ƙaddamar da su.

pm = ondemand
pm.max_children = 80
pm.process_idle_timeout = 10s
pm.max_requests = 200

Bari mu taƙaita bayanin umarnin da ke sama da darajojin su. Umurnin pm yana ƙayyade yadda manajan aiwatar zai sarrafa yawan ayyukan yara. Hanyar tsoho tana da kuzari, wanda ke nufin adadin yara (tsarin yara) an saita su kwakwkwasa dangane da wasu umarnin ciki harda pm.max_children wanda ke bayyana matsakaicin adadin yaran da zasu iya rayuwa a lokaci guda.

Babban manajan tsari shine tsarin tsarin ƙasa inda babu tsarin tsari na yara da aka ƙirƙira a farkon farawa amma ana haɓakawa akan buƙata. Ana aiwatar da ayyukan yara ne kawai lokacin da sabbin buƙatu zasu haɗu dangane da pm.max_children da pm.process_idle_timeout wanda ke bayyana adadin sakanni bayan haka za a kashe wani aiki mara aiki.

Arshe amma ba mafi ƙaranci ba, muna buƙatar saita sigar pm.max_requests wanda ke ƙayyade adadin buƙatun kowane ɗayan yara yakamata ya aiwatar kafin sake sake haihuwa. Hakanan za'a iya amfani da wannan ma'aunin azaman yin aiki don zubewar ƙwaƙwalwar ajiya a cikin dakunan karatu na ɓangare na 3.

Tunani: Hanya mafi kyau don gudanar da PHP-FPM.

Bayan yin waɗannan abubuwan daidaitawa a sama, Na lura amfani da RAM yanzu yana da kyau akan sabarmu. Shin kuna da wani tunani da zaku raba dangane da wannan batun ko tambayoyin? Ku isa gare mu ta hanyar fom ɗin da ke ƙasa.