Il QoS della Tophost a garanzia di ogni sito web

Dopo mesi di collaudo in semi-sordina, siamo lieti di annunciare che abbiamo completato il nostro sistema di Quality of Service attraverso il quale riusciamo a controllare in tempo reale l'utilizzo delle risorse hardware, onde evitare abusi di risorse con conseguenti rallentamenti generali a livello di server.

In questo modo, sebbene i siti web siano ospitati in modalita' condivisa denominata shared hosting, il nostro Quality of Service garantisce la disponibilita' di risorse hardware per ogni sito web, impedendo di fatto che un singolo sito web si ritrovi a rallentare o al peggio bloccare un intero server.

Il sistema e' totalmente automatico, controlla la situazione di ognuno in tempo reale ed apporta gli opportuni bilanciamenti solo a chi abusa delle risorse di sistema.


Come funziona nel dettaglio il sistema?

Vediamo come funziona il nuovo meccanismo di controllo delle risorse, ormai sperimentato e messo a punto al meglio.

Intanto ecco le differenze rispetto al semplice controllo del traffico.

  • non c'e' piu' un limite di traffico/mese, ne un conteggio settimanale dello stesso;
  • non si sono piu' rallentamenti al superamento di una determinata soglia ne ci sono piu' pagine di cortesia per il troppo traffico.


Questo ovviamente non significa che il "traffico sia illimitato", significa solo che in alcuni casi si possono raggiungere anche i 20-30GB/mese - ad esempio quando si effettua download puro di files - mentre in altri casi non si superano 1-2 GB/mese, ad esempio quando si utilizzano in modo massiccio ed esclusivo applicazioni come ad esempio il "php-stats".


Quali sono i parametri che vengono tenuti sotto controllo?

  • Numero di connessioni contemporanee e parallele ad uno stesso sito (max 30). Attenzione, questo parametro non indica il numero di utenti, significa, ad esempio che non di possono fare piu' di 20 download di un dato files contemporaneamente.
  • Numero di connessioni contemporanee ad un dato sito e provenienti da un unico IP (max 30). Eventuali proxy vengono riconosciuti automaticamente.
  • Numero di connessioni dirette a qualsiasi sito di un server e provenienti da uno stesso IP (max 50).

Se il numero di connessioni supera il massimo consentito scatta un "ritardo incrementale" sull'accept della connessione che se supera i 5 secondi produce una chiusura del canale TCP.

Sono state introdotti ulteriori controlli per garantire che un singolo file (ad esempio un qualsiasi file che viene scaricato da piu' utenti) non rallenti un intero sito web.

  • Limitazione della banda del download di un unico oggetto (per esempio un'immagine):
    - per i primi 100KByte: 2Mbps
    - massimo disponibile per i primi 100Kbyte per tutti i download di un dato sito: 10Mbps
    - per il resto dei dati oltre i primi 100 KByte: 256 Kbps
    - massimo disponibile per il resto dei dati oltre i primi 100 KByte per tutti i download di un dato sito: 1Mbps
  • Numero massimo di hits/secondo per contenuti non dinamici di uno stesso sito: 10 cps.
    Questo genere di controlli garantisce l'alta velocita' per un sito normale, mentre rallenta i grossi file, quindi filesharing, download di mp3, e via dicendo.
  • Numero di connessioni contemporanee e parallele ad uno stesso script - CGI o PHP - di uno stesso sito: max 8.
  • Numero massimo di hits/secondo per contenuti dinamici (CGI o PHP) di uno stesso sito:
    - 5 cps in condizioni di carico ottimale dei server
    - 2 cps in condizioni di carico alto del server
    Se il numero di connessioni per secondo (cps) supera il massimo consentito, scatta un "ritardo" sull'accept della connessione, proporzionale allo sforamento e se supera i 3 secondi produce una chiusura del canale TCP.
  • A completamento di cio' è attivo un meccanismo di shaping del database MySQL che inoltre consente un numero di connessioni simultanee massime di 8 utenti.



A chi giova questo QoS?

  • A tutti quelli che hanno siti "normali" e ne fanno un uso "normale" senza esasperare le chiamate al database, senza usare script (come le statistiche) che assorbono molte risorse ma non producono nessun risultato.

    Queste tipologie di utenti - la quasi totalita' dei nostri clienti - non si accorgeranno nemmeno della presenza del sistema di gestione delle risorse riuscendo a sviluppare un traffico anche di 10-20GByte mese e migliaia di visite/giorno.
  • Agli utenti che magari hanno un "picco di traffico" in pochi giorni per via di particolari eventi. In questo caso le limitazioni riguarderanno solo quei particolari giorni e per il resto del tempo (prima e dopo il picco) il sito sara' sempre veloce.



Chi penalizza?

  • Coloro che usano script mal programmati o con tempi di esecuzione elevati
  • Chi ha delle pagine che sono molto visitate e al contempo molto pesanti, sia come dimensione dei files che come uso di script e database
  • Chi ha bisogno di un hosting piu' "importante" per via del fatto che ha moltissimi utenti e visitatori
  • Coloro che utilizzano il sito per metterci script (magari vietati altrove) e li usano da siti esterni (ad esempio, immaginate un sito esterno molto trafficato residente su di un server dedicato ed il servizio di statistiche per detto sito residente su Tophost)
  • Coloro che fanno filesharing in maniera pesante.



In conclusione

Con questi accorgimenti ogni sito risulta controllato in modo indipendente, ed in questo modo riusciamo a garantire che le risorse hardware di ogni sito web non siano utilizzate da altri, una sorta di controllo evoluto delle risorse che rende - almeno sotto questo aspetto - il nostro "shared hosting" piu' simile ad un server virtuale.

Naturalmente la quantita' di risorse messe a disposizione per ogni singolo sito web rientra nella fascia di un prodotto low-cost, non e' mai stata nostra idea quella di offrire ad un prezzo irrisorio e fuori mercato un VPS, siamo tuttavia persuasi che con questo metodo possiamo dare il massimo possibile per questo tipo di prodotto.