Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [howto] mod_bandwidth

  1. #1

    [howto] mod_bandwidth

    spero possa essere utile...
    codice:
    mod_bandwidth
    
    INTRODUZIONE
    
     Questo howto nasce dopo due giornate passate a navigare alla ricerca di un
    metodo per ridurre la banda in uscita del server web Apache, a livello di server
    e/o a livello di virtual host.
    Problemi con il modulo a parte, che hanno dilatato moltissimo i tempi necessari
    per avere una soluzione funzionante, questa soluzione risulta essere molto
    facile, ed a sua volta anche molto potente e versatile.
    
    Questo howto è improntato su Debian; nulla vieta, però, di adatarlo alle altre distribuzioni,
    visto che, in linea di massima, i passi da seguire sono gli stessi (le uniche
    cose che potrebbero variare sono le posizioni dei file di configurazione,
    script,...).
    
    
    INSTALLAZIONE
    
     Il modulo mod_bandwidth è installato di default insieme al server apache; lo
    possiamo trovare in /usr/lib/apache/1.3/.
     Se questo modulo dovesse dare problemi (esempi: non imposta correttamente la
    banda, ma sembra che i limiti che impostiamo siano visti come bit e non come
    byte, non accetta la direttiva MaxConnection), vi consiglio di reinstallarlo
    come descritto qui sotto.
    
    - rechiamoci sul sito del produttore: http://www.cohprog.com/mod_bandwidth.html
    e scarichiamo l'ultima versione (link diretto:
    ftp://ftp.cohprog.com/pub/apache/mod...od_bandwidth.c).
    
    - per potre compilare questo modulo, abbiamo bisogno del pacchetto apache-dev.
     Per installarlo è sufficiente dare:
    	# apt-get install apache-dev
    
    - ora siamo pronti per compilare:
    	$ /usr/bin/apxs -c mod_bandwidth.c -o mod_bandwidth.so
    
    - una volta pronto il modulo, eseguiamo i seguenti comandi:
    	# cd /usr/lib/apache/1.3/
    	# mv mod_bandwidth.so mod_bandwidth.so.bk
    	# mv /home/maxer/mod_bandwidth.so ./
    in questo modo abbiamo creato una copia del modulo precedente, se presente, e
    poi abbiamo spostato il modulo appena compilato nella cartella dei moduli di
    apache.
    
    
    CONFIGURAZIONE
    
     Ora configuriamo apache per utilizzare mod_bandwidth.
    - Aggiungiamo il modulo al file /etc/apache/modules.conf. Per fare questo
    abbiamo due possibilità:
     La prima è di modificare a mano il file, aggiungendo la seguente riga, alla
    fine
    del file:
    	LoadModule bandwidth_module /usr/lib/apache/1.3/mod_bandwidth.so
     La seconda è di utilizzare modules-config:
    	modules-config apache enable mod_bandwidth
    
     Creiamo le cartelle temporanee per mod_bandwidth:
    	# mkdir /tmp/apachebw
    	# mkdir /tmp/apachebw/master
    	# mkdir /tmp/apachebw/link
    	# chown -R www-data:www-data /tmp/apachebw
    	# chmod -R 775 /tmp/apachebw
    (ricordiamoci che è possibile che qualche script ripulica la directory /tmp,
    quindi cambiamo la posizione di queste cartelle con la direttiva
    BandWidthDataDir).
    
     Ecco fatto, ora con il seguente comando facciamo rileggere ad apache i file di
    configurazione:
    	# /etc/init.d/apache reload
    
     Bene, ora possiamo analizzare i parametri che di mette a disposizione
    mod_bandwidth.
    
    (Le descrizioni di seguito sono la traduzione libera + approfondimenti del
    manuale reperibile sul sito del traduttore)
    
    
    
    
    Direttive globali di configurazione:
    
    BandWidthDataDir
     Sintassi : BandWidthDataDir <directory>
     Default : "/tmp/apachebw"
     Contesto : server config 
    
     Imposta la directory in cui mod_bandwidth conserve i suoi file temporanei.
     All'interno di questa directory devono essere presenti anche le directory link
    e master; tutte queste cartelle devono essere scrivibili da apache (che in
    debian utilizza l'utente ed il gruppo www-data)
    
    
    
    BandWidthModule
     Sintassi : BandWidthModule <On|Off>
     Default : Off
     Contesto : per server config
    
    Abilita o disabilita il modulo.
    
    NOTA:
     Per utilizzarlo all'interno di un virtual host, è necessario inserire la
    direttiva `BandWidthModule On` all'interno del blocco del virtual host.
    Se viene attivato globalmente (cioè all'interno del file httpd.conf, fuori da
    ogni blocco), il modulo è attivo automaticamente in tutti i sottoblocci
    (Virtual Host, etc..)
    
    
    
    BandWidthPulse
     Sintassi : BandWidthPulse <microseconds>
     Default :
     Contesto : per server config
    
     Modifica l'algoritmo usato per calcolare la larghezza di banda e per
    trasmettere i dati. Nella modalità normale (obsoleta), il modulo cerca di
    tramettere i dati in pacchetti di 1Kb. Questo vuol dire che, se la banda
    disponibile è di 512B, il modulo trasmette 1Kb, aspetta 2 secondi, trasmette
    1Kb e così via...
     Impostando questa direttiva, verrà cambiato l'algoritmo in modo che il server
    aspetterà sempre lo stesso lasso di tempo, prima di trasmettere pacchetti, e la
    dimensione dei pacchetti varierà di conseguenza, così da rispettari i criteri
    indicati nelle altre direttive.
     Il valore è in microsecondi. 
     Esempio:
     Se viene impostato 
    	BandWidthPulse 1000000 #1 secondo
    ed è impostato un limite a 512B, il server trasmetterà 512B, aspetterà un
    secondo, trametterà 512B, aspetterà un secondo e così via.
    
    
    
    
    Direttive per la configurazione di Directory e/o VirtualServer: 
    
    BandWidth
     Sintassi : BandWidth <domain|ip|all> <rate>
     Default : none
     Contesto : per directory, .htaccess
    
     Limita la banda per i file contenuti nella directory e nelle sub-directory, in
    base alla provenienza (dominio, ip, all).
     Gli indirizzi IP possono essere specificati anche nel formato network/netmask
    (Es: 192.168.0.0/21)
     <rate> deve essere espresso in Byte/secondo. Impostato a "0" indica nessun
    limite di banda.
     Possono essere impostati più limiti per la stessa directory; in questo caso, è
    importante l'ordine con cui vengono inserite le direttive, in quando
    mod_bandwidth li scorre dal primo all'ultimo, fermandosi a quello che
    rispecchia la situazione
    
    Esempio :
     <Directory /home/www>
     BandWidth ecp.fr 0
     BandWidth 138.195 0
     BandWidth all 1024
     </Directory>
    
     In questo esempio, viene limitata la banda a:
    * nessun limite per gli appartenenti al dominio .ecp.fr e alla rete 138.195. ;
    * 1024Bytes/secondo per tutti gli altri.
    
    
    
    LargeFileLimit
     Sintassi : LargeFileLimit <filesize> <rate>
     Default : none
     Contesto : per directory, .htaccess
    
     Imposta un limite (<rate>) da usare quando si trasferiscono file di dimensioni
    uguali o maggiori a <filesize>
     E' possibile utilizzare più direttive per diverse dimensioni; anche in questo
    caso, se il parametro <rate> viene impostato a "0", non sarà impostato alcun
    limite (rimarrà, ovviamente, l'eventuale limite impostato in BandWidth). Se
    viene impostato a "-1", invece, saranno aboliti tutti i limiti (anche
    quelli impostati con la direttiva BandWidth) per i file la cui dimensione
    rispecchia quella direttiva.
    
    Esempio:
     LargeFileLimit 200 3072
     LargeFileLimit 1024 2048
     
     Queste direttive portano a questa situazione:
    * i file più piccoli di 200Kb, non verranno limitati da queste direttive (rimane
    attiva la direttiva BandWidth);
    * i file di dimensione compresa tra 200Kb e 1023Kb, saranno limitati a 3072Kb/sec;
    * i file di dimensione maggiore di 1024Kb, saranno limitati a 2048Kb/sec.
    
    
    
    MaxConnection
     Sintassi : MaxConnection <connections>
     Default : 0 (illimitate)
     Contesto : per directory, .htaccess
    
     Imposta il numero di connessioni massime che possono avvenire
    contemporaneamente.Una volta raggiunto il limite impostato, le nuove
    connessioni verranno rifiutate.
     Se impostato a "0" (valore di default) non saranno presenti delle limitazioni
    per quanto riguarda il numero di connessioni simultanee (se non quello
    impostato nelle direttive principali di Apache).
    
    
    
    MinBandWidth
     Sintassi : MinBandWidth <domain|ip|all> <rate>
     Default : all 256
     Contesto : per directory, .htaccess
    
     Imposta una banda minima per il trasferimento dei dati.  Questa direttiva può
    sovrascrivere le direttive BandWidth e LargeFileLimit, in quanto, in presenza
    di un numero elevato di connessioni, verrà garantita a tutte la larghezza
    indicata con questa direttiva, anche se il totale supererà i limiti.
     Il primo argomnto <domain|ip|all> è da usarsi come per la direttiva
    BandWidth. <rate> deve essere espresso in Byte/Secondo; se viene impostato a 0,
    verrà usato il valore di default (256).
    
    Esempio :
     Assumiamo la presenza delle seguenti direttive:
    	BandWidth all 3072
    	MinBandWidth all 1024
     
    e analizziamo i casi in base alle connessioni:
    * una connessione: velocità di trasferimento = 3072 Bytes/sec.
    * due connessioni: velocità di trasferimento = 1536 Bytes/sec.
    * tre o più connessioni: velocità di trasferimento = 1024 Bytes/sec.
     
     Se MinBandWidth è impostato a "-1" accade che:
    * se c'è solo una connessione, il file viene trasferito a 3072 Bytes/sec.
    * se ci sono una o più connessioni, ogni file viene trasferito a 3072
    Bytes/sec. La velocità non dipende più dal numero di connessioni, ma solo dai
    valori delle direttive.
    
     Ovviamente, la velocità di trasferimento totale non potrà mai superare la
    vostra larghezza di banda...
    
     NOTA: 
     Se ad una richiesta devono essere applicati sia un limite
    impostato nella direttiva "BandWidth" sia uno impostato nella di
    rettiva "LargeFileLimit", verrà applicato il più piccolo (ma mai minore a
    quello eventialmente indicato nella direttiva "MinBandWidth") .
    
    
    
    
    Eseguiamo Apache con mod_bandwidth:
     Per ottenere risultati, è importante che non ci siano dei link morti nella
    directory `link` di mod_bandwidth, quando viene eseguito avviato il server con
    il modulo attivo.
     Potrebbe essere una buona idea, a questo scopo, eseguire lo script
    `cleanlink.pl`, che provvede a rimuovere automaticamente i link morti.
    
    
    
    CONCLUSIONE
    
     Con questo modulo è possibile, in breve tempo e con la massima semplicità,
    ottimizzare la ripartizione della banda del proprio server web. Cosa
    fondamentale per non arrivare alla saturazione della banda, cosa che
    comporterebbe lentezza nelle risposte dei vari servizi e della navigazione su
    internet.
    
    Per errori, suggerimenti e altro... maxer@knio.it
    se avete delle correzioni e dei suggerimenti (spero ) postate pure


  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    1,157
    Io te lo uppo, magari i mod lo mettono fra i link utili

  3. #3

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.