Está en la página 1de 4

Controlar el ancho de banda con Squid y delay pools

8 comentarios
Una de las caractersticas de Squid cache proxy ms tiles en nuestros entornos es el
soporte para delay pools, esta permite administrar, racionalizar y controlar el
ancho de banda disponible en nuestros enlaces. Sin embargo, muchas veces es mali
nterpretado y se hace un mal uso provocando cuellos de botella e insatisfaccin en
los clientes. A continuacin un intento de explicar y describir el uso de esta im
portante caracterstica.
Trminos
pool: es una coleccin de buckets.
bucket: representa el trfico asignado que se rellena cuando alcanza una tasa (lmit
e) y que causa que el trfico se demore cuando est vaco.
class 1: clase de delay pool que contiene un solo bucket colectivo que se usa pa
ra todas las solicitudes de los hosts que estn dentro del pool.
class 2: clase de delay pool que contiene un bucket colectivo y 255 buckets indi
viduales, uno para cada host en una red IPv4 clase C.
class 3: clase de delay pool que contiene un bucket coletivo, 255 buckets para l
as subredes en una red de 16-bits y buckets individuales para cada host en estas
redes IPv4 clase B.
Parmetros del delay pool
Cada delay pool contiene parmetros que se definen por el tag
siguiente forma:

delay_parameters de la

delay_parameters pool bucket-colectivo (para delay pools de clase 1)


delay_parameters pool bucket-colectivo bucket-individual (para delay pools de cl
ase 2)
delay_parameters pool bucket-colectivo bucket-red bucket-individual (para delay
pools de clase 3)
Los valores del parmetro del delay se escriben velocidad/velocidad mxima y se espe
cifican en kilobytes por segundo. El primer valor se usa para la velocidad de la
descarga normal y el segundo la velocidad en la que comenzar a ralentizarse la p
eticin. Si se desea dejar la mxima velocidad disponible se especifica el valor -1.
Se recomienda que el valor de la velocidad mxima sea al menos el doble del valor
de la velocidad de descarga.
Definicin de delay pools
Los delay pools se define de la siguiente forma:
delay_pools [cantidad de delay pools]
delay_class [nmero del delay pool] [clase del delay pool]
delay_access [nmero del delay pool] [ACL]
delay_parameters [nmero del delay pool] [velocidad/velocidad mxima]
Ejemplo:
delay_pools 1
delay_class 1 1
delay_access 1 allow all
delay_parameters 1 32000/64000
Este delay pool consiste en un solo delay pool de clase 1 que ser aplicado a todo
s los clientes y que tendr como velocidad de descarga asignada 32 Kbytes por segu
ndo y una velocidad mxima de 64 Kbytes por segundo.

Situaciones hipotticas
Situacin:
Contamos con un enlace de 512 Kbps y queremos usar solo la mitad para la navegac
in a travs del proxy y reservar la otra para otros servicios.
Solucin:
delay_pools 1
delay_class 1 1
delay_access 1 allow all
delay_parameters 1 32000/32000
Explicacin:
Se utilizar un solo delay pool de clase 1 y todos los clientes son afectados por
este. Los parmetros 32000/32000 significan que el lmite es 32 kbytes por segundo (
512000/2/8). En esta situacin se utiliz una clase 1 porque todos los clientes entr
an en un mismo bucket utilizando el ancho de banda disponible, una vez que el bu
cket se vace (no quede ancho de banda disponible) el cliente que haga solicitudes
en este estado se ver afectado.
Situacin:
La misma que la anterior pero queremos aplicar el delay pool en el horario de 8:
00 a.m. y 5:00 p.m. de lunes a viernes.
Solucin:
acl horario-laboral time MTWHF 08:00-17:00
delay_pools 1
delay_class 1 1
delay_access 1 allow horario-laboral all
delay_parameters 1 32000/32000
Donde: M (lunes), T (martes), W (mircoles), H (jueves) y F (viernes)
Una vez terminado el horario laboral, el ancho de banda se podr usar indiscrimina
damente por cualquier cliente.
Situacin:
Contamos con un enlace de 2 Mbps y queremos asignarle 512 Kbps a un grupo y 256
Kbps a otro sin importar cmo usen el ancho de banda los clientes individuales de
cada una de ellos y reservar el ancho de banda restante para otros servicios.
Solucin:
acl grupo1 src 192.168.0.11-192.168.0.30
acl grupo2 src 192.168.0.31-192.168.0.60
delay_pools 2
delay_class 1 1
delay_class 2 1
delay_access 1 allow grupo1
delay_access 1 deny all
delay_access 2 allow grupo2
delay_access 2 deny all
delay_parameters 1 64000/64000
delay_parameters 2 32000/32000

Explicacin:
Se definen las ACLs de tipo source para definir cules sern los grupos afectados po
r cada delay pool, cada delay ser de clase 1 ya que no importan los clientes indi
viduales.
Situacin:
Contamos un enlace de 512 kbps y queremos usar la mitad para la navegacin y que c
ada usuario pueda descargar a 8 kilobytes por segundo con rafagas de 16 kilobyte
s.
Solucin:
delay_pools 1
delay_class 1 2
delay_access 1 allow all
delay_parameters 1 32000/32000 8000/16000
Explicacin:
Se utilizar un bucket colectivo de 32 Kbytes por segundo y cada cliente podr desca
rgar a una velocidad de 8 Kbytes por segundo con rfagas de hasta 16 Kbytes. En es
te caso particular es interesante el uso de rfagas porque este valor casi siempre
afecta a las descargas de archivos grandes y no pequeos como archivos html, css,
jpg, etc, por lo tanto aquellos usuarios que estn navegando sin descargar un fic
hero relativamente grande, la velocidad de respuesta ser un poco ms rpida sin afect
ar el ancho de banda, ya que son rfagas en intervalos bien cortos.
Un buen uso de delay pools de Squid cache proxy asegura una mejor administracin,
control y racionalizacin del ancho de banda de nuestras redes, tratando de satisf
acer las necesidades de los usuarios que hacen uso de este servicio. Les propong
o una investigacin ms exahustiva y una experimentacin personal para lograr dominar
esta importante caracterstica.
Notas
Existen hasta cuatro clases de delay pools, en esta entrada solo se trataron las
dos primeras clases por ser las ms comunes en mi entorno de red.
Referencias
Squid cache proxy wiki, delay pools
Documentacin de Squid cache proxy, delay class
Documentacin de Squid cache proxy, delay parameters
Publicado en Tutoriales acerca de proxy, squid
Comentarios desactivados
JP 2 aos atrs
hola, muy bueno el post pero tengo una duda.
Como hacer para que un grupo descargue ciertas extenciones (ej iso, avi, etc) a
una velocidad pero si el archivo se pasa de X tamao lo limite a otra velocidad pero
si los archivos estan en mi red que no le aplique la delay_pools y que otro gru
po no tenga esa restriccin ??
Salu2s
oneohthree 2 aos atrs
@JP
La primera interrogante no creo que se pueda resolver, la segunda puedes especif
icar una ACL de tipo dst_domain a las que no apliques los delay_pools, por ejemp
lo:

acl misdominios dst_domain .dominio.cu y en el delay pool agregar delay_access 1


allow all !misdominios
JP 2 aos atrs
ok thanks, al menos de 2 uno pa 500 de averaje jejejeje
Salu2s
oneohthree 2 aos atrs
@JP
Realmente la primera situacin no creo que se resuelva directamente con Squid. Reso
lviste la segunda con la sugerencia?
yaniel 2 aos atrs
cuando uso las delay pools el sevidor se me pone lento de tal manera que no pued
o usarlas
tengo la version squid3
otra cosa que veo que cuando las aplico consume demasiado y cuento con un 1 GB d
e ram
que puedo hacer.
y kiero usarlas
y mi conexion es de 128
oneohthree 2 aos atrs
@yaniel
Tengo entendido que algunas revisiones de la versin 3 de Squid tienen problemas c
on los delay pools, uso la versin 2 por cuestiones personales.
Wintch 2 aos atrs
Muchas gracias por el articulo!
Limitar por horario es un golazo!
alfredo 2 aos atrs
Saludos Jp en respuesta a lo que habias preguntado que te dijeron no era posible
ps es posible solo en parte, ya que puedes limitar la velocidad de descargas de
ciertos archivos (iso,avi,etc)que requieras y tambien puedes identificar el tam
ao de los archivos a descargar y establacer bloqueo en archivos mayores a la cant
idad que desees aca te dejo un enlace para que le estudies y veas que puedes usa
r lo unico es que esta en ingles pero creo que ese problema lo solventa nuestro
amigo google http://www.squid-cache.org/Doc/config/reply_body_max_size/

También podría gustarte