|
|
Load Balance vs. Round Robin DNS
(38776 lectures)
Por Guillem Cantallops Ramis
Beowulf
(http://bulma.net/beowulf/)
Creado el 07/03/2002 19:13 modificado el 07/03/2002 19:16
|
Federico Edelman Anaya nos ha mandado a la lista de correo este mensaje que más que eso es un artículo, está tan trabajado que creo que merece la pena que lo veais... no lo resuelve todo, pero eso es lo mejor, plantea preguntas interesantes. | Pagina1/1 |
Nota: si quereis mandar vuestros propios artículos o sugerirnos temas, enlaces, etc., podeis hacerlo. Recuerdo que hace poco alguien mandó algunas sugerencias. Yo personalmente no les hice caso porque no tenia tiempo y creo que pasó lo mismo con los demás autores/editores de Bulma porque al final no se ha publicado nada de eso O:-) pero si quereis insistir os prometo que esta vez estudiaremos detenidamente todas vuestras propuestas. Ya sabeis: en la columna izquierda, el enlace que dice "¿Sugerencias?" es todo vuestro :-)
Load Balance vs. Round Robin DNS
--------------------------------
Introducción:
Este texto surgió a partir de una investigación que realicé para
encontrar algún software OpenSource que permitiera realizar Load Balance. Ya
que las alternativas comerciales como los BigIP de F5 son realmente costosas
y no iba a necesitar todos los features que F5 provee o muchos de ellos
pueden ser suplantados por el Packet Filter de OpenBSD. No quiero desviarme
de tema, ni quiero generar una disputa sobre lo que acabo de mencionar :)
simplemente quiero compartir la experiencia que llevé a cabo y que hoy me
permite balancear la carga del pool de unos cuantos servidores que
administro.
Las pruebas fueron realizadas para comprobar la efectividad del software
de Load Balance
OpenSource llamado "pen". Se repitieron multiples veces las mismas pruebas a
fin de comprar las posibles variaciones de los resultados. No hubo
variaciones significativas por lo que se tomaron los resultados de las
pruebas últimas. Todas las pruebas fueron realizadas en una LAN local.
Hardware utilizado:
+ Web Server 1 (172.16.4.1): Pentium III 450 Mhz RAM 128 MB
(Linux Debian 2.2rev3 Kernel 2.4.13)
+ Web Server 2 (172.16.4.2): Sun Netra t1 440 Mhz RAM 256 MB
(Solaris 7 + 7 Recommended)
+ Stress Server (172.16.4.3): Pentium III 450 Mhz RAM 128 MB
(Linux Debian 2.2rev3 Kernel 2.4.13)
Software utilizado:
- Web Servers: apache 1.3.19 + php-4.0.6.
- DNS: Bind 8.2.3-REL-NOESW
- Stress Application: ab from apache
- Load Balance: pen-0.6.1
Pruebas:
Paso 1:
a- Se creó un Round Robin DNS "rr.dominio.com" que apuntará a las IP de
webserver1 y webserver2.
-------- snip snip ----------
rr.dominio.com IN A 172.16.4.1
IN A 172.16.4.2
-------- snip snip ----------
b- Se creó un entrada DNS "lb.dominio.com" para el Load Balance.
-------- snip snip ----------
lb.dominio.com IN A 172.16.4.3
-------- snip snip ----------
Paso 2: El Load Balance Server se ejecutó:
# ./pen -w pen.html -p pen.pid -l pen.log 8080 -r webserver1:80
webserver2:80
Paso 3: Se configuró un index.php en cada Web Server con el siguiente
contenido:
------ snip snip ------
<?
print "this is a test ...";
print "webserverX";
>>
------ snip snip ------
Paso 4: Se ejecutó desde el Stress Server el siguiente comando:
a- Prueba de Round Robin:
# ./ab -n 1000 -c 100 "http://rr.dominio.com/index.php"
b- Prueba de Load Balance:
# ./ab -n 1000 -c 100 "http://lb.dominio.com:8080/index.php"
Resultados:
Los resultados de las pruebas fueron los siguientes:
a- Round Robin test:
------------------- snip snip --------------------
Benchmarking rr.dominio.com (be patient)...
Server Software: Apache/1.3.19
Server Hostname: rr.dominio.com
Server Port: 80
Document Path: /index.php
Document Length: 22 bytes
Concurrency Level: 100
Time taken for tests: 4.268 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 283898 bytes
HTML transferred: 22000 bytes
Requests per second: 234.30
Transfer rate: 66.52 kb/s received
Connnection Times (ms)
min avg max
Connect: 0 1 15
Processing: 23 403 1110
Total: 23 404 1125
------------------- snip snip --------------------
b- Load Balance test:
------------------- snip snip --------------------
Benchmarking lb.dominio.com (be patient)...
Server Software: Apache/1.3.19
Server Hostname: lb.dominio.com
Server Port: 8080
Document Path: /index.php
Document Length: 22 bytes
Concurrency Level: 100
Time taken for tests: 2.502 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 238443 bytes
HTML transferred: 22000 bytes
Requests per second: 399.68
Transfer rate: 95.30 kb/s received
Connnection Times (ms)
min avg max
Connect: 0 2 43
Processing: 5 23 139
Total: 5 25 182
------------------- snip snip --------------------
Conclusión:
- Se puede observar que el transfer rate es mayor en el Load Balance.
- Los Request per second fueron mayores en el Load Balance.
- La prueba fue realizada en menos tiempo para el Load Balance.
- Abrió más rapido las conexiones más rápido para el Round Robin, pero fue
más lento el procesamiento y el total.
El algoritmo de Round Robin traduce una IP para un nombre de dominio de un
conjunto de IPs. La asignación es secuencial otorgando la primera IP a la
primera consulta, la segunda IP a la segunda consulta, la tercer IP a la
tercer consulta y una vez concluidas la cantidad de IPs se vuelve a asignar
la primer IP a la consulta que le sigue, la segunda IP a la consulta
posterior y así sucesivamente repitiéndose el ciclo.
Sin embargo, Bind pareciera no respetar este mecanismo, ya que traduce las
IPs siguiendo otra metodología a la explicada en el parrafo anterior.
(Alguien que explique esta incógnita) :)
Esto supone que es por eso que conecta más rápido, ya que no tiene que pasar
por el TCP proxy (pen). Y probablemente los Web Server recibieran una
cantidad diferente de carga (no pareja), con lo cual a medida que aumentan
las conexiones concurrentes el servidor responde más lento.
En definitiva, mi conclusión es que el pen permite distribuir de manera
mucho más pareja la carga, y en caso de que alguno de los servidores o
servicio (en este caso HTTP) no estuvieran corriendo, nunca el pen
intentaría rutearles conexiones evitando que el usuario se encuentre con un
error de conexión evidente. Es por ésto que pienso que es altamente superior
el balanceo de carga mediante pen que mediante Round Robin DNS from Bind8.
En el tintero:
Lo que no conozco es cómo se comporta pen en cuanto a la seguridad. Si es
posible realizar spoofing, DoS attack, o cualquier otro tipo de ataques que
afecten el servicio.
Ojo!, por este motivo no estoy de acuerdo con que el Round Robin DNS de
Bind sea mejor, ya que Bind contiene numerosos bugs y agujeros de seguridad.
En todo caso tomaría como alternativa utilizar djbDNS
http://cr.yp.to/djbdns.html
Propongo realizar algún tipo de investigación de pen, tanto del código
como si alguien ha reportado algún tipo de problemas con su utilización. Por
mi parte, ya me encuentro investigándolo :)
References:
- http://siag.nu/pen/
- http://www.isc.org/products/BIND/
Federico Edelman Anaya
fedelman@claxson.com
federico_edelman@yahoo.com
System Administrator / Network Administrator
|
|
|
|
|
|
Comentarios Es posible que se hayan omitido algunos comentarios considerados poco constructivos
| 1. Re: Load Balance vs. Round Robin DNS (08/03/2002 01:31, #5122) Por: El cobarde anónimo (http://www.squirrelmail.org) |
Excelente, gracias por el árticulo.
Quiza no podía haber dado una mejor idea de la carga que pueden soportar los servidores si hubieras echo las pruebas en lugar de contra una sencilla página contra un portal en php nuke o slashcode que los servidores tuvieran que hacer algunas consultas mysql.
Claro que entonces no podrías sacar conclusiones tan claras sobre el balanceo de carga, que es realmente lo que te interesa.
Pero bueno hay queda la sugerencia. |
|
2. Re: Load Balance vs. Round Robin DNS (10/03/2002 15:02, #5143) Por: El cobarde anónimo |
Se echa de menos que en la comparativa estuviese el rendimiento de un solo servidor, para así ver cómo mejoran el rendimiento esos otros dos sistemas de balanceo de carga.
Si se pudiese añadir, sería perfecto.
De todas formas, muy interesante el artículo. Seguid así :-) |
|
3. Re: Load Balance vs. Round Robin DNS (28/02/2004 18:08, #19964) Por: Anónimo |
| Me parece que el autor no tiene en cuenta que el servidor de stress cachea la respuesta del DNS, por lo que todas las peticiones van al mismo servidor web. |
|
4. Re: Load Balance vs. Round Robin DNS (30/06/2005 19:17, #27314) Por: KikoV (http://www.kikov.org) |
JUAS, en eso mismo estaba pensando yo...
Realmente, si esto es así, el incremento de rendimiento al utilizar DNS RR es BRUTAL!!!... usando 1 solo servidor consigue mucho mas de la mitad que de usar 2 servidores!!!
xDDD
alguien puede confirmar esto?
|
|
|
5. Re: Load Balance vs. Round Robin DNS (26/11/2004 04:35, #24476) Por: Santiago |
| Muy bueno el documento, es introductorio. Quisiera preguntarle al autor porque utilizo pen y si conoce LVS. |
|
6. Re: Load Balance vs. Round Robin DNS (28/03/2005 04:06, #25933) Por: Augustino |
| ¿Y que´pasaria si el servidor de stress no esta disponible?
Alguien conoce el metodo de ruteo de InterNap?
Saludos |
|
7. Re: Load Balance vs. Round Robin DNS (18/08/2006 15:18, #34407) Por: Anónimo |
| no entendi una mierda que pelotas |
|
|
|
|
|---|
|
|
|
|
Calificacion
    Vots: 21 |
Danos tu opinion:
|
|
|
|
|
|
|
|