Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: PHP e Multithread

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    355

    PHP e Multithread

    Attualmente php5 come è messo con il multithread?

    Devo cambiare server e vorrei capire se continuare con un processore monocore ma con frequenza alta o pure con un nuovo multicore (devo scegliere anche come impostare apache a questo punto...).

    Mysql5 invece come lavora in multithread?

  2. #2
    Se il web server supporta il multi thread (o multi process), il carico sara' comunque suddiviso tra tutti i core disponibili.

    Lo stesso vale per MySQL.

  3. #3
    Questa discussione capita proprio a pennello...in questi giorni pensavo all'utilizzo di PHP sfruttando il multi-threading (che poi credo in PHP sia solo a livello di processo).

    Mi chiedevo però come poter lavorare in PHP sfruttando queste potenzialità...ammetto di conoscere poco o niente sulla programmazione che sfrutti più thread/processi (so le funzioni da utilizzare e come funzionano, ma non ho esperienza pratica nello sfruttarle)...non è che potete illuminarmi un po?

    Dove posso trarre vantaggi con PHP?
    Come posso usare questo approccio di programmazione?
    Administrator of NAMDesign.Net

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    355
    Originariamente inviato da filippo.toso
    Se il web server supporta il multi thread (o multi process), il carico sara' comunque suddiviso tra tutti i core disponibili.

    Lo stesso vale per MySQL.
    Mi sembra di aver capito che non tutte le librerie di php supportano il multithread, per questo è quasi un obbligo utilizzare il prefork di apache, ti risulta? Ma con i dual core anche i thread vengono suddivisi tra i processori se imposto apache come worker?

  5. #5
    Mi sembra di aver capito che non tutte le librerie di php supportano il multithread, per questo è quasi un obbligo utilizzare il prefork di apache, ti risulta?
    Ti suggerisco di leggere questa pagina:

    http://www.iis-aid.com/articles/my_w..._safe_binaries

    Ma con i dual core anche i thread vengono suddivisi tra i processori se imposto apache come worker?
    Il carico viene bilanciato dal processore sia che si tratti di processi che di thread.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    355
    OK grazie

  7. #7
    Attualmente PHP, inteso ESCLUSIVAMENTE come core, è thread-safe, il che vuol dire che può essere eseguito in un ambiente multi-thread se è appositamente compilato in modalità multi-thread (ergo i binari ZTS - Zend Thread Safe)

    Il problema REALE è che molte estensioni, invece, non sono thread-safe!!! Nel caso di un crash di una delle estensioni morirebbe per intero il processo associato al thread che nel caso di un solo processo vorrebbe dire salta il web server!

    Personalmente sconsiglio l'uso di php in modalità multi-thread anche perché non varia la possibilità di sfruttare processori multi core, quello avviene indipendentemente perché vengono spostati i processi sui vari processori! La modalità multi thread eviterebbe più al webserver che al php stesso di istanziare un BOTTO di roba per ogni esecuzione... il fork, usando normalmente da apache, clona TUTTA la memoria utilizzata dall'applicativo il che vuol dire che a parte le risorse utilizzate lavora parecchio di più!

    In questi casi conviene utilizzare un altro webserver (per esempio nginx è spettacolare ed è MOLTO più performante di lighttpd) e poi si mette php come fast-cgi riducendo consistentemente il carico di lavoro (il fastcgi usa sempre il forking dei processi per lavorare però la cosa sarebbe strettamente legata a php)

    io, attualmente, sul mio webserver utilizzo Apache con la patch mpm-itk per poter eseguire l'intero virtual host sotto specifici utenti ma il carico che ne deriva è qualcosa di allucinante perché per ogni virtual host c'è un apposito processo che fa quello che normalmente fa apache con i gestori suoi interni ... gestori che poi sono presenti per ogni vhost! un gran casino
    Personalmente sto seriamente considerando la possibilità di passare a nginx e poi mettere su, per i domini dove serve php, python o quello che è, un apposito processo di fastcgi che sicuramente pesa MENO di avere un processo ad hoc per ogni vhost perché anche se magari in numero alla fine saranno uguali a livello di peso una cosa è avere php con una manciata di librerie caricate, una cosa è avere praticamente un apache clonato su ogni vhost

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    355
    Secondo te è meglio in prefork o in worker? Nnn mi dispiacerebbe diminuire l'utilizzo della memoria con il worker...

  9. #9
    Originariamente inviato da Aft3rlif3
    Secondo te è meglio in prefork o in worker? Nnn mi dispiacerebbe diminuire l'utilizzo della memoria con il worker...
    TUTTO dipende dalle estensioni che usi e che potresti dover usare

    ma se ti interessa REALMENTE ridurre i consumi ed aumentare le prestazioni usa nginx

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    355
    Per il mod_rewrite ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.