PHP-FPM setup: shandisa pm static kuti uite zvakanyanya

PHP-FPM setup: shandisa pm static kuti uite zvakanyanya

Imwe vhezheni isina kupepetwa yechinyorwa chino yakatanga kuburitswa pa haydenjames.io uye yakabudiswa pano nemvumo yake munyori.

Ini ndichakuudza muchidimbu maitiro ekugadzirisa PHP-FPM kuti uwedzere kubuda, kuderedza latency, uye kushandisa CPU uye ndangariro zvakanyanya. Nekutadza, iyo PM (maitiro maneja) mutsetse muPHP-FPM iri simba, uye kana iwe usina chiyeuchidzo chakakwana, saka zviri nani kuisa ondemand. Ngatienzanise 2 sarudzo dzekutonga zvichibva pane php.net zvinyorwa uye tione kuti zvandinoda zvinosiyana sei nazvo kunofambira mberi pm kune yakakwira vhoriyamu traffic:

pm = simba - iyo nhamba yemaitiro emwana inogadziriswa zvine simba zvichienderana neanotevera mirairo: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
pm = zvinoda - maitiro anogadzirwa pane zvinodiwa (kusiyana nekugadzirwa kwesimba, apo pm.start_servers inotangwa kana sevhisi yatanga).
pm = static - nhamba yemaitiro emwana inogadziriswa uye inoratidzwa neparameter pm.max_children.

Kuti uwane mamwe mashoko, ona runyorwa rwakakwana rwemirairo yepasirese php-fpm.conf.

Kufanana pakati pePP-FPM process maneja uye CPU frequency controller

Izvi zvingaite sezviri kunze, asi ini ndichabatanidza izvi nemusoro weiyo PHP-FPM kumisikidzwa. Ndiani asati amboona processor ichidzikira kamwechete - palaptop, muchina chaiwo kana sevha yakatsaurirwa. Rangarira CPU frequency kuyera? Izvi zvingasarudzwa zviripo nix uye Windows inogona kuvandudza mashandiro ehurongwa uye kupindura nekushandura processor throttle kuseta kubva ondemand pamusoro performance*. Panguva ino, ngatienzanise tsananguro uye titarise kufanana:

gavhuna=zvavanoda -Dynamic kuyera kwe processor frequency zvichienderana nemutoro wazvino. Nekukurumidza svetuka kusvika kune yakanyanya frequency uye wozoidzikisa sezvo nguva dzekusaita dzichiwedzera.
gavhuna=anochengeta= dynamic frequency scaling zvichienderana nemutoro wazvino. Inowedzera uye inoderedza frequency zvakapfava pane painoda.
Gavhuna = kuita - frequency inogara yakanyanya.

Kuti uwane mamwe mashoko, ona runyorwa ruzere rwe processor frequency regulator paramita.

Ona kufanana kwacho? Ini ndaida kuratidza kuenzanisa uku kuti ndikubvumidze kuti zvakanakisa kushandisa pm static ye PHP-FPM.

Kune iyo processor regulator parameter mutambo inobatsira kuwedzera zvakachengeteka kuita nekuti inenge inoenderana zvachose neserver's CPU muganho. Pamusoro peizvi, hongu, pane zvakare zvinhu zvakaita setembiricha, bhatiri kubhadharisa (mulaptop) uye zvimwe zvinokonzeresa zvekugara uchimhanyisa processor pa100%. Iko kuseta kwekuita kunovimbisa kukurumidza kuita processor. Verenga, semuenzaniso, nezve force_turbo parameter muRaspberry Pi, iyo iyo RPi pani ichashandisa iyo regulator mutambo, uko kuvandudzwa kwekuita kuchanyanya kuoneka nekuda kweiyo yakaderera CPU wachi kumhanya.

Kushandisa pm static kuwana yakanyanya server performance

PHP-FPM sarudzo pm static zvakanyanya zvinoenderana neyemahara memory pane server. Kana chiyeuchidzo chakaderera, zviri nani kusarudza ondemand kana simba. Kune rimwe divi, kana uine ndangariro, unogona kudzivirira iyo PHP process maneja pamusoro nekuisa pm kunofambira mberi kusvika kune yakakura server capacity. Mune mamwe mazwi, kana zvinhu zvose zvakaverengwa zvakanaka, unofanira kutanga pm.static kusvika kuhuwandu hwehuwandu hwePHP-FPM maitiro anogona kuitwa, pasina kugadzira matambudziko ane low memory kana cache. Asi kwete yakanyanya kukwirira zvekuti inoremedza ma processor uye inounganidza boka rekushanda kwePP-FPM rakamirira kuurayiwa..

PHP-FPM setup: shandisa pm static kuti uite zvakanyanya

Mune iyo skrini iri pamusoro, sevha ine pm = static uye pm.max_children = 100, uye izvi zvinotora inenge 10 GB kubva kune inowanikwa 32. Chenjerera kune zvakasimbiswa makoramu, zvinhu zvose zvakajeka pano. Mumufananidzo uyu paive nevashandisi vangangosvika mazana maviri vanoshanda (kupfuura masekondi makumi matanhatu) muGoogle Analytics. Panhanho iyi, ingangoita makumi manomwe muzana ePP-FPM maitiro evana achiri asina basa. Izvi zvinoreva kuti PHP-FPM inogara ichiiswa kuhuwandu hwehuwandu hwesevha zviwanikwa zvisinei netraffic iripo. Maitiro asina basa anomirira kukwira kwemotokari uye anopindura ipapo ipapo. Haufanire kumirira kusvika pm ichagadzira maitiro emwana uye obva aamisa kana nguva yapera pm.process_idle_timeout. Ndakaisa kukosha kune zvakanyanya pm.max_requestsnekuti iyi iseva inoshanda isina ndangariro inodonha muPHP. Unogona kuisa pm.max_requests = 0 ne static kana iwe uine chivimbo chakazara mune iripo uye yeramangwana PHP zvinyorwa. Asi zviri nani kudzokorodza zvinyorwa nekufamba kwenguva. Seta nhamba yakakura yezvikumbiro, nekuti isu tinoda kudzivirira zvisina basa pm mitengo. Somuenzaniso, zvishoma pm.max_requests = 1000 - zvichienderana nehuwandu pm.max_children uye nhamba yezvikumbiro pasekondi.

Iyo skrini inoratidza murairo Linux kumusoro, yakapepetwa newe (mushandisi) uye PHP-FPM zita rekushandisa. Chete makumi mashanu ekutanga kana zvakadaro maitiro anoratidzwa (ini handina kuverenga chaizvo), asi kunyanya kumusoro kunoratidza huwandu hwepamusoro hunoenderana nehwindo rekupedzisira. Mune ino kesi yakarongwa ne% CPU (% CPU). Kuti uone ese 50 PHP-FPM maitiro, mhanyisa iwo murairo:

top -bn1 | grep php-fpm

Nguva yekushandisa pm inodiwa uye ine simba

Kana ukashandisa pm simba, kukanganisa kwakadai kunoitika:

WARNING: [pool xxxx] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4 idle, and 59 total children

Edza kushandura parameter, iko kukanganisa hakuzoendi, senge inotsanangurwa mune ino post paServerfault. Muchiitiko ichi, kukosha kwe pm.min kwaive kudiki, uye sezvo traffic yewebhu ichisiyana zvakanyanya uye ine nhongonya uye mipata yakadzika, zvakaoma kugadzirisa zvakakwana pm. simba. Kazhinji pm inoshandiswa ondemand, sekurairwa mune imwechete post. Asi izvi zvakatonyanya kuipa, nekuti ondemand inogumisa kuita zvisina basa kusvika zero kana paine zvishoma kana pasina traffic, uye iwe uchiri kuguma nepamusoro pekuchinja traffic. Kunze kwekunge, chokwadi, iwe unoisa yakakura yekumirira nguva. Uye saka zviri nani kushandisa pm.static + nhamba yakakwirira pm.max_requests.

PM simba uye kunyanya ondemand inogona kuuya inobatsira kana uine akawanda PHP-FPM madziva. Semuenzaniso, iwe unogamuchira akawanda cPanel maakaundi kana akawanda mawebhusaiti mumadhamu akasiyana. Ndine sevha ine, toti, 100+ cpanel maakaunti uye anenge mazana maviri madomasi, uye pm.static kana kunyange dynamic yaisazondiponesa. Chaunoda pano chete ondemand, mushure mezvose, zvinopfuura zvikamu zviviri muzvitatu zvewebhusaiti zvinogashira zvishoma kana kusatombowana traffic, uye pamwe ondemand maitiro ese evana achadonha, izvo zvinotichengetera ndangariro zhinji! Neraki, ivo vanogadzira cPanel vakazviona izvi uye vakaisa kukosha kune default ondemand. Kare, apo default yaive simba, PHP-FPM yanga isina kukodzera kune akabatikana akagovaniswa maseva zvachose. Vazhinji vakashandisa suPHP, nokuti pm simba yakadya ndangariro kunyangwe nemadziva asina basa uye cPanel PHP-FPM maakaundi. Zvingangoitika, kana traffic yakanaka, hauzogamuchirwe pane sevha ine nhamba huru yePP-FPM madziva (yakagovaniswa yekutambira).

mhedziso

Kana iwe uri kushandisa PHP-FPM uye traffic yako inorema, maitiro maneja ondemand ΠΈ simba yePHP-FPM ichave yakaganhurirwa kubuditsa nekuda kweiyo yekuzvarwa pamusoro. Nzwisisa hurongwa hwako uye gadzirisa PHP-FPM maitiro zvichienderana nehupamhi hwesevha. First set pm.max_children zvichienderana nehuwandu hwekushandisa pm simba kana ondemand, uye wobva wawedzera kukosha uku kusvika padanho iro ndangariro uye processor ichashanda isina kuremerwa. Unozozviona nazvo pm static, sezvo uine zvese mundangariro, traffic spikes inokonzeresa mashoma eCPU spikes nekufamba kwenguva, uye sevha neCPU mutoro mavhareji anobuda. Avhareji PHP-FPM maitiro saizi anoenderana newebhu server uye inoda kugadziridzwa kwemanyorero, saka mamwe otomatiki maitiro maneja ari. simba ΠΈ ondemand - zvakanyanya kufarirwa. Ndinovimba kuti chinyorwa chakabatsira.

DUP Yakawedzerwa benchmark chati ab. Kana PHP-FPM maitiro ari mundangariro, kuita kunowedzera pamutengo wekushandisa ndangariro kwavanogara nekumirira. Tsvaga yakanakira sarudzo iwe pachako.

PHP-FPM setup: shandisa pm static kuti uite zvakanyanya

Source: www.habr.com

Voeg