I principali portali di calcio italiani, scelgono DREAMSNET.IT per l’hosting e la consulenza sistemistica.

romanews-lazionews-bianconerinews

Come per molti altri siti ad alto traffico che abbiamo avuto modo di discutere negli scorsi articoli del nostro blog, questa volta abbiamo avuto modo di ricevere la piena fiducia da parte della società editrice MALU WEB s.r.l. di Roma che ci ha affidato il delicato compito di progettare l’infrastruttura di hosting per i loro portali calcistici ad alto traffico.

MALU WEB S.r.l. infatti è una società editrice che incentra il loro business su progetti editoriali ben targetizzati, curando portali web inerenti ad alcuni club calcistici italiani.

Romanews.eu, lazionews.eu, bianconerinews.eu, tra le testate giornalistiche in rilevanza, con picchi di traffico elevati in concomitanza di comunicati stampa dei vari club e degli impegni sportivi come derby e le varie gare calcistiche.

Gestire picchi di traffico elevati dovuti ad altrettanti picchi di visitatori, significa eseguire una progettazione ad-hoc sia per ciò che concerne la parte hardware sia per ciò che concerne la parte software.

Collocare i dati su datacenter europei come OVH in questo caso ha significato trovare una risposta estremamente intelligente alla solita domanda “Costi o prestazioni ?“.

In questo caso non abbiamo dovuto sacrificare nulla, dimensionando correttamente l’hardware alla base a prezzi estremamente competitivi su tutto il panorama europeo.

A livello software, abbiamo installato e configurato uno stack basato sulle più moderne tecnologie idonee a far girare correttamente blog WordPress.

A partire dallo strato DBMS, basato su Percona Server (Drop in replacement del più popolare MySQL Server di Oracle), PHP-FPM con Zend Opcache come process manager dell’interprete PHP, NGINX come Webserver, Memcached per gestire il caching di Worpress direttamente in RAM grazie al plugin W3 Total Cache, Varnish come cacher in reverse proxy, ed infine il tutto proxato con Incapsula (www.incapsula.com) al fine di gestire in modo trasparente un cacher e un sistema di distribuzione contenuti (ovvero CDN, Content Delivery Network).

Il tutto è stato implementato nei tempi e nelle modalità più idonee al fine di ridurre eventuali disservizi, ovvero in orario notturno tra giovedì notte e venerdì notte. La messa in produzione è stata monitorata in modo continuativo anche in tutta la giornata di sabato, al fine di visionare il carico del server e il corretto funzionamento di tutte le componenti.

Fieri come sempre di fare ciò che sappiamo fare bene e di fornire in questo caso oltre 14 milioni di visitatori al mese ai principali portali calcistici italiani, e di dimezzare i costi di infrastruttura all’azienda committente, che migrando dal vecchio fornitore, oltre ad aver migliorato sensibilmente la qualità di navigazione e la velocità di caricamento delle pagine Web, ha anche ridotto di 2 terzi i costi di noleggio e gestione dell’infrastruttura.

Qualora cerchiate soluzioni di hosting avanzato ed ottimizzazioni server avanzate, contattateci pure, sapremo trovare una soluzione ideale alle vostre esigenze, ai prezzi più interessanti sul mercato con prestazioni alla top di gamma.

Tuning e ottimizzazione server web linux. Quando il gioco si fa duro …

Quando il gioco si fa duro … i duri cominciano giocare” esclamava il buon John Belushi in Animal House.
Questa regola era validissima nei tempi passati in cui l’informatica era un terreno poco fertile, l’hardware aveva dei prezzi proibitivi e si era disposti a passare intere nottate in bianco per risparmiare 50k di RAM ottimizzando le routine più complesse direttamente in assembly.

Oggi il panorama è cambiato, l’hardware ha costi irrisori se paragonati a quelli dell’epoca e non c’è più tempo, capacità e voglia di ottimizzare : quando qualcosa non funziona bene si passa semplicemente ad hardware più potente. Quando la banda non basta più si compra più banda.

La convinzione ovvero che basti mettere mano al portafogli per risolvere tutti i problemi informatici del momento.

Questo è vero in alcuni casi ma rimane sempre una soluzione errata ed eticamente scorretta quando magari con un’ora di intelligente ottimizzazione si può incrementare le performance di oltre il 400%.
Il concetto è valido in particolar modo per i Webserver che sono spesso il risultato di sottocomponenti distinte (DBMS, Linguaggio lato server, Server web) su cui gira un sito internet che elabora dati e presenta contenuti multimediali al navigante.

Morale della favola : aspettate prima di montare un altro processore e quadruplicare la RAM, provate invece ad ottizzare le singole componenti software per rendere il sito web snello e scattante e in grado di sopravvivvere ad un traffico di centinaia di visite al secondo senza crashare.

Un buon modo di iniziare è sapere su cosa metter mano, ovvero ciò che il mercato offre nell’ambito di server LAMP, cosa installare e cosa ottimizzare per avere i miglior risultati possibili.

Innanzitutto vale sempre il metodo top-down, ovvero risolvere il problema scomponendo il problema in più sottoproblemi, ricordando in questo caso che l’inefficienza di ogni sottocomponente si ripercuoterà in modo incisivo sull’efficienza o meno dell’intero server. L’imperativo è dunque : evitare i colli di bottiglia.

Se ad esempio facciamo un uso massiccio di PHP, molti accessi concorrenti al Database con query complesse, utilizzo di CMS del calibro di Drupal, Joomla o WordPress e ci aspettiamo di riuscire a soddisfare una mole di richieste non indifferente bisogna seguire scrupolosamente i seguenti passi :

Scelta di un Hardware decente : ormai un server di fascia alta ce lo si può permettere per meno di 100 euro al mese. Configurazioni interessanti basate su intel i7 o addirittura Xeon, quad o six core, 12 giga o più in triple channel e dischi raid sata3.
Se si vuol essere performanti bisogna sempre fare una scelta a livello hardware adatta alle esigenze. Dischi SSD in RAID 1 sicuramente aumentano le performance diminuendo la latenza disco.
Se invece siamo nella condizione di avere un “macinino” e il nostro sito diventa sempre più popolare e non abbiamo voglia di migrare tutto su hardware più potente … ottimizziamo.
Qualunque siano i casi ottimizziamo a prescindere.

Web server : è ormai uno standard, lo danno installato di default con la nostra distribuzione Linux e ce lo teniamo come se fosse il miglior webserver del mondo. Apache esatto. Ottimo webserver facilmente ottimizzabile variando i parametri in httpd.conf.
Oppure possiamo optare per il meno conosciuto NGINX. Nginx si sta configurando sempre più chiaramente come una valida alternativa ad Apache: sembra infatti che, benchmark alla mano, Nginx risulti molto più leggero e performante del famoso rivale che spesso e volentieri soffre di memory leak i quali possono causare un consumo di memoria piuttosto “imbarazzante”. Se poi Nginx viene utilizzato in abbinamento con PHP FPM (FastCGI Process Manager), una versione di PHP ottimizzata per siti a traffico elevato, allora la differenza con la classica configurazione Apache+PHP diventa sensibile!

Database : normalmente ci si appoggia a MySQL come DBMS standard, più raramente a PostgreSQL. Database relazionali destinati alla realizzazione di progetti molto ambiziosi grazie a feature come integrità referenziale, stored procedure, stored function, viste, triggers, transazioni ACID.
Qualora il vostro sito non faccia uso di queste funzionalità optate per un DBMS senza queste funzioni ma più veloce e performante come ad esempio Drizzle.
Se siete pigri per passare a Drizzle e l’applicazione web (o sito) non ha una business logic complessa e non avete bisogno dell’integrità referenziale e tutte le altre belle cosucce elencate prima limitatevi a utilizzare tabelle MyISAM di MySQL piuttosto che le più complete ma meno performanti InnoDB.
A livello di progettazione Database vale la pena ricordare che una progettazione ad-hoc è fondamentale per una buona performance dell’intero progetto. Dunque ottimizzare i tipi di dato in uso nella creazione del database, le giuste tabelle, eliminare le ridondanze, fare un buon uso di indici, partizionare le tabelle, ma sopratutto ottimizzare le query SQL. A volte la performance di una query ottimizzata può essere di oltre il 1000 % (mille avete letto bene).
Una meticolosa analisi in ambito di progettazione a partire da uno schema E/R corretto è d’obbligo.
Vale la pena ricordare che un corretto tuning delle variabili d’ambiente in my.cnf (il file di configurazione di MySQL) può portare a vantaggi tangibili (spesso addirittura notevoli) sopratutto all’aumentare delle richieste concorrenti.

Script server side : diamo per scontato che programmiate in PHP e che dunque gli script siano scritti bene, o se magari non l’abbiate scritti voi che comunque siano performanti, o che comunque performanti o non performanti che siano non avete la possibilità o la capacità per modificarli.
E’ bene sapere che esistono degli opcode cacher per PHP come APC o eAccelerator che possono far risparmiare importanti risorse nella fase di fetching del codice php. Sarebbe complesso e decisamente lungo da spiegare nel dettaglio ma vi basti sapere che in media con l’adozione di tali strumenti (gratis oltretutto) le prestazioni aumentano da un 50% fino ad oltre il 400%.

Qualora intendiate dunque ottimizzare le performance del vostro sito web o vogliate consulenza per la realizzazione di siti web ad alto traffico, contattateci. Siamo in grado di metter mano ad ogni aspetto del vostro webserver e aumentare sensibilmente l’efficienza del vostro server benchmark alla mano.