Está en la página 1de 14

Kernels y distribuciones Linux

Pablo Hinojosa Nava Diego Ojeda Garca

ndice de contenido
Objetivos...................................................................................................................................... 3 Benchmarks y mtricas................................................................................................................ 4 Informacin del equipo................................................................................................................. 5 Distribuciones y Kernels utilizados...............................................................................................6 Parmetros que pueden afectar...................................................................................................7 Resultados................................................................................................................................... 8 Conclusiones............................................................................................................................. 12 Referencias................................................................................................................................ 14

Objetivos
Esencialmente los objetivos de este trabajo se han centrado en la comparacin en base a los 2 elementos esenciales de un sistema operativo basado en Linux: el kernel y la distribucin. Aunque el cdigo fuente del kernel utilizado siempre es el mismo, nosotros hemos optado por compilar mediante las herramientas make (menuconfig | xconfig | config) nuestra propia versin de un kernel. No solo queremos comparar si es mejor un compilado o uno genrico, sino tambin queremos valorar si merece la pena la inversin de conocimiento y tiempo que tenemos que hacer para realizar una compilacin correcta y satisfactoria. Por otro lado lado hemos querido evaluar varios aspectos sobre las distribuciones. Vamos a comparar tanto dentro de una misma distribucin la variacin de rendimiento entre versin de escritorio (desktop) y versin para servidores (server), como la diferencia de rendimiento entre una versin aparentemente limpia y sin utilizar respecto a otra versin ms preparada para un uso normal con los programas y servicios bsicos. Aunque podramos haber realizado una infinidad de pruebas para medir cada uno de los parmetros que pueden afectar al rendimiento de un ordenador, hemos preferido centrarnos en cmo se comporta cada configuracin ejecutando un servidor apache, as como la velocidad de entrada y salida a disco (cuello de botella de los sistemas de estos ltimos aos).

Benchmarks y mtricas
Para medir las prestaciones de cada configuracin, hemos llevado a cabo dos pruebas de rendimiento centradas en nuestros 2 objetivos principales: el rendimiento de un servidor apache y la velocidad de entrada y salida del disco duro.

Apache Benchmarks (AB).


Es una herramienta diseada para medir el nivel de concurrencia de un servidor Apache Muestra cuantas peticiones por segundo puede procesar el servidor. Uso: ab -n <numero de iteraciones> -c <peticiones por iteracin> http://localhost/index.html En nuestro caso el nmero de iteraciones es 10.000 y las peticiones por iteracin 100. Mtricas -Tiempo total en segundos (menos es mejor) -Peticiones por segundo (ms es mejor) -Tiempo por peticin en milisegundos (menos es mejor) -Tasa de transferencia en Kbytes/segundo (ms es mejor)

hdparm
Proporciona una interfaz en linea de comandos para ver y ajustar los parmetros del disco duro. La opcin -t ejecuta un test de lectura del disco duro sin hacer uso de la cach. Uso: hdparm -t <dispositivo> Mtricas: -Tasa de transferencia en Mbytes/segundo (ms es mejor) Para que los datos de las pruebas fuesen lo mas exactos posibles evitando cargas puntuales en el sistema, hemos realizado el test ab 30 veces, y el hdparm 10 veces. Tambin nos hemos asegurado que, una vez hecho el test y recopilados los datos, la desviacin tpica de ellos no fuese muy significativa. Esto nos indica que todos los test han sido realizados bajo condiciones similares.

Informacin del equipo


Las pruebas de rendimiento han sido realizadas sobre un equipo con las siguientes caractersticas:

Placa base:
Fabricante:MICRO-STAR INTERNATIONAL CO.,LTD Modelo: MS-7502

Microprocesador:
Intel(R) Core(TM)2 Duo CPU Socket 775 Arquitectura de 64 bits. E4700 @ 2.60GHz

Memoria Ram:
6 GB DDR2

Disco duro:
Fabricante: Western Digital Interfaz: SATA Velocidad de rotacin: 7200 rpm Capacidad: 640GB

Apache:
Apache2 versin: 2.2.22

Distribuciones y Kernels utilizados


Distribuciones:
-Ubuntu Server 12.04: Es una distribucin de Ubuntu dedicada a servidores y de cuyo soporte se encarga Canonical. -Ubuntu Desktop 12.04: Es la distribucin ms conocida de Ubuntu, y la que cualquier usuario instala en su ordenador. -Arch Linux: Es una distribucin poco conocida basada en el principio KISS (Keep It Short and Simple); es una versin ligera y sin aadidos innecesarios de base, lo que hace de ella una buena opcin para usuarios experimentados que quieren un sistema personalizable a la par que potente. En la distribucin que utilizamos no instalamos ningn entorno grfico para obtener los mejores resultados posibles.

Kernels:
-Linux 3.2.0: Es el Kernel incluido por defecto en las dos versiones de Ubuntu que hemos utilizado. -Linux 3.3.7: Es el Kernel incluido por defecto en Arch Linux. -Linux 3.3.7 propio (versin win y fail): -Versin fail: Es una compilacin que pretenda ser total y absolutamente optimizada para el ordenador utilizado. Se configur de la siguiente manera: -Optimizado para la familia Core 2 Duo. -Eliminados sistemas de archivos que no iban a ser utilizados. -Eliminado el sonido. -Eliminados los controladores de red innecesarios. -Eliminados los controladores para joysticks, gamepads... -Eliminados los controladores para hardware innecesario. Tras todos estos cambios, sorprendentemente el Kernel que obtuvimos dio lugar a los peores resultados de todos. -Versin win: Es una compilacin mucho menos elaborada que la anterior, solamente optimizamos el Kernel para la familia Core 2 Duo. sta compilacin tan bsica ha sido la que ha obtenido mejores resultados de rendimiento en las pruebas realizadas.

Parmetros que pueden afectar


En realidad, los parmetros que pueden afectar a las pruebas de rendimiento son innumerables, algunos a destacar son los siguientes:

-Velocidad de internet:
Debido a que las pruebas se realizan sobre un servidor http, el resultado de stas puede estar determinado por la velocidad de conexin a internet de la que dispongamos en el lugar en que realicemos las pruebas. En nuestro caso ste parmetro no afecta a los resultados obtenidos, ya que todas las pruebas han sido realizadas con un equipo en una red local (las pruebas han sido realizadas a la URL: http://localhost/index.html

-Carga del sistema:


Si las pruebas de rendimiento no se han realizado en un equipo recin arrancado los resultados pueden ser falseados, ya que se pueden estar ejecutando programas externos a las pruebas que estemos llevando a cabo. Nosotros nos hemos asegurado de realizar las pruebas nada ms arrancar el ordenador.

-Diferencia de versiones y configuraciones de los programas:


Si las pruebas de rendimiento se ejecutan sobre distintas versiones de un mismo programa, los resultados pueden salir falseados. De los tres problemas que hemos descrito, este podra ser el ms difcil de detectar, ya que no es algo que tengamos tan presente como la velocidad de internet o la carga del sistema, pero no por ello es menos importante. En nuestro caso nos hemos asegurado de que todas las pruebas han sido realizadas con la versin 2.2.22 de Apache2.

-Pgina que sirve el servidor:


Dependiendo del tamao de la pgina web que sirva el servidor apache, los resultados de las pruebas pueden variar. En nuestro caso, la pgina web servida es la conocida como It works! y es la que viene por defecto cuando instalas el servidor apache.

Resultados
A continuacin mostramos los datos obtenidos tanto en formato de tabla como de grfica. Adjuntamos con el pdf del trabajo los archivos generados por los scripts que contienen los resultados medios con el clculo de la desviacin tpica. Tabla del test AB Nombre distribucin Tiempo que ha tardado el test (segundos) 0,9294 0,8717 2,9453 1,1734 0,84 1,0724 Peticiones por segundo 10766,916 11480,669 3405,058 8525,209 11910,079 3 9333,5526 Tiempo por peticin (milisegundos) 9,2934 8,7172 29,4521 11,7331 8,401 10,723 Velocidad de transferenci a (KB/s) 4889,371 5090,063 1509,665 3771,407 5280,445 4129,003

ArchLinux-3.3.7 UbuntuServer-3.2.0 UbuntuServer-3.3.7_fail Ubuntu-12.04-3.2.0 UbuntuServer-3.3.7_win Ubuntu-12.04-3.3.7

Tiempo que ha tardado el test


(segundos)
3,5 3 2,5
Segundos

2 1,5 1 0,5 0 UbuntuServer-3.2.0 Ubuntu-12.04-3.2.0 Ubuntu-12.04-3.3.7 ArchLinux-3.3.7 UbuntuServer-3.3.7_fail UbuntuServer-3.3.7_win


Distribucin

Menos es mejor

Menos es mejor

Ms es mejor

Ms es mejor

Tabla del test hdparm Nombre distribucin ArchLinux-3.3.7 UbuntuServer-3.2.0 UbuntuServer-3.3.7_fail Ubuntu-12.04-3.2.0 UbuntuServer-3.3.7_win Ubuntu-12.04-3.3.7 Velocidad de lectura (MB/s) 81,317 81,251 81,252 80,56 81,132 81,252

Ms es mejor

Conclusiones
Conclusiones generales.
Como conclusin general se puede sacar que una versin server s que impone una diferencia considerable de rendimiento respecto a una desktop, al igual que una configuracin refinada, optimizada y pensada de kernel tambin ofrece cierta mejora. En cuanto a la tasa de transferencia, los resultados obtenidos son muy similares y una diferencia del 1% no resulta significativa.

Conclusiones particulares.
Mejor vs peor distribucin con kernel genrico Ubuntu-12.04-3.2.0 UbuntuServer-3.2.0 Mejora aproximada Tiempo que ha tardado el test (segundos) 1,1734 0,8717 34,00% Peticiones por segundo 8525,209 11480,669 36,00% Tiempo por peticin (milisegundos) 11,7331 8,7172 34,00% Velocidad de transferencia (KB/s) 3771,407 5090,063 36,00%

Mejor vs peor compilacin de kernel

Tiempo que ha tardado el test (segundos) 2,9453 0,84 250,00%

Peticiones por segundo

Tiempo por peticin (milisegundos) 29,4521 8,401 250,00%

Velocidad de transferencia (KB/s) 1509,665 5280,445 249,00%

UbuntuServer-3.3.7_fail UbuntuServer-3.3.7_win Mejora aproximada

3405,058 11910,0793 249,00%

A partir de esta tabla podemos deducir que la compilacin de un kernel no es algo trivial y puede marcar una diferencia de rendimiento importantsima. Es curioso que la versin a la que se le han quitado ms cosas es la versin que peores resultados ha ofrecido. Kernel genrico vs kernel compilado UbuntuServer-3.2.0 UbuntuServer-3.3.7_win Mejora aproximada Tiempo que ha tardado el test (segundos) 0,8717 0,84 3,00% Peticiones por segundo 11480,669 11910,0793 4,00% Tiempo por peticin (milisegundos) 8,7172 8,401 3,00% Velocidad de transferencia (KB/s) 5090,063 5280,445 4,00%

Referencias
Wikipedia. Manuales de compilacin de kernels online, entre otros http://www.avenegra.org/2011/08/compilar-el-kernel-linux-debian-squeeze Web de la asignatura Diseo y Evaluacin de Configuraciones Web de la asignatura Diseo de Sistemas Operativos