Benchmark Para Pcs Con Pocos Recursos
Total Page:16
File Type:pdf, Size:1020Kb
Universitat Politecnica` de Catalunya Facultat d'Informatica` de Barcelona Benchmark para PCs con pocos recursos Director: Autor: Carlos Alvarez´ Mart´ınez Alexandre Ram´ırezG´omez Co-director: Xavier Martorell Bofill 13 de junio de 2013 ´Indice general 1. Introducci´on 4 1.1. Planteamiento . .4 1.1.1. Objetivo . .4 1.1.2. Motivaci´on . .4 1.2. Estado del arte . .5 1.2.1. Contexto . .5 1.2.2. Diagramas de flujo . .5 1.2.3. Benchmarks globales . .6 1.2.4. Benchmarks espec´ıficos . .6 1.2.5. Colecciones de tests . .6 1.2.6. Conclusiones . .7 2. An´alisisde requisitos y planificaci´on 8 2.1. Marco legal . .8 2.2. Modalidades del benchmark .......................8 2.2.1. Modalidad cl´asica. .8 2.2.2. Modalidad basada en estimaci´on . .9 2.2.3. Modalidad basada en la estimaci´onde una distribuci´on live ..9 2.2.4. Comparativa . .9 2.3. Metodolog´ıa . .9 2.4. Planificaci´ontemporal . 10 2.5. Presupuesto . 14 2.5.1. Coste de software y hardware . 14 2.5.2. Coste espacial . 15 2.5.3. Coste de recursos humanos . 15 2.5.4. Coste total . 17 1 3. Especificaci´ony dise~no 18 3.1. Encuesta . 18 3.2. Versi´onpreliminar del benchmark .................... 19 3.2.1. Mediciones . 19 3.2.2. Puntos a mejorar . 22 3.3. Versi´onfinal del benchmark ....................... 23 3.4. Modalidad basada en estimaci´on. 24 3.5. Modalidad basada en la estimaci´onde una distribuci´on live ...... 25 3.5.1. >Medir o estimar? . 26 3.5.2. La distribuci´on live ........................ 27 3.5.3. Estimando en base al hardware . 28 3.6. Experimentaci´oncon un Pocket PC ................... 30 4. Implementaci´on,pruebas y resultados 31 4.1. Encuesta . 31 4.2. An´alisisde las distribuciones . 32 4.2.1. Selecci´onde distribuciones candidatas . 32 4.2.2. An´alisisde funcionalidades . 35 4.3. An´alisisde los PCs . 36 4.3.1. PCs de TxT . 36 4.3.2. Pruebas de rendimiento preliminares . 38 4.4. Criba de distribuciones . 40 4.5. Pruebas de rendimiento en PCs de TxT . 40 4.5.1. Resultados y reporte de incidencias . 40 4.5.2. Conclusiones . 41 4.5.3. Interpretaci´onde los resultados . 42 4.6. Realizando estimaciones . 43 4.7. Comparativa de modalidades del benchmark .............. 44 4.8. Experimentaci´oncon un Pocket PC ................... 47 5. Conclusiones 49 5.1. Conclusiones . 49 5.2. Trabajo futuro . 50 5.2.1. Comportamientos an´omalos . 50 5.2.2. A~nadiratributos a medir al benchmark ............. 50 5.2.3. Actualizar y expandir la lista de distribuciones . 51 5.2.4. Mejorar la estad´ıstica. 51 5.2.5. Probar distintos Pocket PC ................... 51 2 A. Resultados de la encuesta 53 B. Programas por distribuci´on 56 C. Funcionalidades por programa 59 D. Funcionalidades por distribuci´on 63 E. C´odigofuente del benchmark (versi´on1) 67 E.1. run.sh ................................... 67 E.2. benchmark.sh ............................... 72 E.3. statistics.sh .............................. 77 F. Pruebas de rendimiento en PCs de TxT 81 F.1. PC A . 81 F.2. PC B . 82 F.3. PC C (Core 2 Duo) . 83 G. C´odigofuente del benchmark (versi´on2) 84 G.1. memory disk discard .......................... 85 G.2. estimation ................................ 86 H. Estimaciones en base a la distribuci´on live 88 I. Ecuaciones para estimar el rendimiento 94 I.1. Ubuntu . 94 I.2. Slackware . 95 I.3. Linux Mint . 95 J. C´odigofuente del benchmark (versi´on3) 97 J.1. run.sh ................................... 97 J.2. benchmark.sh ............................... 99 J.3. estimation ................................ 103 K. Funcionalidades de Raspbian 105 Bibliograf´ıa 109 3 Cap´ıtulo1 Introducci´on 1.1. Planteamiento 1.1.1. Objetivo El objetivo de este proyecto es dise~nare implementar un sistema capaz de de- terminar la distribuci´onde Linux adecuada para un PC (m´asconcretamente, un PC con pocos recursos). Se tendr´anen cuenta tanto aspectos de funcionalidad como de rendimiento. Para esto ´ultimoser´anecesario crear un benchmark que mida el rendi- miento de distintas distribuciones de Linux para poder decidir con qu´edistribuci´on se aprovecha mejor el escaso potencial de la m´aquina.Se estudiar´andistintas moda- lidades de benchmark con distintos equilibrios entre tiempo de ejecuci´ony precisi´on de las mediciones. Luego se analizar´any se comparar´anentre ellas. Se usar´anlos PCs de la asociaci´onTecnologies per Tothom (de ahora en adelante, TxT) a modo de aplicaci´onreal. 1.1.2. Motivaci´on La idea surge tras haber participado en una actividad organizada por TxT en la que se instalaba el sistema operativo a ordenadores donados, normalmente con pocos recursos. El sistema operativo en cuesti´onera la ´ultima versi´onde Ubuntu. Se ha visto que Ubuntu no es la mejor distribuci´onpara este tipo de sistemas. En cambio, con distribuciones m´asligeras especialmente dise~nadaspara este cometido se pueden obtener buenos resultados. Creo que los PCs de TxT (y los PCs con pocos recursos en general) podr´ıan tambi´enbeneficiarse de las ventajas que ofrecen estas distribuciones, pero es necesario 4 escoger la m´asadecuada con tal de aprovechar al m´aximoel potencial de la m´aquina. Para ello es necesario poder calcular de manera cuantitativa el rendimiento de cada distribuci´on;es decir, se necesita un benchmark. Adem´as,este benchmark tambi´enpodr´ıa usarse en sistemas del estilo Pocket PC (p. ej., Raspberry Pi), ya que a efectos pr´acticosson PCs con pocos recursos. Actualmente el uso de este tipo de m´aquinasest´aaumentando notablemente, ya que ofrecen una soluci´onbarata y peque~napara tareas que no requieran una gran capacidad de c´omputoo unas prestaciones fuera de lo com´un.Con este benchmark se podr´ancomparar este tipo de sistemas con PCs antiguos y ver si realmente suponen una alternativa viable. 1.2. Estado del arte 1.2.1. Contexto A la hora de aprovechar un PC con pocos recursos es importante elegir bien qu´esoftware se instalar´acon tal de sacar el m´aximoprovecho a nuestro limitado hardware. Actualmente el sistema operativo para los ordenadores de TxT es elegido de manera informal, sin tener en cuenta muchas alternativas y sin una base obje- tiva. Es mi prop´ositodemostrar que esta elecci´onafecta de manera considerable al rendimiento del sistema y que se podr´ıamejorar haci´endolacon m´asmesura. La soluci´onal problema tendr´aque tener en cuenta tanto aspectos de rendimiento como de funcionalidad para poder decidir de manera objetiva cu´ales la m´asadecuada para una determinada m´aquina. 1.2.2. Diagramas de flujo Actualmente no existe ning´unsoftware que ayude a escoger una distribuci´onde Linux, m´as all´ade los t´ıpicosdiagramas de flujo [1]. Si bien estos diagramas tienen la ventaja de ser sencillos y no requerir ning´unsoftware ni hardware espec´ıfico(porque no son programas, son diagramas), tienen la desventaja de que su granularidad es muy gruesa y solo distinguen entre \PC moderno" y \PC antiguo" como mucho, sin tener en cuenta el rendimiento de la m´aquina.Adem´astampoco tiene en cuenta funcionalidades espec´ıficas,sino que hacen distinciones como \PC de escritorio" o \Servidor". 5 1.2.3. Benchmarks globales En la actualidad existen pocos benchmarks para Linux que midan el rendimiento de todo el sistema, y los que hay se encuentran desfasados. Unixbench es probablemente el m´asconocido. Aunque fue creado en 1983, ha ido siendo actualizado y hoy en d´ıase sigue usando [3]. El principal defecto de este benchmark es que mide resultados simulando casos de uso extremos que no coinciden con el perfil de uso que normalmente se le da a un PC. Otro conocido benchmark es HINT (Hierarchical INTegration) [4]. Se caracte- riza por su buen balance en la ponderaci´onde los distintos aspectos del sistema. Sin embargo, este benchmark devuelve como resultado un solo valor, que intenta ser una medici´onde la \calidad" del sistema. Actualmente se desaconseja este com- portamiento y se prefiere que se midan los distintos componentes del sistema por separado. 1.2.4. Benchmarks espec´ıficos Existen, por otro lado, benchmarks para medir el rendimiento de un solo aspecto espec´ıfico del sistema o incluso una tarea concreta. Los benchmarks globales suelen ser suites de benchmarks espec´ıficos debidamente ponderados. Los m´ascomunes son los benchmarks que miden la potencia de computaci´on (CPU, FPU y memoria). Estos consisten en hacer c´alculosque sean CPU-intensivos (c´omocalcular d´ıgitosde Pi, por ejemplo). Quiz´asel m´ascom´unde este tipo sea nbench [5] (un port a Linux de BYTEmark 2, anteriormente conocido como BYTE's Native Mode Benchmarks [6]). No obstante, tambi´enexisten benchmarks dedicados a medir el rendimiento de otras partes del sistema, como IOzone [8] (dedicado a medir el rendimiento de los sistema de ficheros y dispositivos de almacenamiento) o netperf (para medir el ren- dimiento de la conexi´onde red). Incluso hay benchmarks dedicados a tareas tan espec´ıficascomo medir el rendi- miento de distintos temas y configuraciones de GTK+ (gtkperf [7]). 1.2.5. Colecciones de tests Finalmente, tambi´enexisten colecciones de tests no relacionados entre s´ıpara que el usuario elija los tests que desea realizar y pueda crear su propio benchmark global a partir de varios tests espec´ıficos.En este achapterado destaca Phoronix Test Suite [10]. Es una colecci´onde tests bastance reciente (creada en 2008) y amplia (contiene m´asde 60 tests). Adem´asofrece la posibilidad de compartir resultados 6 a trav´esdel servicio OpenBenchmarking http://www.openbenchmarking.org. Es una de las plataformas de benchmarking m´asusadas, tanto a nivel domestico como profesional.