Práctica 5 - Medición de las prestaciones de un sistema

Introducción

Tengo un portátil Fujitsu Amilo con su batería correspondiente que, según los fabricantes, debería durar 2 horas. Pero lo cierto es que dura bastante menos.

Ya que no es una opción comprar otra (cuestan alrededor de 114 €) voy a hacer pruebas y mediciones en el sistema para ver si realizando algunos ajustes, puedo mejorar la duración de ésta.


Fases de la evaluación del sistema

1. Objetivo: aumentar la duración de la batería
2. Lista de servicios ofrecidos: no aplicable en este caso.
3. Métricas: tiempo de duración de la batería expresado en minutos. Tipo: HB (más alto es mejor)
4. Parámetros que pueden afectar a las prestaciones: aspectos que pueden influir en la duración

1. Características del sistema
  • temperatura CPU: si el microprocesador está muy caliente, se pone en marcha el ventilador y aumenta el consumo.
  • frecuencia CPU: si fuese posible ajustar la frecuencia a la carga de trabajo en cada momento, ahorraríamos consumo.
  • configuración tarjeta gráfica/monitor: la resolución de la pantalla, el uso de salvapantallas 3D, los fondos de escritorio, efectos gráficos, brillo, etc., hacen que la batería se descargue mucho más rápido.
  • dispositivos wireless: los dispositivos wifi consumen bastante energía al tener que estar continuamente emitiendo y captando señales en unas determinadas frecuencias.
  • S.O utilizado: Puesto que trabajo con 2: Linux Mandriva con escritorio KDE y Windows XP, realizaré pruebas y mejoras en ambos sistemas, indicando claramente los ajustes realizados en cada uno.
  • configuración parámetros BIOS: una configuración adecuada de algunos parámetros en la BIOS puede aumentar la duración de la batería.
2. Carga de trabajo
  • Carga de trabajo baja: corresponde a un estado casi de inactividad del sistema: el S.O. operativo arrancado y un programa de intercambio de archivos P2P ejecutándose en modo "batch". O el sistema arrancado, sin conexión a la red y visionando una película o escuchando música en un reproductor mp3. En definitiva, el sistema está funcionando pero apenas si interactúo con él.
  • Carga de trabajo normal: corresponde a una sesión de trabajo normal, es decir, el sistema está conectado a la red mediante un dispositivo wifi, hay un navegador abierto (con varias pestañas), un programa de mensajería instantánea, un editor de textos o un editor HTML y un visor de archivos PDF.
  • Carga de trabajo intensiva: se están ejecutando en el sistema: un editor de textos, un editor html, un editor fotográfico, un servidor de bases de datos MySQL, un programa de aplicación empresarial, además el sistema está conectado a una red inalámbrica y tengo un navegador abierto con 5 ó 6 pestañas, un programa de mensajería instantánea, un programa de intercambio de archivos P2P y un firewall.
5. Factores a estudiar:
  • CPU
    • Niveles: frecuencia y temperatura.
  • Pantalla
    • Niveles: brillo, resolución.
  • Disco duro
    • Niveles: actividad y temperatura.
  • Tarjeta gráfica
    • Niveles: temperatura
6. Técnica de evaluación: medición de un sistema real.
7. Carga de trabajo: El objetivo es aumentar la duración de la batería para cualquier carga de trabajo, y en especial para una carga de trabajo normal, que es la que utilizo en la facultad, y así tener más tiempo operativo el portátil en las clases de DyEC.
8. Experimentos a realizar: voy a estudiar los factores anteriormente descritos (cpu, pantalla, disco duro y tarjeta gráfica) centrándome en realizar todas las mejoras posibles según los parámetros modificables en cada S.O.
9. Análisis e interpretación de los datos: se realiza en el apartado "Mediciones y Ajustes".
10. Resultados: Los resultados se presentarán en una tabla, con las medidas realizadas en el sistema base y las mediciones efectuadas en el sistema mejorado.


Características del sistema

Voy a detallar solamente aquellas características directamente relacionadas con el subsistema a medir, no expondré otras prestaciones como características del lector/grabador DVD, interfaces (ranuras, lectores tarjetas, puertos, etc) ni dimensiones o peso, puesto que no interfieren en la duración de la batería.

• Batería: ión-litio 6 celdas recargable (11.1 V/4400 mAh) modelo CEX-PTXXXSN6
• Procesador: AMD Turion 64 (x2) TL-52 (1.6GHz)
• Memoria RAM: 2GB DDR2 SDRAM 533MHz
• Salida de vídeo / Procesador gráfico/ fabricante: nVidia GeForce Go 7400 128MB DDR2 dedicados
• Pantalla (Pulgadas): 15.4" TFT WXGA (resolución 1280 x 800)
• Disco Duro: 160GB SATA 5400rpm
• Placa principal / Tipo conjunto de chips: nVidia C51D+MCP51
• Conectividad: Ethernet - Fast Ethernet - IEEE 802.11 a/b/g


Mediciones y Ajustes

1º) Partimos de la configuración inicial del sistema (sin realizar ninguna modificación) y medimos la duración de la batería para las cargas de trabajo anteriormente descritas (carga baja, normal e intensiva).

2º) Realizamos los siguientes ajustes:
En cualquier S.O. empleado, el caballo de batalla para ahorrar batería está en ajustar el consumo de la pantalla LCD, GPU, el disco duro, y la CPU, que son los dispositivos que más energía demandan. Para ello voy a detallar los ajustes realizados en Linux y en Windows para conseguir este propósito sin renunciar a las necesidades requeridas para cada carga de trabajo.

Gráfico: Porcentaje del consumo de batería según dispositivo o subsistema



• Linux
































Carga de trabajo baja
Carga trabajo media
Carga trabajo intensiva
CPU
Se trata de ajustar la frecuencia al uso requerido en cada momento. Para ello cambiaré el contenido del fichero /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor de "ondemand" a "powersave"
on demand
ondemand
Disco duro
Usando la utilidad hdparm escribimos: hdparm -B 1 -S 12 /dev/sda y le indicamos a nuestro disco duro SATA que pase al modo de ahorro de energía más agresivo y que se ponga en “standby” a los 60 segundos (se especifica en múltiplos de 5 segundos: 5*12=60)
Se detiene el disco cada 5 minutos
No se pueden detener los discos duros
Pantalla LCD
Desactivaré el salvapantallas porque hace uso de 3D y por lo tanto de la GPU. Y utilizaré la opción de apagar el monitor (para una carga de trabajo baja) mediante la orden: xset dpms 0 0 30, que indica que después de 30 segundos de inactividad se apague completamente la pantalla
No se puede apagar el monitor
No se puede apagar el monitor
Dispositivo wireless
Añadir en /etc/conf.d/net la línea: iwconfig_wlan="power on"
powermode 2
powermode 1


• Windows XP

































Carga de trabajo baja
Carga de trabajo media
Carga de trabajo intensiva
CPU
Ajustar frecuencia a la utilización real
Ajustar frecuencia a la utilización real
Ajustar frecuencia a la utilización real
Disco duro
Detener tras 1 minuto
Detener tras 5 minutos de inactividad
Detener tras 15 minutos de inactividad
Pantalla LCD
Apagar tras 1 minuto
No apagar
No apagar
Dispositivo wireless
No desactivar
Desactivar cuando esté inactivo 5 minutos
Desactivar cuando esté inactivo 15 minutos

Windows proporciona 2 combinaciones de energía diseñadas específicamente para portátiles:
  • Portátil: minimiza la utilización de la batería y se ajusta a las necesidades de procesado, con lo que la velocidad es la misma.
  • Máxima batería: esta opción minimiza el uso de batería pero no se ajusta a las necesidades de procesado, por lo que es recomendable usarla solo en los casos en los que la carga de trabajo sea mínima, como tomar notas en clase o leer documentos. Es la que adoptaré para una carga de trabajo baja.
o Además podemos optar por estas facilidades cuando estemos en un periodo de inactividad:
  • Suspensión: El monitor y el disco duro se apagan, y todos los programas y los archivos abiertos se guardan en la memoria RAM en lugar de en el disco duro.
  • Habilitar la hibernación: En el modo de hibernación, el ordenador guarda todo en el disco duro y se apaga. Cuando vuelve a encenderlo, el escritorio aparece tal cual lo dejó. La hibernación utiliza menos energía que la suspensión, pero tarda un poco más en reiniciar.
Modificaciones:

1. Minimizar el número de iconos de la barra de tareas: cerrar todas las herramientas (o utilidades) que no sean necesarias.
2. Detener el disco duro tras un periodo prolongado de inactividad.
3. Apagar el monitor y/o reducir brillo de la pantalla.
4. Desactivar el módulo wifi cuando no se necesite conexión a internet, o desconectar si la conexión está inactiva (utilizar caché del navegador para leer páginas estáticas).
5. No utilizar el lector CD/DVD, si se está viendo una película, volcarla primero al disco duro.
La siguiente tabla muestra los resultados de niveles medidos para los distintos factores de estudio del sistema:

MEDICIONES DE LA TEMPERATURA/FRECUENCIA DISPOSITIVOS (Windows XP)












































MEDICIONES DE LA TEMPERATURA/FRECUENCIA DISPOSITIVOS (Windows XP)
Sistema Base Sistema Mejorado

Carga trabajo baja
Carga trabajo normal
Carga trabajo intensiva
Carga trabajo baja
Carga trabajo normal
Carga trabajo intensiva
CPU
51ºC/895 MHz
57ºC/1'394 GHz
64ºC/1'785 GHz
50ºC/778 MHz
55ºC/1'606 GHz
61ºC
Disco duro
37ºC
37ºC
38ºC
37ºC
37ºC
38ºC
GPU
55ºC
56ºC
59ºC
56ºC
59ºC
61ºC

La temperatura, según podemos observar en esta tabla, no es un factor muy significativo ya que varía muy poco para las distintas cargas de trabajo.

Resultado final

DURACIÓN DE LA BATERÍA





































DURACIÓN DE LA BATERÍA

Windows XP
Linux Mandriva

Sistema Base
Sistema Mejorado
Sistema Base
Sistema Mejorado
Carga baja
40'35''
48'22''
41'29''
44'31''
Carga media o normal
34'31''
41'15''
39'57''
40'22''
Carga intensiva
27'45''
29'58''
28'12''
31'55''



Conclusión

Al reducir el consumo de energía, la duración de la batería aumenta (respecto al sistema base) en torno a:
• un 19'5% con una carga de trabajo baja
• un 19'93% con una carga de trabajo normal o media
• un 7'75% con una carga de trabajo intensiva

NOTA: Porcentajes calculados según fórmula: (sistema mejorado/sistema base)*100

Ciertamente se ha producido una mejora en cada carga de trabajo y sin renunciar a las necesidades de trabajo (si se está trabajando con editores o visores de archivos: no se ha apagado la pantalla, si se está haciendo trabajo intensivo no se ha reducido la frecuencia de la CPU, etc).

Tema 3 - Solución de problemas en un sistema informático

Ejercicio de autoevaluación 3.1 -

Busca en Internet o en el manual de tu sistema operativo cómo puedes alterar los parámetros siguientes de tu sistema operativo:


  1. Mediante el archivo /etc/security/limits.conf
core -- tamaño del archivo del núcleo (KB); usually set to 0 for most users to prevent core dumps.
data -- Maximum data size (KB).
fsize -- Maximum file size (KB).
memlock -- Maximum locked-in-memory address space (KB).
nofile -- Maximum number of open files.
rss -- Maximum resident set size (KB).
stack -- Maximum stack size (KB).
cpu -- Maximum CPU time (MIN).
nproc -- Maximum number of processes.
as -- Address space limit.
maxlogins -- Maximum number of logins for this user or group.
priority -- The priority to run user process with.

2. Mediante comandos en shell bash: umilit

  -S      use the `soft' resource limit

-H use the `hard' resource limit
-a all current limits are reported
-c the maximum size of core files created
-d the maximum size of a process's data segment
-f the maximum size of files created by the shell
-l the maximum size a process may lock into memory
-m
the maximum resident set size
-n the maximum number of open file descriptors
-p the pipe buffer size
-s the maximum stack size
-t the maximum amount of cpu time in seconds
-u the maximum number of user processes
-v the size of virtual memory
  • tamaño de la rodaja temporal: editar archivo limits.conf y cambiar parámetro cpu
  • índice de supervivencia de página:
  • número máximo de usuarios:
  • número máximo de procesos: ulimit -u 50 (limitamos el nº máximo de procesos = 50, al reiniciar el sistema esta configuración se pierde). Editamos el fichero /etc/security/limits.conf y añadimos una línea %hard nproc 50 . Al guardar y reiniciar el sistema, lo podemos comprobar tecleando ulimit -a y observaremos que la línea max user processes (-u) 50.

Anexo: seguridad
Existen funciones denominadas fork bombs que consumen toda la memoria del sistema produciendo tal colapso que se produce un DoS (denegación de servicio).
Existen fork bombs para todas las plataformas, en concreto, esta para bash:

:(){ :|:& };:

que se puede interpretar como esto:

forkbomb(){
forkbomb | forkbomb &
}
forkbomb

Es decir, esta es la definición de una función recursivaforkbomb” que se llama a sí misma otras dos veces-puede aumentarse- (forkbomb | forkbomb &) consumiendo toda la memoria del sistema siendo necesario reiniciar el equipo.

Para evitar que esto dañe seriamente al sistema y lo deje inutilizado es necesario limitar el número máximo de procesos que un usuario puede ejecutar.

Para acabar, comentar una variante del Fork Bomb anterior:

echo "\$0&\$0">_;chmod +x _;./_

Como $0 almacena el valor del proceso actual, el script ejecutará:

./_ &
./_

contínuamente, con el agravante de que en este caso, lo que se intenta ejecutar no es una simple función de la memoria del bash, sino un nuevo proceso del disco que requiere cargar un nuevo bash en memoria.

La versión Windows de ese mismo fork bomb es un “.bat” con este contenido:

:s
start %0
goto s



Mirando las pantallas de configuración de tu ordenador, di qué parámetros del hardware se pueden cambiar:


  • reloj del sistema: La llamada al sistema adjtimex lee y opcionalmente prepara parámetros de ajuste. Si deseamos sincronizar ar el reloj sw: hwclock -w o hwclock --systohc.
    Ambos comandos obtienen la fecha y hora desde el reloj de hardware y modifican el reloj de software.
    Si en cambio desea sincronizar de manera inversa (modificar el reloj de hardware con la fecha y hora del
    reloj de software) entonces puede utilizar el comando hwclock -s o el comando hwclock --hctosys.

  • frecuencia del bus del sistema: no he encontrado un comando específico. Todo parece indicar que hay que tocar la BIOS del sistema. Pero en Gentoo existe un paquete lfsb que parece que permite modificar la frecuencia del FSB y la memoria del sistema.

http://sourceforge.net/project/showfiles.php?group_id=150613&package_id=166539



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.

http://www.azamedia.com/garantiaSLA.php



Ejercicio de autoevaluación 3.2 - 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.

Linux - Escritorio KDE: KDE es un sistema sobrecargado de opciones y botones, con montones de efectos gráficos como transparencias, y totalmente configurable.
  • Navegadores
    • Mozilla Firefox: 3'6% memoria usada, 3% CPU
    • Konqueror: 1'5% memoria usada, 2 CPU
  • Editores texto
    • Open Office: memoria 3'8%, CPU 51%
    • KDevelop: memoria 2%, CPU 1%
    • Kwrite: memoria 1'3% , CPU 1%
    • Vi: memoria 0'2%, CPU 2%
  • Lectores correo / noticias
    • KMail: memoria 1'4%, CPU 2%
  • Mensajería instantánea
    • Kopete: memoria 1'3%, CPU 2%
Linux - Escritorio Gnome: en general el escritorio Gnome parece que es más rápido y consume menos recursos que KDE, porque sigue la filosofía "it just works - simplemente funciona", es decir, está diseñado para ser fácil de usar, y con el mínimo número de aplicaciones instaladas para trabajar.

Windows: en entornos Windows no hay muchas alternativas a las aplicaciones integradas en el S.O, debido al marketing agresivo de Microsoft.

Conclusión - en un entorno con recursos limitados:
  • trabajar si es posible sin entorno gráfico
  • si no es posible lo anterior, usar gestores de ventanas minimalistas (Window Maker)
  • escritorios (por orden de menor a mayor consumo): Xfce, Gnome, KDE
  • usar navegadores alternativos a Mozilla o Explorer (Konqueror, Opera, Netscape)
  • en vez de los paquetes ofimáticos, utilizar aplicaciones más sencillas (NotePad, Kwrite, Vi)

Ejercicio de autoevaluación 3.3 -


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?


OpenOffice:
- Memoria
: 46MB aprox.
- Hay un proceso padre "soffice", y un proceso "soffice.bin" por cada instancia del programa lanzada.
  • 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?
Para ver los servicios activos: ls -l /etc/init.d
Y los puertos abiertos: netsat -npl (root) -
En esta dirección se puede ver una extensa lista con todos los puertos y servicios:
http://www.iana.org/assignments/port-numbers
He eliminado algunos servicios como:
  • 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?

Ejercicio de autoevaluación 3.4 - Contar una experiencia de overclocking propia o encontrada en algún sitio de internet.


AtiTool es una herramienta que permite hacer overclocking en tarjetas gráficas de la marca ATI o nVidia. Tiene las siguientes características:
  • No hay límite de frecuencia para el overclocking
  • Ajusta el voltaje de la tarjeta gráfica y la memoria (siempre que estos componentes lo permitan)
  • Encuentra la frecuencia máxima a la que se puede sobreacelerar el núcleo y la memoria realizando un renderizado en Direct3D y escaneando la salida.
  • Controla la temperatura y la velocidad del ventilador (en las tarjetas que lo admitan)
  • Permite cargar un perfil predefinido del para la frecuencia del reloj al arrancar Windows o alguna otra aplicación
  • Se pueden hacer copias de seguridad de los ajustes de la BIOS para restablecer los valores de la tarjeta gráfica
  • Detección del motor 3D (Direct3D 8, Direct3D 9, OpenGL)
  • Control Gamma
Para más información, la página web se encuentra en esta dirección: http://www.techpowerup.com/atitool/


Ejercicio de autoevaluación 3.5 -

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.




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.

  1. Windows
    • En Windows el tamaño del archivo de intercambio (swap) no tiene un tamaño fijo, sino que está recalculándose constantemente. Esto es una pérdida considerable de tiempo y mas aun si tenemos el disco duro fragmentado. Para solucionar este problema vamos a: Inicio -> Panel Control -> Sistema -> Rendimiento -> Memoria virtual. Marcamos la casilla "permitir especificar la configuración de memoria virtual" y ponemos como mínimo 2'5 veces el tamaño de memoria RAM que tenemos. P.ej.- 2GB de RAM --> 5GB de tamaño de archivo de intercambio.
  2. Linux
    • Si escribimos "cat /proc/meminfo" obtenemos los datos relativos a la memoria de nuestro sistema.
    • En el directorio /proc/sys/vm podemos cambiar parámetros relativos a la memoria virtual, por ejemplo para aumentar el rendimiento en sistemas que tengan una carga de lecturas/escrituras elevada (servidores de archivos, de bases de datos, etc)
      • dirty_background_ratio: permite reducir la cantidad de datos almacenados en memoria, manteniendo la consistencia de los datos mediante escrituras más frecuentes en disco. Indicado para sistemas con mucha cantidad de memoria, pero un sistema de E/S muy lento.

        dirty_ratio: indicado cuando las aplicaciones están bloqueándose continuamente en sus escrituras a disco.

        dirty_expire_centisecs: Test lowering, but not to extremely low levels. Attempting to speed how long pages sit dirty in memory can be accomplished here, but this will considerably slow average I/O speed because of how much less efficient this is. This is particularly true on systems with slow physical I/O to disk. Because of the way the dirty page writing mechanism works, trying to lower this value to be very quick (less than a few seconds) is unlikely to work well. Constantly trying to write dirty pages out will just trigger the I/O congestion code more frequently.

        dirty_writeback_centisecs: Leave alone. The timing of pdflush threads set by this parameter is so complicated by rules in the kernel code for things like write congestion that adjusting this tunable is unlikely to cause any real effect. It's generally advisable to keep it at the default so that this internal timing tuning matches the frequency at which pdflush runs.

Para más información: http://www.westnet.com/~gsmith/content/linux-pdflush.htm


Ejercicio de autoevaluación 3.6 - Buscar comparativas entre diferentes filesystems y sacar conclusiones sobre su adecuación para una tarea en particular.

En este enlace viene una comparativa muy interesante entre sistema de ficheros FAT 32, NTFS y ext3: http://84.77.121.254/esi/sistemas%20operativos/_0708%2013%20Comparativa%20Fat32%20NTFS%20EXT3.pdf

Ejercicio de autoevaluación 3.7 -

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.
Linux diferencia entre un disco duro maestro a un disco duro esclavo. También diferencia entre un cdrom maestro a un cdrom esclavo y según lo que Linux encuentre, le dará un nombre u otro. Todos los dispositivos en Linux empezaran con el nombre HDx, donde x puede ser, a, b, c, d etc, exceptuando la disquetera, que será fd0.

Interfaz primaria:
  • Maestro (Ya sea disco duro o lector cdrom) = hda
  • Esclavo (Ya sea disco duro o lector cdrom) = hdb

Interfaz secundaria:
  • Maestro (Disco o cdrom) = hdc
  • Esclavo (Disco o cdrom) = hdd

Con fdisk -l obtenemos información acerca de nuestro, y con hdparm -I /dev/sda obtenemos la configuración detallada de nuestros discos. En mi caso sólo tengo un disco duro con varias particiones

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 1 18169 145942461 7 HPFS/NTFS
/dev/sda2 18438 19457 8193150 83 Linux
/dev/sda3 18425 18437 104422+ 83 Linux
/dev/sda4 18170 18424 2048287+ 82 Linux swap / Solaris

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 primer lugar un artículo muy interesante sobre como una determinada configuración de ahorro de energía en portátiles puede acortar la vida de nuestro disco duro: http://www.kriptopolis.org/ubuntu-podria-acortar-vida-disco-duro-portatiles

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.

  • En Linux, con dumpe2fs podemos examinamos la información del sistema de ficheros. Con un sistema de ficheros ext3 podemos tener tamaños de bloque de 1KB, 2KB, 4KB, 8KB.
  • En NTFS se pueden definir tamaños de cluster que varían de 4KB - 64 KB

Volume Size NTFS

Cluster Size

7 MB–512 MB

512 bytes

513 MB–1,024 MB

1 KB

1,025 MB–2 GB

2 KB

2 GB–2 TB

4 KB



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



Ejercicio de autoevaluación 3.9 - 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 donde han impactado las mejoras.

http://aullidosdigitales.blogspot.com/2008/05/prctica-5-medicin-de-las-prestaciones.html

Tema 2 - Representación gráfica aplicada a la evaluación de prestaciones

Ejercicio de autoevaluación 2.1 - Buscar un programa que dibuje un gráfico de Kiviat interactivamente, o bien hacerlo uno mismo.

  • Smartdraw no dibuja exactamente gráficos de Kiviat, pero tiene plantillas para multitud de gráficos y en concreto: gráficos de Gantt.
http://www.smartdraw.com/exp/cht/

  • SDMetrics es un paquete software implementado en java para diseños UML. Se puede instalar una versión de evaluación, que entre otras utilidades, tiene una clase denominada DiagKiviat que trae métodos para dibujar gráficos de Kiviat.
http://www.sdmetrics.com/

  • ParaGraph es una herramienta gráfica que provee de distintas perspectivas para observar la utilización del procesador, tráfico de red, y otras utilidades.
http://www.netlib.org/paragraph/

  • Krakatau Suite es una herramienta que permite dibujar gráficos de muchos tipos, y en concreto diagramas de Kiviat.
http://www.sourcecodemetrics.com/docs/justify/#_Toc535835284


Por último un artículo sobre gráficos de Kiviat, muy breve pero bastante claro.
http://vnanock.wordpress.com/2007/03/31/graficos-kiviat/



Ejercicio de autoevaluación 2.2 -
Partiendo del gráfico por defecto de algún programa que los elabore a partir de datos, ir convirtiéndolo en uno que cumpla las reglas anteriores.



Ejercicio de autoevaluación 2.3 -

  1. ¿Qué tipo de gráfico (líneas o barras) se usaría para trazar:
    • Uso de CPU para 12 meses del año. Líneas (en el gráfico no deben aparecer más de 10 barras)

    • Uso de CPU en función del tiempo en meses. Barras (si, como en el caso anterior, no son más de 10)

    • Número de E/S a 3 discos duros: A, B, y C. Barras (pero si fuese una evaluación del nºE/S en función del tiempo, usaría líneas de distintos colores)

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

  2. Para un sistema cualquiera, lista un número de magnitudes tipo "más alto es mejor" y "más bajo es mejor" y dibuja un gráfico de Kiviat típico usando valores cualesquiera.

Práctica 2 - Monitores del sistema


CS FIRE MONITOR
Encontré este programa buscando monitores para Windows. Es una herramienta compacta, potente, completa y muy fácil de usar.
http://www.croftssoftware.com/Downloads.html


Se puede monitorizar:
  1. CPU
  2. Ancho de banda de la red
  3. Memoria
  4. Disco/s duro/s
  5. Hardware
  6. Procesos
  7. Servicios
  8. Software
  9. Tareas
Además tiene una opción interesante (y útil para el ejercicio de autoevaluación 1.7) que es "MiniMonitor" en el que programa se queda ejecutando en 2º plano en la barra de tareas.

Tema 1: Sistemas Informáticos y su evaluación

Ejercicio de autoevaluación 1.1 - Mencionar sistemas operativos que no esten entre los anteriores (Unix, Linux, Windows, OS X, NetBSD, FreeBSD, OpenBSD) y el nicho de mercado que suelen cubrir:

Plan 9: usado en investigación como sucesor Unix
Novell Netware: sistema operativo de red
OS/2: desarrollado por IBM, Microsoft e Intel, fue diseñado originalmente para el microprocesador 286. Es una interfaz gráfica similar a Windows, aunque también incluye intérprete de comandos como DOS.
MS-DOS: es una interfaz de intérprete de comandos. Fue desarrollado por IBM en 1981 y su última actualización fue en 1994. Actualmente en desuso.
Palm OS: sistema operativo para PDA.
Windows CE: desarrollado por Microsoft en 1996 para dispositivos PDA; similar a Windows 95

Sistemas operativos para teléfonos móviles:

Symbian: Este sistema desciende de EPOC, empleado en los antiguos ordenadores de bolsillo Psion. Propiedad de Ericsson, Panasonic, Siemens AG, Nokia y Sony-Ericsson.
Windows Mobile: Windows Mobile, antes conocido como Windows CE o Pocket PC. Se emplea tanto en PDA's como en teléfonos móviles.

En este enlace viene una comparativa de distintos sistemas operativos:
http://es.wikipedia.org/wiki/Comparaci%C3%B3n_de_sistemas_operativos


Ejercicio de autoevaluación 1.2
1) Indicar que tipo de medidas sueles tomar para medir las prestaciones de un ordenador

Estas medidas dependen del factor que se quiera medir (memoria, tarjeta gráfica, velocidad transferencia disco duro, CPU) pero para tener una idea general se suele hacer:

- Emplear un programa de medición y testeo de las prestaciones como: SiSoft Sandra, Dr Hardware, PC Config, WinTune, WinBench, etc.

- Ejecutar un juego que tenga una fuerte demanda de recursos (RAM, CPU, GPU, ...) y comprobar el rendimiento de la máquina (si se ralentiza, si va "a tirones", renderizado, etc).

- Ejecutar muchos programas a la vez para comprobar la capacidad de la memoria principal.

- Realizar copias de CD's o DVD's y comprobar el tiempo de creación de las imágenes en el disco duro y el tiempo de grabación de los discos (suele dar una idea del tiempo de transferencia del disco duro).

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

- Al instalar nuevo software (demanda de prestaciones)
- Cuando quiero añadir un nuevo hardware, para ver el impacto sobre el rendimiento que tendrá y si es más conveniente comprar otro componente.

3) Indicar en qué casos percibes una falta de prestaciones de los ordenadores que sueles manejar
- Cuando no puedo actualizar el S.O. ni el nuevo software que sale al mercado (Windows Vista, paquete Office, etc)
- Cuando no puedo instalar un software porque demanda recursos que no posee mi equipo (por ej. Oracle)
- Cuando el sistema se ralentiza a medida que pasa el tiempo (más programas instalados, disco duro sin desfragmentar...)
- Cuando navego y tardo más tiempo en ver las páginas web que incluyen applets, gráficos, y contenido dinámico en general.
- Cuando aumenta el tiempo que tarda en arrancar el sistema operativo.


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? ¿Si suprimes alguno de ellos, qué pasa?

En Windows:
pulsando las teclas CTRL+ALT+SUPR se accede al administrador de tareas y se pueden ver los servicios que tiene arrancados el sistema, junto con el usuario que los inició y la cantidad de memoria principal que están consumiendo.

También se puede saber
yendo a Inicio, abriendo Ejecutar y escribiendo: msconfig. Se abre una nueva ventana de la configuración del sistema donde tenemos el SYSTEM.INI, WIN.INI, BOOT.INI, Servicios, Inicio, donde podremos modificar desde la forma en que arranca windows, ver los programas que arrancan con él y ver los servicios que están activos.

Otra curiosidad es el servicio denominado "svchost.exe": al iniciarse, Svchost.exe comprueba la parte de servicios del Registro para elaborar la lista de servicios que necesita cargar. Por esta razón, suele aparecer varias veces en la lista de procesos en ejecución.
Para ver la lista de servicios que se ejecutan en Svchost y los otros procesos (en WinXP) :

1. Elegir "Inicio" --> "Accesorios" --> "Símbolo del sistema"
2. Ahora en la ventana de la consola de comandos, escribair: Tasklist /SVC

Aparecerá un listado de los procesos activos y los servicios del sistema asociados con dichos procesos "si los hay" (en caso contrario muestra N/D, no disponible).
Tasklist muestra una lista de los procesos activos. El modificador /SVC muestra la lista de servicios activos para cada proceso.

Si tienes Windows XP Professional y quieres obtener más informacion sobre los servicios que el proceso SVCHOST está ejecutando en estos momentos haz esto:

1. Haz clic en el boton Inicio en la barra de tareas de Windows y, a continuación, en Ejecutar.
2. En el cuadro de diálogo Abrir, escribir CMD y, a continuación, presionar la tecla Enter.
3. Ahora en la ventana de la consola de comandos, escribir:

tasklist /svc /fi "imagename eq svchost.exe"

En este caso se mostrarán sólo los procesos SVCHOST.exe y sus servicios asociados.

Y la respuesta a la típica pregunta de si hay que cerrar o eliminar el proceso SVCHOST: ¡NO!.
No hay que tocarlo, este programa es importante para estabilidad y seguridad del sistema y no debería ser finalizado.


Ejercicio autoevaluación 1.3 - 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

1) Compilador
Antes de detallar el ejercicio, recomiendo la lectura de los siguientes enlaces incluso para los que crean que ya lo saben todo sobre compiladores):
http://es.wikipedia.org/wiki/Compilador
http://es.wikipedia.org/wiki/Compilaci%C3%B3n

1. Especificar los objetivos y definir el sistema: utilizar el compilador de C/C++ que tarde menos tiempo en compilar en una arquitectura de 64 bits.
2.
Hacer una lista de los servicios que ofrece el sistema y sus posibles resultados: tiempo en producir código ejecutable.
3. Seleccionar las métricas: tiempo en segundos (o submúltiplos)
4. Listar los parámetros que puedan afectar a las prestaciones: características específicas de la máquina donde se van a probar los distintos compiladores (tamaño caché L2, conjunto instrucciones procesador, frecuencia reloj, paralelismo a nivel de instrucción, tamaño memoria RAM, etc). Supongamos que en este caso es un AMD-Turion 64 1'8GHz (doble núcleo), 2MB caché L2, 2GB DDR2, 160GB HD SATA sobre kernel 2.6.22.9
5. Factores a estudiar: tiempo compilación
6. Seleccionar las técnicas de evaluación: modelización
7. Seleccionar la carga de trabajo:
8. Diseñar los experimentos:
9. Analizar e interpretar los datos:
10. Presentar los resultados:

Ejemplo de resultados para compiladores C/C++ sobre máquinas Sun:
http://www.spec.org/cpu2006/results/res2008q1/cpu2006-20080104-02950.html


Ejercicio autoevaluación 1.4
- 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



Notas.- HB = mayor es mejor; LB = menor es mejor; NB = nominal es mejor

Tarjeta gráfica: métricas con una variabilidad baja (que no de resultados dispares cada vez que se evalúe) y sin redundancias (si vamos a utilizar juegos, que no haya varios del mismo tipo).
- mostrar fuentes (HB)
- cambiar contexto (HB)
- mostrar ventanas (HB)
- colores (HB)
- mostrar objetos 3D y girarlos (HB)

Impresora
:
- consumo de tinta (LB)
- nºpáginas blanco y negro/minuto (HB)
- nºpáginas color/minuto (HB)

Artículo relacionado: http://www.cartucho-tinta.com/sp/medir-rendimiento-cartucho.php

Programa servidor web:
- Nº horas año activo (HB)
- MTBF (tiempo medio entre fallos) (HB)
- velocidad (HB)

Ordenador servidor web
:
- velocidad (HB)
- ancho de banda (HB)
- latencia (LB)
- porcentaje uso (NB)


Ejercicio autoevaluación 1.5 - Buscar sistemas gratuitos de simulación, especialmente para hardware

  • Simuladores de memoria
Es posible que la emulación de los subsistemas de memoria se reduzca a una simple tabla de elementos cada uno clasificado como una palabra emulada; sin embargo, este modelo falla rápidamente tan pronto como cualquier parte en memoria lógica de la computadora no coincida con la memoria física.

SMPCache: simulador de sistemas Caché en Multiprocesadores Simétricos
Es una herramienta sofware para la evaluación de sistemas jerárquicos de memorias cachés en SMP's con memoria compartida por bus. Funciona sobre Windows 98 ó 95.
http://arco.unex.es/smpcache/XIJP00.pdf

  • Simuladores de CPU
El simulador de CPU más simple sería un Intérprete informático, que sigue el flujo de ejecución del código de programación emulado y, por cada instrucción de código de la máquina emulada, ejecuta en el procesador en que se carga, instrucciones semánticamente equivalentes a las originales.

Esto es posible asignando una variable a cada registro y flag de la CPU simulada. La lógica de la CPU simulada puede ser más o menos traducida directamente a algoritmos de software, creando una re-implementación del software que básicamente refleja la implementación original del hardware.

  • Simuladores E/S
La mayoría de los simuladores no emulan el sistema del bus principal. Cada dispositivo de entrada y salida es tratado a menudo como un caso especial, y no existe una interfaz constante para los periféricos virtuales.

  • Simuladores electrónicos
"Hardware in the loop" es un simulador para analizar el comportamiento del programa electrónico de estabilidad en todas las situaciones de conducción.
http://www.topspeed.es/auto/noticias-de-autos/-seat-estrena-simulador-hardware-in-the-loop-ar45977.html

Un poco de historia...

Voy a presentarme: soy una informática de raza. Nací en el año 1973, cuando en los laboratorios Bell de AT&T Dennis Ritchie diseñaba un nuevo lenguaje de programación para el sistema operativo Unix.

Mi primer contacto con este mundo fue a través de un videojuego de máquinas recreativas (tan en boga en los 80's). Phoenix, el juego "matamarcianos" diseñado por la empresa Amstar.

Esto fue en el 83, tres años más tarde me apunté a clases particulares de informática para aprender Basic en ordenadores sin disco duro, cuyo S.O. se cargaba metiendo un disquete flexible de 5-1/4!!!

http://www.youtube.com/watch?v=C-cY4TEtmz0

Ahora que lo pienso, mi vida ha girado siempre alrededor de la Informática. En España, a mediados de los ochenta se vivió una especie de "revolución tecnológica". Los padres empezaron a comprar a sus hijos ordenadores personales, llevados por la falacia de que era un aporte didáctico insuperable. Nadie quería quedarse atrás, pero lo cierto es que la mayoría los usábamos para jugar. Así puedo hablaros del estupendo Amstrad de mi primo con su increíble memoria de 64Kb. Al que, para poder jugar, teníamos que cargar una cinta de cassette que se tiraba todo el tiempo chillando como cuando llamas a un fax, por las 2 caras! y a veces, el proceso fallaba y tenías que volver a repetir este tedioso proceso. Ah, qué tiempos!, que gozada el Arkanoid, otro juego que ha marcado mi adolescencia.

Todavía conservo mis programas impresos en Basic, interminables listados en papel contínuo (solo existían las impresoras matriciales, no las modernas y silenciosas de inyección de tinta); programas de miles de líneas para dibujar curvas y polígonos de colores (como los de los salvapantallas de Windows 95), calcular ecuaciones simples, preguntar tu nombre y mostrarlo por pantalla, etc, etc. No se puede decir que aportaran mucho a la comunidad científica, pero era muy divertido y estimulante tener la sensación de "enseñar" a una máquina, de decirle lo que querías que hiciera y ver los resultados.
La Informática era un poco creatividad al principio. Los "gurús" siempre han existido y existirán, gente que posee una intuición especial, o quizá han gastado más horas en tratar de entender ese ente abstracto relleno de cables que llamamos ordenador.


La cultura "yanqui" como siempre nos marcaba la pauta a seguir, y como el "boom" informático estaba en plena efervescencia, nos bombardeaban el cerebro con películas, unas míticas otras de culto como: Juegos de Guerra, Tron, D.A.R.Y.L, El Engendro Mecánico, Blade Runner, El chip prodigioso, Regreso al Futuro, 2001: Una odisea en el Espacio, Alien el 8º pasajero, etc etc.

El caso es que, a mi curiosidad infinita se le había presentado un nuevo reto. Comprender y dominar esa nueva tecnología, el deseo de crear, de "enseñar a la máquina"... Y aunque no entendía ni "papa" y todo me resultaba novedoso y extraño y funcionaba a base de reglas empíricas y rituales casi místicos, sabía que no cejaría en mi empeño hasta desentrañar los misterios de esos cacharros... Había nacido la informática que soy...
PD.- Vaya comentario más friki, pero... ¿acaso alguien se va a sorprender? XDDDD

Presentación

Hola, mi nombre es Isa y soy alumna de la asignatura Diseño y Evaluación de Configuraciones impartida en ETSIIT Granada por J.J. Merelo.
En este blog subiré apuntes tomados en clase, ejercicios de autoevaluación y todo tipo de material relacionado con DEC.