Puncte:0

Problemă ciudată cu Pthreads - De ce există o întârziere în fiecare nou Thread Submit când opcache.enable_cli este dezactivat?

drapel jp

Deci, pentru context, rulez PHP-FPM 7.4 pe Ubuntu și l-am compilat cu ZTS. Apoi au adăugat extensiile Pthreads și ZSTD.

Rulez câteva sute de sarcini și am nevoie de ele pentru a genera noi procese php cât mai repede posibil, dar după mai multe teste mi-am dat seama că, deși scriptul meu rula în 0,001 secunde, de fiecare dată când am generat un nou thread PHP cu Pthreads, a adăugat 0,01 secunde. la ecuație, ceea ce face ca timpul fiecărei iterații de buclă să se înmulțească cu 10 .

Încerc să găsesc explicații posibile pentru acest lucru deja de câteva săptămâni și până acum, după ce am făcut mai multe teste și am ajustat o mulțime de setări, singurul lucru care a avut sens este că aceasta este o Pthreads Limitation prin design .

Următorul pas logic ar fi să actualizez codul la noul proiect Parallel, dar între timp am găsit ceva curios, când activez opcache.enable_cli în configurația PHP FPM problema aproape a dispărut și majoritatea thread-urilor nu sunt întârziate!

Din păcate, acest lucru cauzează erori constante de corupție/segmentare zend_mm_heap, care din ceea ce am citit nu pot fi cu adevărat remediate (este fie o problemă de bază zend, fie pthreads), dar s-ar părea că este un bun început pentru a înțelege rădăcina problemei. .

Oricine ?

Michael Hampton avatar
drapel cz
Threaded PHP a fost un câmp minat de bug-uri și alte probleme de cât timp a existat. Se pare că puțin s-a schimbat. Cel mai bine este evitat dacă este posibil.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.