tirandodelcarro

Por un infierno más digno…
Flower

Diseño y Evaluación de Configuraciones

Este año en la asignatura DEC había que colgar las respuestas de las preguntas de auto evaluación en un blog. Mucha gente ha optado por colgarlas en blogspot, blogger y demás servicios.Yo he optado por dejarlo aquí.

En lugar de hacer varias entradas, he concentrado todo en uno solo post para que sea mas fácil su localización y lectura.

TEMA 1: Sistemas Informáticos y su Evaluación

Ejercicio 1.1.1:

Mencionar sistemas operativos que no estén entre los anteriores, y el nicho de mercado que suelen cubrir.

Windows : Ampliamente conocido por todos, el mas usado , el mas odiado y el mas simple para la mayoría de usuarios y el que marco un antes y un después en el 95 tras ofrecer un SO con entorno grafico “real”.

Linux: El eterno segundón al menos para el mercado de masas. Ofrece buenas características, estabilidad y todo lo deseable en un SO pero demasiado complicado para una persona sin muchos conocimientos y acostumbrada hacer todo en clic, siguiente siguiente….

Symbian OS: bastante extendido en el terreno de lo dispositivitos de mano (teléfonos. Agendas…) . Se desarrollo por un grupo de empresas de las que destacamos Nokia y la mayoría de sus terminales implementan dicho SO.

Android : El debut de Google en el campo de SO para móviles.

Ejercicio 1.2.1:

Indicar qué tipo de medidas sueles tomar para medir las prestaciones de un ordenador.

Suelo usar las últimas versiones de programas Benchmark. Compruebo cada uno de los sistemas ( graficos, hdd, cpu…) y procuro usar software de testeo especifico para cada area : 3D Marks (graficos), SuperPI (CPU) , Hdparm (hdd)…

Ejercicio 1.2.2:

Indicar en qué casos de los que te encuentras en tu trabajo (u otro quehacer) diario necesitarás medir las prestaciones del ordenador.

Pues principalmente cuando acabas de comprarte algun hardware nuevo : CPU , tarjeta grafica , hdd… No se porque, pero siempre tenemos la necesidad de comprobar las especificaciones del producto de una forma mas practica :D

Ejercicio 1.2.3:

Indicar en qué casos percibes una falta de prestaciones de los ordenadores que sueles manejar.

Principalmente a la hora de jugar, sobre todo , en los juegos mas recientes . Compruebas que la tarjeta que era lo mas de lo mas, ahora le cuesta trabajo mover (incluso con el detalle al mínimo) el juego mas reciente.

Ejercicio 1.2.4

Mirar qué servicios hay activos en nuestro ordenador personal y en algún otro ordenador al que tengamos acceso. ¿Qué usas para saber los servicios que hay activos? ¿Sabes lo que hacen?

Con el administrador de sistema en Windows y con el comando top en Linux. Hay varios ejecutándose y programas como : Amarok, Firefox…

Si cerramos alguno de estos no habrá muchos problemas salvo que dejaremos de escuchar nuestra música o visualizar la web que estábamos visitando, no obstante hay servicios del SO que si los cerramos ( en el supuesto caso que nos deje) no nos llevarían a muy buen puerto y optando finalmente a reiniciar la maquina.

Ejercicio 1.3.1

Especificar en qué consistirían los 10 pasos de la sección 1.2 en el caso de la evaluación de alguno de los siguientes sistemas: un compilador, un proveedor de servicio ADSL, una tarjeta gráfica, una impresora.

Lo realizaremos para una tarjeta gráfica.

1. Especificar los objetivos y definir el sistema:

Nuestro objetivo es adquirir una tarjeta grafica para un sistema informático destinado a jugar. Valoraremos las posibles alternativas y cogeremos siempre la que mejor relación calidad/precio nos ofrezca (siempre limitado por nuestro presupuesto)

2. Servicios que ofrece el sistema y sus posibles resultados:

Gran parte de las compañias ofrecen productos similares en cuanto a rendimiento. Se suele agrupar en : gama alta , media y baja que siempre suele ir acompañado de : mas caro, menos caro y barato.

No obstante también hay que fijarse en las especificaciones y comparar ya que en algunos casos en un mismo rango de euros podemos adquirir un producto mejor

3. Seleccionar las métricas:
En nuestro caso es bastante sencillo, todas las especificaciones que nos ofrecen: frecuencia del núcleo, ancho de banda de memoria (256 bits, 512 bits…) , tipo de bus (PCIe 1.0 , 2.0) etc.

Todas estas características son del tipo de “más es mejor”.

4. Listar los parámetros que pueden afectar a las prestaciones:

Como he comentado en el apartado anterior es importante cada una de las especificaciones que nos da el fabricante.

Tambien hay que tener en cuenta que el sistema donde instalaremos la grafica debe ser acorde con la misma , no podemos instalar una NVIDIA GeForce GTX 295 en un Pentium de los años 90. Ya no solo porque físicamente no es compatible los buses sino que el sistema estaria “descompensado” y no sacaríamos todo el potencial de la tarjeta.

5. Factores a estudiar:

Comprobaremos el comportamiento con juegos y los FPS ( frames por segundo) que conseguimos, la tasa de relleno, poligonos por segundo….

6. Seleccionar las técnicas de evaluación:

Comprobaremos el rendimiento con un bechmark tipo 3Dmarks y también haremos una batería de distintos juegos para comprobar la potencia grafica en condiciones mas reales que un test sintético.

7. Seleccionar la carga de trabajo:

Comenzaremos con el test y luego haremos una prueba de campo con los juegos mas recientes.

8. Diseñar los experimentos, dividiéndolos en niveles o valores que tomarán los factores:

1) Contrastar las especificaciones del fabricante con un programa tipo Everst
2) Pasar test Grafico
3) Probar juegos recientes a varias calidades y resoluciones
4) Comprobar el consumo energético de la tarjeta
5) Comprobar temperaturas. (Queremos una tarjeta grafica , no un horno solar)

9. Analizar e interpretar los datos:

Realizaremos todas nuestras pruebas sin ningún programa en segundo plano ( antivirus, servicios innecesarios…). Realizaremos los test y compararemos los resultados obtenidos con otros sistemas de similares características bien en el propio programa o bien vía Internet ( web ,foros….)

10. Presentar los resultados:

Comprobamos los resultados y vemos que nuestro sistema tiene un comportamiento similar a los de otra gente. No obstante comprobamos que las especificaciones no son del todo fidedignas a lo que dice el fabricante, encontrándonos con pequeñas variaciones.

Ejercicio 1.4.1:

Indicar las métricas que se usarían, y de qué tipo son (más-es-mejor, menos-es-mejor, nominal-es-mejor), en los siguientes sistemas: tarjeta gráfica, impresora, programa servidor web, ordenador servidor web.

Tarjeta gráfica:
• Ancho banda (más-es-mejor).
• Temperatura(menos-es-mejor).

Impresora
• Paginas Por Minuto (más-es-mejor).
• Consumo de tinta (menos-es-mejor)

Programa servidor web:
• Consumo de recursos y uso de cpu (nominal-es-mejor).

Ordenador servidor web:
• Latencia (menos-es-mejor).
• Ancho de banda(más-es-mejor)
• Memoria(más-es-mejor)

Ejercicio 1.5.1:
Buscar sistemas gratuitos de simulación, especialmente para hardware.
VirtualBox:
Nos permite simular un ordenador dentro de otro. Podemos especificar la ram que destinamos a el, el disco duro etc… Podemos virtualizar varias maquinas dentro de nuestro pc y cada una con su SO independiente. Una opción bastante usada en el ámbito de los servidores ya que permite ahorrar en infraestructura.

Ejercicio 1.6.1:
Buscar y usar un profiler sobre un programa propio, en el lenguaje de programación que sea. Indicar qué es necesario para usarlo, y, una vez aplicado sobre un programa, decir qué mejoras se pueden hacer sobre el mismo.

Este ejercicio es una copia de la practica 3 así que comentare brevemente lo que realice.
El profiler que use para Java fue el propio que trae el Netbeans y que es bastante intuitivo y nos muestra los resultados en forma de gráficos.
La idea fundamental de un profiler es ver como se distribuye el tiempo de ejecución del programa en cada una de las funciones. De modo que si mejoramos las funciones que mas tiempo pasa el programa, obtendremos un rendimiento considerable en nuestra aplicación.

Ejercicio 1.7.1:
Ejecutar permanentemente un programa de monitorización del sistema (por ejemplo, incluyéndolo como widget en la barra de tareas) y observar qué ocurre cuando hacemos alguna de las cosas siguientes:
Abrir el navegador y cerrarlo más adelante:

Percibimos un pequeño aumento de la CPU ( 15% o asi) pero rápidamente disminuye una vez abierto.
Ejecutar un servidor web y hacer una serie de peticiones al mismo, con intensidad creciente (usar algún programa del tipo ab)
He ejecutado el test y si ha aumentado de forma considerable aunque hay que tener en cuenta que el servidor es bastante modesto (233Mhz).

Ejecutar una demo de algún juego de última generación (o el juego en si).

Ejecutando el Crysis la cpu llega al 100% bastante tiempo y la memoria ram sube de forma considerable ( 1.5Gb mas que en reposo)

Compilar algún programa extenso

Llega a un 80% o así durante unos cuantos segundos. Quizás no sea demasiado extenso.

TEMA 2: Representación gráfica aplicada a la evaluación de prestaciones

Ejercicio 2.1.1:

Buscar un programa que dibuje un gráfico de Kiviat interactivamente, o bien hacerlo uno mismo.

Con Excel se puede hacer sin problemas para ello hacemos lo siguiente:
1) Escribimos los datos que vamos a poner
2) Seleccionamos los datos
3) Nos vamos a Insertar/Grafico
4) Seleccionamos Tipo de grafico Radial y seguimos el asistente

Al final nos quedara algo como esto:


Ejercicio 2.2.1:

Partiendo del gráfico por defecto de algún programa que los elabore a partir de datos, irlo convirtiendo en uno que cumpla las reglas anteriores.

Deberemos de realizar un grafico adecuado y que realmente nos ayude a comprender lo que estamos presentando, para ello deberíamos de tener en cuenta:

Minimizar la tinta: No debemos perdernos en un frenesí multicolor. Tenemos que presentar los datos de una manera simple y sin muchas florituras.

Evitar la ambigüedad: Mostraremos los ejes y las divisiones de los mismos bien determinadas para facilitar la lectura de los datos y que no lleve a confusión.

Ejercicio 2.3.1:

Errores comunes en la representación gráfica de resultados. Qué tipo de gráfico (líneas o barras) se usaría para trazar:

Uso de CPU para 12 meses del año.

Un grafico de líneas a lo largo del tiempo

Uso de CPU en función del tiempo en meses.

Un grafico de líneas a lo largo de los meses

Número de E/S a 3 discos duros: A, B, y C.

Una gráfica de barras

Número de E/S como una función del número de discos duros en el sistema.

Un grafico circular, de modo que el total seria el circulo completo y cada una de las entradas salidas diferenciadas del color de cada disco duro.

TEMA 3: Solución de problemas en un sistema informático

Ejercicio 3.1.1:

Busca en Internet o en el manual de tu sistema operativo cómo puedes alterar los parámetros siguientes de tu sistema operativo: tamaño de la rodaja temporal, índice de supervivencia de página, número máximo de usuarios, número máximo de procesos.

Manual de Windows XP en español (http://www.ictliteracy.info/rf.pdf/tutorial%20windowsxp%20espaniol.pdf)

Ejercicio 3.1.2:

Mirando las pantallas de configuración de tu ordenador, dí qué parámetros del hardware se pueden cambiar: reloj del sistema, por ejemplo, o frecuencia del bus del sistema.

Inicialmente los parámetros de cambio de bus de sistema , frecuencia CPU … se cambian en la BIOS antes de que se inicie la carga del sistema operativo . No obstante tambien hay programas para hacer overclocking desde el propio sistema operativo.

Ejercicio 3.1.3:

Buscar en Internet algún contrato de prestación de servicios que incluya condiciones sobre las prestaciones de un sistema que va a contratar; presentar el enlace.

Condiciones de contratación de OVH ( proveedor hosting web) (

http://www.ovh.es/espacio_clientes/documentos_legales/CondicionesGeneralesServicio.pdf)

Ejercicio 3.2.1:

Tomar varios programas de una misma categoría, tales como navegadores, programas de correo, editores; realizar en todos ellos la misma tarea, y evaluar el consumo de recursos de los mismos, especialmente memoria consumida y porcentaje de CPU. Indicar en un entorno donde los recursos no sean excesivos, cuál se usaría.

Vamos a realizar una comparativa entre firefox e Internet Explorer. Para ello abriremos 3 pestañas con paginas pesadas (muchas imágenes , videos y textos).

Al ejecutar IE obtenemos un 20% de CPU y una ocupación de 90MB de ram. Por otro lado con Firefox obetenemos un 17% de CPU y un consumo de memoria superior, entorno a los 110Mb.

Ejercicio 3.3.1:

Comparar dos programas que hagan la misma labor (por ejemplo, dos procesadores de textos), ejecutando simultáneamente un monitor, y calcular a ojo de buen cubero los recursos de CPU y memoria que consumen. ¿Si hay varias copias del programa, cómo evoluciona el consumo de recursos?

En esta ocasión abriremos un documento de varias páginas en dos procesadores de textos: Microsoft Office y Open Office.

En Open Office el consumo de cpu sube hasta un 35% al cargar el documento, la Ram esta entorno a 32 Mb . Si abrimos varias copias del documento el resultado es similar el consumo de recursos va subiendo progresivamente.

Para Microsoft Office el consumo de CPU es mas contenido entorno al 20% y la memoria ocupada es similar a Open Office en torno a 35Mb

Ejercicio 3.3.2:

Monitorizar la CPU y memoria de un ordenador recién encendido; eliminar servicios innecesarios del arranque, y volver a hacer la monitorización. ¿Ha mejorado algo?

Con el tiempo se van acumulando en nuestro PC programas que vamos instalando por alguna necesidad puntual y con el tiempo dejamos de usarlos. Empezaremos por quitar programas pesados como el servidor oracle , que una vez realizadas las practicas de base de datos, nos ocupa un espacio en disco y y unos ciclos de reloj muy preciados.

El arranque del PC tardaba en torno a 45 segundos, tras su desinstalación hemos logrado reducir el tiempo de inicio del SO en 15 segundos aproximadamente. Ahora nuestro pc arranca en unos 30 segundos una mejora bastante importante.

Ejercicio 3.3.3:

Modificar algún parámetro del sistema operativo, tal como la rodaja temporal; monitorizar el sistema antes y después de la modificación. ¿Se nota alguna diferencia?

En absoluto, muestra unos valores prácticamente similares.

Ejercicio 3.4.1:

Contar una experiencia de overclocking propia o encontrada en algún sitio de Internet.

Manual overclocking (http://www.principiantes.info/util/overclocking_principiantes.php)

Ejercicio 3.5.1:

Examinar un sistema que tengamos a mano, y en el cual tengamos privilegio de administrador, cambiar alguno de los parámetros relativos a la memoria, y ver como influye en las prestaciones del sistema; para evaluarlo, usar un monitor antes y después del cambio.

He realizado varias mejoras siguiendo tutoriales del tipo “acelera tu Windows xp” y similares y he de reconocer que la mejora a sido ínfima. Quizás en los tiempos de los Pentium o 486 las mejoras eran mas apreciables, debido en parte, a la poca potencia de las maquinas y con poco que hicieses notabas bastante.

Ejercicio 3.5.2:

Consultar en internet o en los manuales del sistema operativo cuáles son los parámetros relativos a la memoria modificables por el usuario y administrador, y decir qué posible impacto pueden tener en las prestaciones del sistema.

En Linux se puede mejorar el rendimiento usando swappiness. Podemos tunear y modificar la gestión de la memoria virtual.
Abrimos una terminal y escribimos lo siguiente:
$ cat /proc/sys/vm/swappiness
El resultado es un número entre 0 y 100 que nos dice la tendencia que tiene el kernel a transferir memoria no usada a la partición de intercambio. A valor más alto, más swapping. El valor por defecto en Ubuntu y en la mayoría de las distribuciones es 60.
Para cambiar este valor en cualquier momento, por ejemplo a 10 hacemos:

$ sudo sysctl vm.swappiness=10

Ejercicio 3.6.1:

Buscar comparativas entre prestaciones de diferentes filesystems y sacar conclusiones sobre su adecuación para alguna tarea en particular.

Comparativa de los sistemas de archivo Ext3 y la nueva versión Ext4

http://www.linux-party.com/modules.php?name=News&file=article&sid=4231

En general, como en todas las cosas, no hay sistemas de archivos buenos o malos (salvo alguna excepción) sino que hay unos mas adecuados que otros para determinadas tareas.

Por ejemplo para pequeño tamaños de disco se suele usar Fat32 o incluso 16 , no tendría mucho sentido tener una cámara digital con un sistema de archivos de un servidor. En la cámara se optimiza el máximo uso de disco mientras que en el servidor se minimiza la búsqueda y transferencia de archivos.

Ejercicio 3.7.1:

Consultar los parámetros físicos de los discos duros del sistema personal, y decir si la configuración maestro/esclavo que se está usando es la más adecuada.

Como era de esperar la configuración es la adecuada, el disco duro con el SO y los programas esta como Maestro, mientras que el disco con los datos y cosas poco frecuentes esta en modo esclavo.

Ejercicio 3.7.2:

Consultar en Internet o en los manuales del sistema operativo cuáles son los parámetros relativos al subsistema de entrada/salida modificables por el usuario y administrador, y decir qué posible impacto pueden tener en las prestaciones del sistema.
En principio no dice nada, luego otra cosa será que cuando conectemos algún hardware nuevo y el SO chille.

Ejercicio 3.7.3:

Evaluar para el sistema personal, y la distribución de ficheros que hay, si el tamaño de cluster sería el más adecuado. Evaluar si, cambiando el tamaño de cluster, se ocuparía menos espacio.

Realmente esto depende del uso que vayamos a dar. Si vamos a usar algún programa de edición de video u otro que requiera de ficheros grandes, usaremos tamaños de cluster grandes. A mayor tamaño de cluster transferimos más información de un tirón. Sin embargo también desaprovechamos el espacio en disco ya que si tenemos muchos ficheros de pocos kb todo el resto hasta completar el tamaño del cluster se desperdicia.

Ejercicio 3.8.1:

Sobre un servidor web ya instalado, tratar de optimizar el número de peticiones concurrentes, el tiempo de respuesta, y el ancho de banda.

He cambiado varios parámetros de Apache como son MaxKeepAliveRequests que indica el máximo número de peticiones que se permiten en conexiones persistentes y el KeepAliveTimeout que es el número de segundos que Apache esperará por la siguiente petición antes de cerrar la conexión

Ejercicio 3.9.1:

Sobre un sistema que se tenga a mano, llevar a cabo una monitorización usando las técnicas explicadas en este tema, proponer mejoras, llevarlas a cabo, y volver a monitorizar indicando dónde han impactado las mejoras.

A lo largo de todos los ejercicios realizados hemos comprobado varias mejoras :
- Al iniciar el SO, una vez eliminados los servicios que no usamos
- Cambiando el valor swappiness
- Haciendo un poco de overclock en la CPU

TEMA 4: Benchmarking

Ejercicio 4.1.1:

Localizar por internet, y aplicarlo a un par de sistemas (de los que tenga uno a mano, claro), benchmarks para medir la velocidad de una impresora, un lector de CD y una tarjeta gráfica

Usare el 3D Marks para realizar unas pruebas sobre mi tarjeta Nvidia Gforce 8800GT. Tras la ejecución obtenemos la siguiente puntuación:

Ejercicio 4.2.1:

Mostrar en un benchmark publicado la existencia de alguno de estos juegos de benchmarking.

http://www.futuremark.com/

http://www.sisoftware.net/

Dejar un comentario

Debes autentificarte para comentar.