Second Life e i misteri del Maximum Bandwidth

Sull’opzione Maximum Bandwidth presente nel pannello Network della finestra di dialogo Preferences dei vari client di Second Life mi è capitato di sentirne di tutti i colori.

“Mettilo al massimo, così sarai più veloce”. “No, al minimo, così andrai più veloce”. “Lascialo coi valori di default, sarai velocissimo”. E chi più ne ha più ne metta. Quasi a nessuno viene in mente che un valore troppo grande provoca rallentamenti quanto uno troppo piccolo.

È una opzione un po’ misteriosa, e sembra che i “tweakers professionisti” vadano un po’ a caso. Che cos’è il maximum bandwith e cosa fa questo slider?

Per prima cosa, è necessario comprendere che Second Life è un sistema client/server: il vostro client preleva i dati da una serie di server nei data center Linden.

Il grosso delle comunicazioni fra il vostro client e i server va direttamente a un singolo server, quello che esegue la sim dove siete in questo momento, anche se la versione 2 del viewer cambia questo paradigma permettendo al viewer di scaricare direttamente le texture dall’asset store.

In un sistema client/server, il client (il viewer) pone una serie di richieste al server, che invia delle risposte di conseguenza. Il viewer gestisce il traffico e “ricrea il mondo” di Second Life, ma l’opzione Maximum Bandwidth non controlla tutto questo traffico. Proviamo a capire quali sono i pacchetti gestiti da questa opzione.

Geometry data

Questa geometria descrive la forma dei prim e degli avatar. Provate a selezionare Advanced > Rendering > Wireframe nel vostro client [1. faccio riferimento a Imprudence Experimental, ma questa opzione è presente in tutti i client.].

Vista in wireframe in Second Life

Vista in wireframe in Second Life

Quella che vedete è la geometria degli oggetti che costituiscono il luogo in cui siete, e la vostra scheda grafica crea il rendering 3D della scena da questi dati geometrici (coordinate 3D degli spigoli dei triangoli nella mesh) e mostra questa vista. Questa è una delle cose della scheda grafica che determina le performance in un mondo 3D. Semplicemente alcune schede grafiche sono più veloci di altre nel convertire i dati delle geometrie in forme. Spesso si misura questa performance in termini di quanti vertici per secondo possono essere renderizzati.

Texture Data

Un altro lavoro svolto dalla vostra scheda grafica è aggiungere le texture (immagini) alla scena ed “avvolgerle” sugli oggetti. È la normale visualizzazione in Second Life.

Control Data

I control data sono tutte le informazioni inviate in entrambi i sensi che riguardano posizione e movimento degli avatar, oggetti, luci e posizione della vostra telecamera. Questi dati vengono scambiati ogni volta che vi spostate o muovete la vostra telecamera o qualche altro avatar nella scena si sposta, o quando uno script provoca un movimento nella scena.

Elementi multimediali e voice non sono controllati da Maximum Bandwidth. Questi elementi sono gestiti da un sub-sistema completamente diverso dei client.

Che cosa fa lo slider Maximum Bandwidth?

Ci sono tante teorie al proposito, e qui ci si rifà a quelle di Joelfoner.com, che mi sembrano ragionevoli.

Dopo molte sperimentazioni e indagini, le certezze sono queste: quando utilizzate Second Life, impartite istruzioni al viewer in vari modi utilizzando tastiera, mouse, altri dispositivi di puntamento, dicendo al viewer cosa fare quando accade qualcosa. Queste azioni si riflettono in richieste che vengono inviate al (ai) server.

Alcune di queste richieste sono gestite da Maximum Bandwidth, altre no (approfondimenti nell’articolo sopra citato).

Lo scambio di dati è gestito in modo piuttosto sofisticato: l’impostazione attuale di Maximum Bandwidth viene inviata al simulatore, e indica quale si supponga che sia la banda massima di cui il viewer dispone per scambiare i dati. Non è un valore che viene misurato, il simulatore “si fida” di quello che dichiarate.

Il simulatore quindi assume che voi disponiate di quella banda, e gestisce lo stream dei dati verso il vostro client di conseguenza, con un flusso di dimensioni all’incirca pari o minore del valore indicato in Maximum Bandwidth. Se il viewer inizia a evidenziare pacchetti persi, il simulatore rallenterà per evitare di affogare il vostro client (il viewer) con i dati. Ma non è una scienza esatta, potrebbe iniziare a inviarne decisamente pochi.

A quanto andrebbe impostato Maximum Bandwidth?

Dipende dalla vostra connessione, ovviamente. Un metodo per stabilire con una qualche certezza questa dimensione, può essere misurare fisicamente la vostra banda con uno strumento come SpeedTest.net o analoghi. In genere, il numero che leggerete in “Download Speed” dopo il test è quello che potreste indicare come valore di Maximum bandwidth. Certo, a patto che non utilizziate la connessione contemporaneamente con altri programmi come browser, Skype, scambio di file, voice, audio e video, ecc. ecc.

Questo è particolarmente importante qualora disponiate di una connessione lenta o usiate una rete wi-fi.

Facendo i vostri test, ricordate che l’impostazione di un valore troppo alto rallenterà la vostra esperienza, provocando lag e malfunzionamenti poiché il numero di pacchetti persi diventerà rapidamente ingestibile (per controllare, selezionate Help > About > il vostro client. Fra le varie informazioni presenti c’è anche Packets Lost, ovvero la quantità di pacchetti persi).

È certamente di aiuto tenere aperto il pannello Statistic Bar, che trovate nel menu View, come spiegato in questo video (in cui però Torley ha un po’ sbragato secondo me, come qualcuno gli fa notare nei commenti).

Inoltre, provate ad usare anche WinMTR, una utility che vi permette di monitorare la connessione fra voi e il server su cui siete (potete conoscere l’indirizzo del vostro host leggendo le informazioni nel pannello About (menu Help). La situazione ideale prevede che la colonna Loss % contenga solo valori a 0.

Monitorare la connessione con WinMTR

Come già detto, ci sono diversi tipi di traffico gestiti dal viewer. Il viewer fa richieste ai server per ottenere dati, e l’opzione Maximum Bandwidth indica al server le dimensioni del flusso di dati gestibile dal vostro viewer per evitare di sovraccaricarlo. Questa impostazione determina grossolanamente la velocità a cui il server invia i dati al viewer, e così un valore troppo basso riduce le prestazioni del viewer stesso senza motivo, però uno troppo alto provoca lo stesso lag, a causa dei pacchetti persi [2. Alcuni consigli ed altri.]. Maximum Bandwidth dovrebbe essere inpostato al massimo possibile prima che il viewer inizi nuovamente a rallentare e a perdere pacchetti, o prima che i servizi multimediali o il voice si interrompano a causa di una bassa velocità di connessione.

Un altro aspetto da considerare è quello relativo alle vostre impostazioni TCP/IP sul sistema operativo e sul computer utilizzato. Prima di “dare la colpa” alla connessione o a Second Life, provate a usare qualche strumento come TCP Optimizer o leggete attentamente il post “Windows 7, Vista, 2008 Tweaks“.

È uno sforzo abbastanza inutile litigare col client se la vostra connessione non è ottimale, no?

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...