jueves, 17 de abril de 2008

15-4-2008

Comenzamos la clase analizando los gráficos del último anuncio de Movistar,y vemos como usa la manipulación de gráficas por vía geométrica. Esta es una de las técnicas más habituales y probablemente una de las más efectivas.

Se emplea el dato real (los millones de clientes en esa ocasión) para definir una de las dimensiones de un área o un volumen, y no para definir el área o el volumen completo. Esto provoca una magnificación de las diferencias que solo puede clasificarse como un engaño y una manipulación interesada.


A continuación vemos el ejercicio 3.1. de autoevalucación de tupakamaru.

Uno de los parámetros al medir un sistema es la disponibilidad.

SL (Service Level): nivel de disponibilidad del servicio.

Para inspirarnos al hacer los ejercicios de autoevaluación podemos echarle un vistazo a los de http://swecai.ugr.es/ que es la plataforma del año pasado.



Seguimos con el temario:


3.2 Gestión de carga y prestaciones en el sistema operativo



En este tema veremos reglas y políticas para mejorar un sistema en general.

  • Planificación y definición de la carga del sistema: si somos administradores del sistema debemos planificar cuál va a ser la carga del mismo.
  • Configurar las herramientas de monitorización del sistema.
  • Tratar de resolver problemas mediante políticas de gestión del sistema, tales como limitación de uso interactivo, limitación de uso de disco mediante cuotas..
  • Ampliar el sistema, si todo falla (y hay pasta para ello, claro).


Hosting virtuales: nos permite mantener múltiples nombres de host en nuestro servidor.

Servidor Virtual: es en realidad una partición dentro de un servidor que habilita varias maquinas virtuales dentro de dicha maquina por medio de varias tecnologías. Un sistema operativo que soporta este tipo de tecnología es Linux. Ejemplo: vmware.

En función del servicio que esperamos dar compraremos unos servicios u otros.

El error 509: error del servidor que indica que se ha excedido el ancho de banda. Para evitar estos casos y servir la menos cantidad de GB posibles podemos usar algunos “trucos” como:

Minimizar el tamaño de las fotos

Usar ModGZip, que es un módulo de Apache que comprime sobre la marcha las páginas que recibe.

Alojar las imágenes en sitios gratuitos de alojamiento de imágenes

Servir imágenes de otros sitios

Usar mod-rewrite, que es otro módulo de Apache que reescribe el resultado que va a dar el servidor

Awk: lenguaje para procesar ficheros de texto.


¿Cómo saber el nivel de servicio que estamos dando y cuando se a pasar del límite? Configurando herramientas de monitorización, como por ejemplo logwath que mira el reloj del sistema, y los demás que queramos ver, configuramos las reglas sobre cuándo queremos salir, y que nos avise cuando sucede algo.



3.3 Políticas de gestión del sistema


Tanto los usuarios como el administrador pueden mejorar el funcionamiento del sistema. Algunas medidas que se pueden tomar son:

  • Usar comandos internos del shell en vez de los comandos externos de UNIX; y esto por una razón muy simple: el shell ya está en memoria, ejecutándose, mientras que los comandos externos se tienen que buscar en el path, cargarse y demás. Por ejemplo para ver el directorio actual en luegar de usar pwd podemos usar echo $PWD como alternativa del shell
  • Evitar path largos que hacen que el ordenador tenga que leer muchos directorios cada vez que se ejecuta un comando. Poner antes los directorios de las órdenes que queremos que se ejecuten antes. Por ejemplo sbin (ordenes del superusuario) esta antes que bin (del user)
  • Usar las versiones más eficientes de cada tipo de programa.

En cuanto al superusuario, hay muchas cosas que puede llevar a cabo para aligerar la carga del sistema:

  • Eliminar daemons inútiles y malos para el alma de la máquina. Como ejemplo eliminamos: sudo /etc/init.d mysql pues no lo estamos usando.
  • Limitar tiempos de ejecución interactivos, y renicear procesos a discreción.

Nice: en función de la carga del sistema cambia la prioridad de un proceso de forma dinámica.

Ulimit –a: dice las limitaciones del sistema.

  • Modificar los parámetros del sistema operativo.



También comentamos la quinta práctica: mejora las prestaciones del sistema.
Es el primer ensayo para el trabajo final de la asignatura, por lo que es bastante importante.

Tenemos una plantilla que podemos usar. La fecha de entrega es el 7 de mayo.

Para finalizar vemos el vídeo del día.

8-4-2008

Comenzamos la clase hablando de las prácticas. Recordamos que se pueden volver a entregar las prácticas anteriores hasta el día 24 si queremos subir nota, pero que en esta ocasión puntuarán hasta 8.

Comentamos prácticas anteriores:

En la práctica 2 uno de los errores que se comentó fue el de las faltas de ortografía, incluir imágenes que estaban mal enlazadas y confundir monitor con benchmark.

En la práctica 3, vimos la práctica de Miguel Ángel Medina Medina que había aplicado el profiler sobre un programa que calcula la sucesión de Fibonacci, y tras esto vimos los errores comunes de la práctica 3

Por último acordamos que la 4ª práctica se podía entregar hasta el 21 de Abril

Después vemos una comparativa entre Vista y XP. No se debe usar la carga de los sistemas para compararlos, en vez de esto, es mejor comparar mediante una medición de prestaciones como lo que tarda abrir x ventanas….

Ejercicios de autoevaluación del tema 2 de Vkthor sobre diagramas de líneas y barras.

Líneas: funciones o variables que sigan una progresión determinada.

Barras: se usan para representar variables categóricas.

Medio punto del trabajo final puede depender de que usemos bien los diagramas (líneas o barras)

Continuamos con la teoría:

Tema 3, solución de problemas en un sistema informático

3.1 Introducción

  • Ajuste de parámetros del sistema operativo: muchos de los parámetros del kernel ya se pueden modificar desde filesystem/proc tales como el tamaño del quantum, la prioridad de algunos programas…
  • Ajuste de parámetros del hardware: son parámetros de la Bios. Podemos configurar la frecuencia del reloj, la caché…

  • Equilibrado de cargas: repartir las cargas a las que son sometidos los diversos dispositivos, como red, discos duros, entre las diferentes máquinas que las gestionen y personas que lo usan, o repartir los ficheros entre los diferentes filesystems del sistema. Por ejemplo si disponemos dos discos duros usar uno para procedimientos del user y otro para bases de datos. Si las bases de datos apenas se usan tendremos un disco muy cargado y otro ocioso, por lo que deberíamos equilibrarlos.En la facultad la carga está repartida por cursos. Cada dos cursos están en un disco distinto. Los profesores tienen otro disco distinto.
  • Ampliación: añadir nuevos dispositivos al sistema.
  • Cambio del software: puede ser una actualización de una parte del sistema o cambiar a una versión superior, o cambiar el software que se está usando por otra versión u otra marca.

Conviene también tener en cuenta una serie de principios a la hora de mejorar las prestaciones de un sistema:

  • Conoce y comprende tu entorno: saber todo lo que hace el sistema.

Lsof: lista todos los procesos del sistema y los archivos que tiene abiertos cada uno de ellos

lsof | grep : de un proceso determinado

  • Hay que buscar el equilibrio: Por ejemplo, no se puede mejorar la velocidad percibida por un usuario sin empeorar la de todos los demás usuarios; no se puede optimizar al máximo un programa sin aumentar, como mínimo, el tiempo que se le dedica al mismo.
  • Throughput contra latencia: el throughput se refiere a la cantidad de cosas que se pueden hacer, o transmitir, en la unidad de tiempo. La latencia, es el tiempo total que tarda en hacerse algo. Por ejemplo, en una red, la latencia sería el tiempo que tarda un paquete para transmitirse de un punto a otro de la red, mientras que el throughput sería la cantidad de bytes que la red es capaz de soportar.
  • No sobreutilices un recurso: ningún recurso usado al 100% estará al óptimo de su capacidad, sino más bien por encima. Esta medida es del tipo Nominal es Mejor.
  • Diseña las pruebas con cuidado: aplica el primer principio, y mira bien lo que vas a medir antes de medirlo.

Después de esto hicimos algo de los ejercicios de autoevaluación de este apartado para tener una idea.

Para finalizar vimos el video del día.

lunes, 7 de abril de 2008

1-4-2008

Empezamos la clase viendo el ejemplo del profiler usando un programa en Perl. El profiler que trae Perl se llama DpProf.

Vemos que en la llamada a una función es en lo consume la mayor parte el programa, y entonces ejecutamos la misma función pero guardando en una caché los argumentos y las llamadas a función. Con esto conseguimos ahorrar un 5%-6% del tiempo.

El tiempo total que tarda en ejecutarse el programa siempre debe ser menor, ya que si mejoramos una función que tardaba mucho, pero a causa de eso otras tardan más no habremos mejorado nada.


Vemos un programa en brainfuck (es un lenguaje de programación esotérico, diseñado por Urban Müller en 1993, con el objetivo de hacer un lenguaje que fuera a la vez muy simple, Turing completo y que requiriese un compilador pequeño)


Recapitulación de la clase anterior:

Víctor explica su práctica 2.

Vemos un ejercicio de autoevaluación de tupakamaru sobre las distintas métricas.

El uso de recursos no se debe usar para medir prestaciones.



Seguimos con el temario:

1.5.4 Programas de monitorización de la actividad del sistema

Filesystem: mapeo de la memoria del sistema de ficheros.

Disksksts: muestra estadísticas de los discos

Otros programas sirven para evaluar las prestaciones de una red; o al menos los retrasos que la red introduce en las prestaciones de un ordenador.

Vmstat, Ping, Traceroute

Ejecutamos un programa a modo de ejemplo para ver los cambios del sistema (con vmstat) antes y después.

Vemos que el tiempo de CPU dedicado a user o system cambia y que la memoria apenas cambia.

Top: para ver que se está ejecutando y la carga del sistema.

Y con esto terminamos el tema 1.

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

2.1.1 Gráficos de Gantt


Hay que representar las cosas de forma sencilla y comprensible. Usaremos los gráficos de Gantt se representa en abscisas el tiempo, y en ordenadas una línea que representa los instantes durante los cuales un recurso ha estado ocupado.

A partir de la gráfica de Gantt se puede hacer análisis de Pert, con el objetivo de calcular caminos críticos es decir, en qué puntos se debe concentrar más esfuerzo para que el proyecto llegue a término) y demás.

2.1.2 Gráficos de Kiviat


En ellos se suele colocar alternativamente magnitudes del tipo “más alto es mejor” con magnitudes del tipo “bajo es mejor”. Una de las distribuciones puede ser, en sentido e las agujas del reloj, CPU ocupada, sólo CPU, CPU y un canal, un canal sin CPU, un canal activo, CPU esperando, CPU usuario, CPU sistema, alternando índices de uso con índices de solapamiento, e índices del tipo HB (más alto es mejor) con otros del tipo LB (más bajo es mejor).

2.2 Reglas para representaciones gráficas

R: programa de estadística que también sirve para hacer representaciones gráficas.


Reglas de las representaciones gráficas:


- Minimización del esfuerzo por parte del lector: fácil de entender
- Maximizar información: información suficiente pero no excesiva.
- Minimizar la tinta: intentamos transmitir la mayor cantidad de información con la menor cantidad de tinta.
- Usar prácticas comúnmente aceptadas: como el eje x para la variable independiente, el y para el resultado, el origen en el (0,0) que este en la esquina inferior izquierda, las abscisas y ordenadas en orden creciente.
- Evitar la ambigüedad: mostrar los ejes, las subdivisiones, las medidas, escalas, identificar cada una de las barras, hacerlo fácil de leer. Por ejemplo, si representamos distintas categorías en el eje horizontal hay que usar el mismo orden que el explicado en el texto.
- No poner demasiada información ni demasiada poca.



2.3 Errores comunes en la representación gráfica de resultados


- Presentar demasiadas alternativas en un solo gráfico: a partir de 7 objetos el número de objetos que se recuerdan decrece. Histograma: representación de la frecuencias de los distintos intervalos.

Por ejemplo la cantidad de tiempo que una CPU está en cada intervalo.

- Presentar muchas variables y (abscisas) en un solo gráfico: sobre todo si tienen diferentes escalas, ahorra espacio pero hace que la información se confunda. No representar más de 4 o 5.
- Usar símbolos en lugar de texto: en vez del nombre dado a una variable, debería usarse lo que contiene una variable; por ejemplo, en vez de %CPU, se debería usar Porcentaje de CPU dedicado al usuario, en un tipo de letra más pequeño, ya que lo que buscamos es que el usuario tenga que hacer el menor esfuerzo posible a la hora de entender nuestro gráfico.
- Seleccionar mal las escalas: muchas veces es mejor hacerlo a mano que automáticamente.
- Usar un gráfico de líneas en vez de uno de barras: en variables categóricas, se debe de usar un gráfico de barras.

A veces estas equivocaciones se suelen hacer a propósito, sobre todo si uno quiere demostrar algo con los gráficos.
El saber este tipo de cosas ayuda también a identificarlas cuando uno se las encuentra:

- Usar orígenes no nulos para hacer énfasis de la diferencia: cuando la diferencia es pequeña, se usa un origen no nulo para que parezca más grande.
- Trazar cantidades aleatorias sin los intervalos de confianza: la media transmite poca información si no se acompaña de la desviación típica, o rango o algún momento (medir ancho de banda).
- Usar pictogramas escalados por altitud: a veces se usan barquitos, o cochecitos... Siempre hay que tener en cuenta que es la altura, y no la superficie, lo que representa la cantidad.

- Usar tamaños de célula no adecuados en histogramas, y usar escalas partidas en gráficos de columnas. En el primer caso, hay que aplicar tests estadísticos para comprobar que se haya hecho adecuadamente; siempre tendrá que haber al menos 5 puntos experimentales en cada cubo (cuando hay una gran dispersión aleatoria en las variables).

Con esto terminamos el tema 2.

Para finalizar la clase explicamos la práctica 4 de forma breve.

Video del día : Gráficas de Gantt con Excel