10 lug 2017

Come dimensionare l'hardware dello streaming server ? 4 consigli utili - Parte 1


Dimensionare l’hardware di server multimediali in streaming può essere un processo difficile.

Quando si chiede ai clienti la quantità di potenza del server desiderata, di solito ci si sente rispondere ”il meno possibile” oppure “il tanto che basta per svolgere il lavoro”.

Questa incertezza è comprensibile; non si vuole spendere troppo, ma nemmeno ci si vuole limitare.
Comunque, queste risposte sono sempre poco definite proprio per l’imprevedibilità dell’esigenza di risorse in uno streaming-video.

Se si utilizza Wowza Streaming Engine, non c'è limite al numero di flussi che si possono transcodificare e distribuire - ma allo stesso tempo si è limitati dall'hardware del server e dalla larghezza di banda offerta dal provider di hosting o dal centro dati.

Allora come si stabilisce la quantità di potenza necessaria quando si seleziona un server multimediale?

Anche se molti fattori giocano un ruolo importante, ci sembra fondamentale considerare la questione del bilanciamento di due vincoli:
  • la larghezza di banda di rete 
  • la capacità di elaborazione
In casi in cui si dispone di un elevato numero di fonti - e quindi di un gran numero di stream - questi vincoli possono diventare in men che non si dica una vera e propria strettoia nella distribuzione di video in streaming.

Abbattere i limiti di larghezza di banda e l'esaurimento della memoria sono due modalità molto comuni con cui i server abbattono la capacità massima durante lo streaming.

Fotunatamente, ci sono scelte migliori da adottare per evitare il sovraccarico dei server.

Ecco quattro suggerimenti che ti aiuteranno a scegliere l'hardware del server multimediale per soddisfare al meglio le tue esigenze di streaming.

1. Determinare il numero di stream in entrata e come saranno assemblati

La capacità di elaborazione di un server è influenzata dall’unità di elaborazione centrale (CPU-> central processing unit) e dalla memoria disponibile (memoria di accesso casuale, o RAM->random access memory).


Wowza Streaming Enginee
Wowza Pro Pack

Acquista ora

Acquista ora


Per evitare sovraccarichi causati dalle limitazioni della capacità di elaborazione, hai bisogno di sapere quanti stream il server dovrà elaborare simultaneamente, e quanta memoria verrà richiesta.

1.1 Quanti stream devi transcodare?

Non tutti i compiti di elaborazione richiedono la stessa quantità di potenza di elaborazione.

Dopo aver individuato il numero di stream in entrata che il server dovrà gestire, dovresti identificare come programmare di assemblare gli stream per la consegna.

Le attività di codificazione e transcodificazione dei media riguardano i processi intensivi della CPU.

Per esempio, facendo funzionare Flash Media Live Encoder (FMLE) in un ambiente desktop consumi fino all’80% di una singola CPU.

Comunque la quantità di CPU necessaria per le attività tradizionali di transcodifica varia. "Transcodifica" può riferirsi sia a modificare i codec (ad esempio, la conversione VP8 in H.264) o a trascrivere un flusso per il bitrate adattivo o la consegna "ABR" (ad esempio, la conversione di un singolo flusso bitrate in quattro versioni/rendition).

Mentre entrambi consumano CPU, il transrating di flussi per la consegna ABR ne userà molto di più. Al contrario, a volte un flusso di lavoro richiede solo un flusso da trasmutare (ad esempio, convertire un singolo flusso RTMP in HLS). Si chiama "elaborazione passthrough" – ed è un compito che richiede molto meno CPU per packaging.

Se devi transcodificare diversi flussi per la consegna ABR, hai bisogno di un server con maggiore capacità di elaborazione. Il numero di stream che un determinato server può transcodificare varia in modo significativo.

2.1 Di quanta memoria hai bisogno?

La memoria consumata durante i processi di ingest e packaging corrisponde in genere al numero totale di connessioni di flusso in entrata, che sono visibili come processi Java. Più fonti e flussi in entrata ci sono, maggiore sarà la capacità di elaborazione richiesta dal server.

Come parte dell'installazione di Wowza Streaming Engine, la versione del server necessaria di Java Runtime Environment (JRE) viene installata automaticamente. Alcuni utenti di hardware legacy riferiscono che JRE limita l'utilizzo di RAM a 8 GB, comunque le moderne installazioni hardware dovrebbero essere in grado di gestire fino a 16 GB.

L'impostazione predefinita in Wowza Streaming Engine è di 10 GB, ma questo valore può essere modificato in XML, fino a un massimo di 16 GB per ogni istanza. Spingere la configurazione RAM a 32 GB è di solito sufficiente per ospitare un gran numero di fonti di ingresso.

2. Stima i flussi simultanei di picco dal server

Mentre il rapporto tra il bitrate di flusso e la larghezza di banda è praticamente lo stesso per l'entrata e l'uscita ingest and egress, la parte in uscita diventa un po' più impegnativa. Perché? Non facile indovinare il numero di utenti che ti seguiranno, o sapere il numero di riproduzioni che vorranno visualizzare.

Per evitare sovraccarichi legati alla larghezza di banda, stima la massima larghezza di banda in uscita che il server dovrà gestire.

Ecco un esempio di utilizzo per guidarti lungo il processo:

Stima dei flussi di picco simultanei

Supponiamo che utilizzi un data center che fornisca una capacità di trasmissione massima di 2 GB / s. Secondo la nostra regola dell'80% come già detto precedentemente, dovresti pianificare per una larghezza massima di 1,6 GB / s.

Per capire quanti flussi si possono inserire in un pipe da 1,6 GB / s, dovresti stimare innanzitutto la media dei flussi in uscita verso gli utenti. Da notare che la risoluzione del flusso dell’utente medio può essere diversa dalla risoluzione del flusso di origine. Se stai transcodificando il flusso di origine in un rendimento più piccolo, gli utenti potrebbero vedere un flusso del 40 per cento più piccolo della sorgente di flusso (quando si tratta di flussi in uscita, siamo più interessati alla dimensione del flusso dell’utente medio).

Supponendo 30 fotogrammi al secondo, ecco alcune buone linee guida per le dimensioni del flusso:



Utilizzando la media del flusso del visualizzatore che hai determinato, ora puoi stimare i requisiti di larghezza di banda. A tal fine, basta moltiplicare il bitrate del flusso per il numero massimo di flussi:

Stream bitrate * numero di flussi simultanei di picco <80% della larghezza di banda totale disponibile

Continuando con l’esempio, ecco alcuni scenari per le connessioni di picco, considerate le diverse dimensioni di flusso di un visualizzatore medio:



Fa presente che devi anche tenere conto della larghezza di banda in entrata. Mentre ciò consisterà in genere in una piccola percentuale dei flussi contemporanei totali, in scenari con un gran numero di trasmissioni one-to-one o uno a pochi, la larghezza di banda per i flussi in entrata può in realtà aumentare.

Infine, se il calcolo dimostra che la larghezza di banda del server è insufficiente, puoi utilizzare una rete di distribuzione dei contenuti (CDN), come Wowza CDN, per fornire flussi a qualsiasi dimensione di pubblico. La funzionalità di Stream Targets ti consente di spingere un singolo flusso o un gruppo di trasfigurazioni stream transcodificati da Wowza Streaming Engine a Wowza CDN verso qualsiasi numero di visualizzatori.

La seconda parte del post sarà pubblicata domani.
Se ti piace questo post ti basta un click per condividerlo
Condividi su Google Plus Vota su OKNotizie

Nessun commento:

Post più popolari

ARCHIVIO POST