Troppe immagini con PhpThumb bloccano il server

Per comodità mi è sempre piaciuto utilizzare PhpThumb per la creazione “al volo” di anteprime di immagini. Questo mi permetteva di non operare riduzioni sulle immagini originali, ma soprattutto gestire con più tranquillità eventuali modifiche grafiche di base nel layout dei siti che comportavano modifiche anche della risoluzione delle immagini inserite.

Ma in un sito in cui le immagini sono parte vitale del prodotto questa scelta a lungo andare ha penalizzato terribilmente le prestazioni non solo del sito in sé, ma anche del server che ospitava il sito.

Mediamente con un traffico giornaliero tra le 1000 e 1500 pagine venivano richieste al volo circa 10000 immagini al giorno con punte intorno alle 18 che spesso bloccavano il server.

Nonostante la cache impostata per PhpThumb era di oltre 1GB questa cache non riusciva probabilmente ad archiviare tutte le richieste, ma anzi stranamente la cache occupava più di 6 GB e tutte le immagini da ridimensionare arrivavano a mala pena a 200MB.

Così ho deciso di ridimensionare localmente le immagini usando questa ottima classe. Dopo un giorno ho monitorato se questa modifica avesse migliorato le prestazioni del server e a parità di traffico i risultati sono strabilianti: il traffico in uscita è passato da circa 8MB di media per le ore di punta ad appena 800KB mentre le prestazioni della CPU e della RAM sono scese dal 99% (che mandava il blocco la macchina) a poco più del 14%.

Non voglio dire che la classe PhpThumb sia eccessivamente pesante, probabilmente ci sono impostazioni precise per migliorare le prestazioni. Sinceramente il mio consiglio è di prestare attenzione qualora si scelga di usare questa classe perché il rischio come vedete è quello di far saltare i server 😉

Scritto da
Damiano Congedo
Partecipa alla discussione

commenti
  • quindi hai usato la classe cui fai riferimento nel link al posto di phpthumb? Anch’io sto notando gli stessi problemi che hai evidenziato nel tuo articolo

  • In realtà non ho controllato eventuali patch, ho preferito passare a una classe per gestire con più tranquillità le immagini anche perché in questo modo ho potuto utilizzare i crop che con PHPThumb non mi pare siano disponibili.

    Per l’hot link se non sbaglio bisogna modificare l’htaccess di Apache 😉

Damiano Congedo