Guía de administración de energía
Manejo del consumo de energía en Red Hat Enterprise Linux 6
Edición 1.0
Resumen
Capítulo 1. Vista preliminar Copiar enlaceEnlace copiado en el portapapeles!
1.1. Importancia de administración de energía Copiar enlaceEnlace copiado en el portapapeles!
- reducción general de consumo de energía para ahorrar costo
- reducción de calor para servidores y centros de cómputo
- reducción de costos secundarios que incluyen enfriamiento, espacio, cables, generadores y Sistema de alimentación ininterrumpida(UPS).
- extensión de vida de baterías para portátiles
- baja salida de dióxido de carbono
- cumplimiento de regulaciones gubernamentales o requisitos legales sobre Informática verde, por ejemplo Energy Star
- cumplimiento de reglamentación empresarial para nuevos sistemas
- P: ¿Debo optimizar?
- P: ¿Cuánto necesito optimizar?
- P: ¿La optimización reducirá el rendimiento del sistema a un nivel inaceptable?
- P: ¿El tiempo y los recursos utilizados para optimizar el sistema superarán las ganancias obtenidas?
1.2. Fundamentos de administración de energía Copiar enlaceEnlace copiado en el portapapeles!
El kernel de Red Hat Enterprise Linux 5, utilizaba un temporizador periódico para cada CPU. Dicho temporizador evita que la CPU quede en realidad inactiva (lo cual sucede cada pocos milisegundos, según la configuración), independientemente de si se está ejecutando algún proceso o no. Una gran parte de la administración de energía efectiva implica la reducción de la frecuencia en la cual se crean los despertadores de CPU.
Esto es cierto especialmente para dispositivos que tienen partes móviles (tales como los discos duros). Además, algunas aplicaciones pueden dejar un dispositivo sin utilizar pero habilitado "abierto"; cuando esto se presenta, el kernel asume que el dispositivo está en uso, lo que puede impedir que el dispositivo entre en un estado de ahorro de energía.
Sin embargo, en muchos casos esto depende de un hardware moderno y de una configuración de BIOS correcta. Los componentes viejos del sistema, por lo general, no soportan las nuevas funciones que ahora podemos soportar en Red Hat Enterprise Linux 6. Asegúrese de utilizar el firmware oficial más reciente para sus sistemas y que estén habilitadas en la administración de energía o secciones de configuración de dispositivo de BIOS. Algunas funciones que se deben buscar son:
- SpeedStep
- PowerNow!
- Cool'n'Quiet
- ACPI (C state)
- Smart
Las CPU modernas junto con la Configuración avanzada e Interfaz de Energía (ACPI) proporcionan diferentes estados de energía. Los tres estados diferentes son:
- Dormido (Estados-C)
- Frecuencia (estados-P)
- La salida de calor (estados-T o "thermal states")
Obviamente, apagar los sistemas es una de las mejores formas de ahorrar energía. Por ejemplo, su compañía puede desarrollar una cultura corporativa enfocada a una conciencia de tecnología informática "verde" con una línea directriz para apagar las máquinas durante las horas de almuerzo, receso, o cuando termina la jornada laboral. También se podrían consolidar varios servidores físicos en un servidor más grande y virtualizarlos mediante la tecnología de virtualización que distribuimos con Red Hat Enterprise Linux 6.
Capítulo 2. Herramientas de administración y auditoría de energía Copiar enlaceEnlace copiado en el portapapeles!
2.1. Vista preliminar de auditoría y análisis Copiar enlaceEnlace copiado en el portapapeles!
2.2. PowerTOP Copiar enlaceEnlace copiado en el portapapeles!
yum install powertop
yum install powertop
powertop
powertop
aumentar el tiempo de reescritura sucia de VM, y la tecla (W) para aceptar la sugerencia.
C4 es superior a C3) y es un buen indicador de qué tan bien se ajusta el sistema al uso de CPU. Su meta debe ser la residencia de 90% o más en los estados superiores C o P cuando el sistema esté inactivo.
<>) entonces los despertadores estarán siempre asociados con un controlador específico que los genera. El ajuste de controladores suele requerir cambios de kernel que van más allá del objetivo de este documento. Sin embargo, los procesos de espacio de usuario que envían despertadores se administran con mayor facilidad. Primero, identifique si este servicio o aplicación debe ejecutarse en este sistema. Si no, simplemente, desactívelo. Para apagar este servicio de forma permanente, ejecute:
chkconfig nombre_ de_servicio off
chkconfig nombre_ de_servicio off
ps -awux | grep nombre_ de_ componente strace -p processid
ps -awux | grep nombre_ de_ componente
strace -p processid
aumentar el tiempo de reescritura sucia de VM y la tecla (W) para aceptar la sugerencia. Estos cambios solo se activarán después del reinicio. Para ayudarle a hacer los cambios permanentes, PowerTOP desplegará el comando exacto que ejecuta para realizar esta optimización. Añada el comando a su archivo /etc/rc.local con su editor preferido para que el cambio se efectúe cada vez que el computador arranque.
Figura 2.1. PowerTOP en operación
2.3. Diskdevstat y netdevstat Copiar enlaceEnlace copiado en el portapapeles!
yum install systemtap tuned-utils kernel-debuginfo
yum install systemtap tuned-utils kernel-debuginfo
diskdevstat
diskdevstat
netdevstat
netdevstat
diskdevstat update_interval duración_total mostrar_histograma
netdevstat update_interval duración_total mostrar_histograma
- actualizar_intervalo
- El tiempo en segundos entre actualizaciones de la pantalla. Predeterminado:
5 - duración_total
- El tiempo en segundos para el total. Predeterminado:
86400(1 día) - mostrar_histograma
- Indica si hacer histograma para todos los datos recolectados al final de la ejecución.
- PID
- El ID de proceso de la aplicación
- UID
- El ID de usuario bajo el cual se ejecutan las aplicaciones
- DEV
- El dispositivo en el cual la E/S tienen lugar
- WRITE_CNT
- El número total de operaciones de escritura
- WRITE_MIN
- El tiempo mínimo para dos escritos consecutivos (en segundos)
- WRITE_MAX
- El tiempo máximo para dos escritos consecutivos (en segundos)
- WRITE_AVG
- El tiempo promedio para dos escritos consecutivos (en segundos)
- READ_CNT
- El número total de operaciones de lectura
- READ_MIN
- El tiempo mínimo para dos lecturas consecutivas (en segundos)
- READ_MAX
- El máximo tiempo para dos lecturas consecutivas (en segundos)
- READ_AVG
- El tiempo promedio para dos lecturas consecutivas (en segundos)
- COMMAND
- El nombre del proceso
PID UID DEV WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG READ_CNT READ_MIN READ_MAX READ_AVG COMMAND 2789 2903 sda1 854 0.000 120.000 39.836 0 0.000 0.000 0.000 plasma 2573 0 sda1 63 0.033 3600.015 515.226 0 0.000 0.000 0.000 auditd 2153 0 sda1 26 0.003 3600.029 1290.730 0 0.000 0.000 0.000 rsyslogd
PID UID DEV WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG READ_CNT READ_MIN READ_MAX READ_AVG COMMAND
2789 2903 sda1 854 0.000 120.000 39.836 0 0.000 0.000 0.000 plasma
2573 0 sda1 63 0.033 3600.015 515.226 0 0.000 0.000 0.000 auditd
2153 0 sda1 26 0.003 3600.029 1290.730 0 0.000 0.000 0.000 rsyslogd
WRITE_CNT mayor que 0, lo cual significa que realizan un forma de escritura durante la medición. De ellas, plasma fue el peor transgresor en un alto grado: realizó la mayoría de operaciones de escritura y por lo tanto el promedio de tiempo entre escrituras fue el más bajo. Por esa razón Plasma sería el mejor candidato para investigar si está interesado en aplicaciones ineficientes de energía.
strace -p 2789
strace -p 2789
strace contenía un patrón repetitivo cada 45 segundos que abría para escribir el archivo cache del icono de KDE del usuario para escribir y luego lo cerraba inmediatamente. Esto llevaba necesariamente a una escritura física al disco duro cuando los metadatos del archivo (específicamente, el tiempo de modificación) habían cambiado. La corrección final era evitar llamadas innecesarias cuando no se presentaban actualizaciones de iconos.
2.4. Kit de herramientas de vida de batería Copiar enlaceEnlace copiado en el portapapeles!
-a.
office escribe un texto, corrige cosas en él y hace lo mismo para una hoja de cálculo. Al ejecutar BLTK junto con PowerTOP o cualquiera otra herramienta de auditoría o análisis podrá probar si las optimizaciones que usted realizó tienen algún efecto cuando la máquina está activa en uso en lugar de cuando solo está en inactividad. Puesto que la misma carga de trabajo se puede ejecutar varias veces para diferentes configuraciones, usted podrá comparar resultados para diferentes configuraciones
yum install bltk
yum install bltk
bltk carga_de_trabajo opciones
bltk carga_de_trabajo opciones
idle por 120 segundos:
bltk -I -T 120
bltk -I -T 120
-I,--idle- El sistema está inactivo, usar una línea de base para comparar con otras cargas de trabajo
-R,--reader- Simula lectura de documentos (por defecto, con Firefox)
-P,--player- Simula ver archivos de multimedia desde una unidad de CD o DVD (por defecto, con mplayer)
-O,--office- Simula la edición de documentos con el paquete de OpenOffice.org
-a,--ac-ignore- Ignorar si energía de Corriente alterna está disponible (necesaria para usar escritorio)
-T número_de_segundos,--time número_de_segundos- El tiempo (en segundos) sobre el cual ejecutar la prueba; use esta opción con la carga de trabajo
idle -F nombre_de_archivo,--file nombre_de archivo- Especifica un archivo para ser usado por una carga determinada, por ejemplo, un archivo para la carga de trabajo del
reproductorpara que se reproduzca en lugar de acceder a la unidad de CD o DVD -W aplicación,--prog aplicación- Especifica una aplicación para ser utilizada por una carga de trabajo particular, por ejemplo, un navegador diferente a Firefox para la carga de trabajo de
lector
bltk.
/etc/bltk.conf, ~/.bltk/workload.results.number/. Por ejemplo, el directorio ~/.bltk/reader.results.002/ guarda los resultados de la tercera prueba con la carga de trabajo de lector (la primera prueba no está numerada). Los resultados están esparcidos a través de varios archivos de texto. Para condensar estos resultados dentro de un formato fácil de leer, ejecute:
bltk_report ruta _a_directorio_de_resultados
bltk_report ruta _a_directorio_de_resultados
Report en el directorio de resultados. Para ver los resultados en un emulador de terminal, utilice la opción -o:
bltk_report -o ruta_a_directorio_de_resultados
bltk_report -o ruta_a_directorio_de_resultados
2.5. Tuned y ktune Copiar enlaceEnlace copiado en el portapapeles!
yum install tuned
yum install tuned
/etc/tuned.conf y activa el perfil predeterminado.
service tuned start
service tuned start
chkconfig tuned on
chkconfig tuned on
-d,--daemon- Inicia tuned como daemon en lugar de en primer plano.
-c,--conffile- Usa un archivo de configuración con el nombre y ruta especificados, por ejemplo,
--conffile=/etc/tuned2.conf. El predeterminado es/etc/tuned.conf. -D,--debug- Usa el nivel superior de registro.
2.5.1. El archivo tuned.conf Copiar enlaceEnlace copiado en el portapapeles!
tuned.conf contiene las configuraciones de tuned. Por defecto, se localiza en /etc/tuned.conf, pero puede especificar un nombre y dirección diferentes si iniciatuned con la opción --conffile.
[main] que define los parámetros generales para tuned. El archivo contiene una sección para cada complemento.
[main] contiene las siguientes opciones:
interval- El intervalo en el que tuned debe monitorizar y ajustar el sistema, en segundos. El predeterminado es el valor
10. verbose- Especifica si la salida debe ser detallada. El valor predeterminado es
Falso. logging- Especifica la prioridad mínima de mensajes que deben ser registrados. En orden descendente, los valores permitido son:
crítico,error,advertencia,infoydepuración. El valor predeterminado esinfo. logging_disable- Especifica la prioridad máxima de mensajes a ser registrados; cualquier mensaje con esta prioridad o menor no será registrado. En orden descendiente, los valores permitidos son:
crítico,error,advertencia,info, ydepuración. El valornotsetinhabilita esta opción.
[CPUTuning]. Cada complemento puede tener sus propias opciones, pero lo siguiente se aplica a todos los complementos:
enabled- Especifica si el complemento está habilitado o no. El valor predeterminado es
Verdadero. verbose- Especifica si la salida debe ser detallada. Si no se establece para este complemento, el valor se heredará de
[main]. logging- Especifica la prioridad mínima de mensajes a ser registrados. Si no se establece para este complemento, el valor se heredará de
[main].
2.5.2. Tuned-adm Copiar enlaceEnlace copiado en el portapapeles!
tuned-adm, pero también usted mismo puede crear, modificar o borrar perfiles.
tuned-adm list
tuned-adm list
tuned-adm active
tuned-adm active
tuned-adm profile profile_name
tuned-adm profile profile_name
tuned-adm profile server-powersave
tuned-adm profile server-powersave
tuned-adm off
tuned-adm off
predeterminado se activará. Red Hat Enterprise Linux 6 también incluye los siguiente perfiles predeterminados:
- default
- Es el perfil predeterminado de ahorro de energía. Tiene el más bajo impacto en ahorro de energía de los perfile disponibles y solo habilita CPU y complementos de disco de tuned.
- desktop-powersave
- Es un perfil de ahorro de energía dirigido a sistemas de escritorio. Habilita ahorro de energía ALPM para adaptadores de host SATA (consulte la Sección 3.6, “Administración de energía de enlace agresivo ”) y complementos de CPU, Ethernet, y disco de tuned.
- server-powersave
- Es un perfil de ahorro de energía dirigido a los sistemas de servidores. Habilita el ahorro de energía ALPM para adaptadores de host SATA, inhabilita polling de CD-ROM a través de HAL (consulte la página man hal-disable-polling) y activa la CPU y complementos de disco de tuned.
- laptop-ac-powersave
- Es un perfil de ahorro de energía de medio impacto dirigido a portátiles en AC. Habilita ahorro de energía ALPM para adaptadores de host SATA, ahorro de energía WIFI, como también complementos de CPU, Ethernet y disco de tuned.
- laptop-battery-powersave
- Es un perfil de ahorro de energía de alto impacto dirigido a portátiles que se ejecutan con batería. Activa todos los mecanismos de ahorro de energía de los perfiles anteriores y habilita el programador de ahorro de energía multi-núcleos para sistemas despertadores bajos,. Además, se asegura de que el gobernador ondemand esté activo y que el ahorro de energía AC97 esté habilitado. Este perfil se puede usar para ahorrar la máxima cantidad de energía en cualquier clase de sistema, no solo portátiles con batería. El sacrificio a cambio es un notable impacto en rendimiento, específicamente en latencia de disco y E/S de red.
- throughput-performance
- Es un perfil de servidor para ajuste de rendimiento. Inhabilita los mecanismos de ahorro de energía tuned y ktune, habilita la configuración de sysctl que mejora el rendimiento de procesamiento de su E/S de red y disco y cambia al programador de fecha límite.
- latency-performance
- Es un perfil de servidor para ajuste de rendimiento de latencia típica. Inhabilita los mecanismos de ahorro de energía de tuned y ktune habilita la configuración de sysctl para mejorar el rendimiento de latencia de su E/S de red.
/etc/tune-profiles. Por lo tanto, /etc/tune-profiles/desktop-powersave contiene todos los archivos y configuraciones necesarios para ese perfil. Cada uno de estos directorios contiene hasta cuatro archivos:
tuned.conf- la configuración para el servicio ajustado como activo para este perfil.
sysctl.ktune- la configuración sysctl utilizada por ktune. El formato es idéntico al archivo
/etc/sysconfig/sysctl(consulte las páginas man sysctl y sysctl.conf).. ktune.sysconfig- el archivo de configuración de ktune, típicamente
/etc/sysconfig/ktune. ktune.sh- un script de shell estilo init utilizado por ktune el cual puede ejecutar comandos específicos durante el inicio del sistema para ajustar el sistema.
laptop-battery-powersave ya contiene un set de ajustes muy variados y es por lo tanto, útil como punto de partida. Simplemente copie todo el directorio al nuevo nombre de perfil así:
cp -a /etc/tune-profiles/laptop-battery-powersave/ /etc/tune-profiles/myprofile
cp -a /etc/tune-profiles/laptop-battery-powersave/ /etc/tune-profiles/myprofile
# Disable HAL polling of CDROMS for i in /dev/scd*; do hal-disable-polling --device $i; done > /dev/null 2>&1
# Disable HAL polling of CDROMS
# for i in /dev/scd*; do hal-disable-polling --device $i; done > /dev/null 2>&1
2.6. DeviceKit de energía y devkit de energía Copiar enlaceEnlace copiado en el portapapeles!
devkit-power y las siguientes opciones:
--enumerate,-e- Presenta una ruta de objeto para cada dispositivo de energía en el sistema, por ejemplo:
/org/freedesktop/DeviceKit/power/devices/line_power_AC /org/freedesktop/UPower/DeviceKit/power/battery_BAT0
/org/freedesktop/DeviceKit/power/devices/line_power_AC /org/freedesktop/UPower/DeviceKit/power/battery_BAT0Copy to Clipboard Copied! Toggle word wrap Toggle overflow --dump,-d- Presenta los parámetros para todos los dispositivos de energía en el sistema.
--wakeups,-w- Presenta los despertadores de CPU en el sistema.
--monitor,-m- Monitoriza el sistema para los cambios a los dispositivos de energía, por ejemplo, la conexión o desconexión de una fuente de alimentación de CA o el agotamiento de una pila. Presione Ctrl+C para detener la monitorización del sistema.
--monitor-detail- Monitoriza el sistema para cambios a dispositivos de energía, por ejemplo, la conexión o desconexión de una fuente de alimentación de CA o el agotamiento de una pila. La opción
--monitor-detailpresenta más información que la opción--monitor. Presione Ctrl+C para detener la monitorización del sistema. --show-info object_path,-i object_path- Presenta toda la información disponible para una ruta de objeto determinada. Por ejemplo, para obtener información sobre la batería de su sistema representada por la ruta de objeto
/org/freedesktop/UPower/DeviceKit/power/battery_BAT0, ejecute:devkit-power -i /org/freedesktop/UPower/DeviceKit/power/battery_BAT0
devkit-power -i /org/freedesktop/UPower/DeviceKit/power/battery_BAT0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7. El Gestor de energía de GNOME Copiar enlaceEnlace copiado en el portapapeles!
- En energía de CA
- En energía de batería
- General
2.8. Otros medios de auditoría Copiar enlaceEnlace copiado en el portapapeles!
- vmstat
- vmstat proporciona información detallada sobre procesos, memoria, búsqueda, E/S de bloque, trampas y actividad de CPU. Utilícelo para ver más de cerca lo que el sistema global hace y dónde está ocupado.
- iostat
- iostat es similar a vmstat, pero solo para dispositivos de bloque de E/S. También proporciona estadísticas y una salida más detallada.
- blktrace
- blktrace es un programa de rastreo de E/S de bloque. Analiza la información en bloques únicos asociados con aplicaciones. Es muy útil en combinación con diskdevstat.
Capítulo 3. Infraestructura central y mecánica Copiar enlaceEnlace copiado en el portapapeles!
3.1. Estados de CPU inactivos Copiar enlaceEnlace copiado en el portapapeles!
- C0
- El estado en operación o en ejecución. En este estado, la CPU está funcionando y no esta inactiva de ninguna manera.
- C1, Halt
- Un estado en el que el procesador no está ejecutando instrucciones, pero típicamente no está en un estado de energía bajo. La CPU puede continuar procesando sin ninguna demora. Todos los procesadores que ofrecen estados-C necesitan soportar dicho estado. Los procesadores Pentium 4 soportan un estado C1 mejorado llamado C1E que en efecto es un estado de bajo consumo energético.
- C2, Stop-Clock
- Un estado opcional en el que el reloj está congelado para este procesador, pero que mantiene un estado completo para sus registradores y memorias cache, por lo tanto, después de reiniciar el reloj puede inmediatamente reiniciar el procesamiento. Éste es un estado opcional.
- C3, Dormido
- Un estado opcional en el que el procesador se va a dormir y no necesita mantener su memoria cache actualizada. Despertar de este estado toma un tiempo considerablemente mayor que desde C2.
3.2. Uso de gobernadores CPUfreq Copiar enlaceEnlace copiado en el portapapeles!
3.2.1. Tipos de gobernadores CPUfreq Copiar enlaceEnlace copiado en el portapapeles!
El Gobernador de Rendimiento fuerza a la CPU a usar la frecuencia de reloj más alta posible. Esta frecuencia se establecerá de forma estática y no cambiará. Como tal, este gobernador no ofrece beneficio de ahorro de energía. Solamente es apropiado para horas de carga de trabajo pesado y aún así solo cuando la CPU está rara vez (o nunca) inactiva.
En contraste, el gobernador Powersave fuerza a la CPU a usar la frecuencia de reloj más baja posible. Esta frecuencia se establecerá de forma estática y no cambiará. Como tal, este gobernador ofrece ahorro máximo de energía, pero a expensas del rendimiento de CPU más bajo.
El gobernador Ondemand es un gobernador dinámico que permite a la CPU alcanzar la máxima frecuencia de reloj cuando el sistema está inactivo. Aunque esto permite al sistema ajustar el consumo de energía según la carga del sistema, lo hace a expensas de la latencia entre el cambio de frecuencia. Como resultado, la latencia puede alterar los beneficios de ahorro de energía /rendimiento ofrecidos por el gobernador Ondemand si el sistema cambia, con demasiada frecuencia, entre inactivo y carga de trabajo pesada.
El gobernador Userspace le permite establecer la frecuencia a programas de espacio de usuario (o cualquier proceso que esté ejecutándose como root). Este gobernador se utiliza junto con el daemon cpuspeed. De todos lo gobernadores, Userspace es el más adaptable; y dependiendo de cómo se configure, puede ofrecer el mejor balance entre rendimiento y consumo para su sistema.
Al igual que el gobernador Ondemand, el gobernador Conservative ajusta la frecuencia de reloj según el uso. Sin embargo, mientras el gobernador Ondemand lo hace de una manera agresiva (es decir, desde lo máximo a lo mínimo y viceversa), el gobernador Conservative cambia de frecuencias gradualmente.
Nota
cron. Esto le permite automáticamente establecer gobernadores específicos durante horas específicas del día. Como consecuencia, puede especificar un gobernador de baja frecuencia durante tiempos de inactividad (por ejemplo despues de horas de trabajo) y retornar a un gobernador de frecuencia más alta durante horas de carga de trabajo pesada.
3.2.2. Configuración de CPUfreq Copiar enlaceEnlace copiado en el portapapeles!
Procedimiento 3.1. Cómo añadir el controlador CPUfreq
- Utilice el siguiente comando para ver cuáles controladores de CPUfreq están disponibles en su sistema:
ls /lib/modules/[versión de kernel]/kernel/arq/[arquitectura]/kernel/cpu/cpufreq/
ls /lib/modules/[versión de kernel]/kernel/arq/[arquitectura]/kernel/cpu/cpufreq/Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Use
modprobepara añadir el controlador CPUfreq apropiado.modprobe [controlador de CPUfreq]
modprobe [controlador de CPUfreq]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Al usar el comando anterior, asegúrese de eliminar el sufijo de nombre de archivo.koImportante
Al escoger un controlador CPUfreq apropiado, siempre elijaacpi-cpufreqsobrep4-clockmod. Aunque el uso del controladorp4-clockmodreduce la frecuencia del reloj de una CPU, no reduce el voltaje. Por otra parte,acpi-cpufreqreduce el voltaje junto con la frecuencia del reloj de la CPU, permitiendo menos consumo de energía y salida de calor para cada reducción de unidad en rendimiento.. - Una vez el controlador CPUfreq esté configurado, se podrá ver el sistema actual que está gobernando, mediante:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
cat /sys/devices/system/cpu/[cpu ID]/cpufreq/scaling_available_governors
cat /sys/devices/system/cpu/[cpu ID]/cpufreq/scaling_available_governors
modprobe para añadir los módulos de kernel necesarios para habilitar el gobernador CPUfreq específico que desee utilizar. Dichos módulos de kernel están disponibles en /lib/modules/[versión de kernel]/kernel/drivers/cpufreq/.
Procedimiento 3.2. Cómo habilitar un gobernador CPUfreq
- Si el gobernador específico no aparece en la lista como disponible, utilice
modprobepara habilitar el gobernador que desee utilizar. Por ejemplo, si el gobernadorondemandno está disponible para su CPU, use el siguiente comando:modprobe cpufreq_ondemand
modprobe cpufreq_ondemandCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Cuando un gobernador esté listado como disponible para su CPU, usted podrá habilitarlo mediante:
echo [gobernador] > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo [gobernador] > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3. Ajuste de la política CPUfreq y Velocidad Copiar enlaceEnlace copiado en el portapapeles!
/sys/devices/system/cpu/[cpu ID]/cpufreq/. Dichos ajustadores son:
cpuinfo_min_freq— Muestra la frecuencia operativa mínima disponible de CPU' (en KHz).cpuinfo_max_freq— Muestra la frecuencia operativa máxima disponible de CPU' (en KHz).scaling_driver— Muestra qué controlador CPUfreq se utiliza para establecer la frecuencia en esta CPU.scaling_available_governors— Muestra los gobernadores de CPUfreq disponibles en este kernel. Si desea utilizar un gobernador de CPUfreq que no esté listado en este archivo, consulte el Procedimiento 3.2, “Cómo habilitar un gobernador CPUfreq” en la Sección 3.2.2, “Configuración de CPUfreq” para obtener instrucciones sobre cómo hacerlo.scaling_governor— Muestra el gobernador CPUfreq que está en uso. Para utilizar un gobernador diferente, utiliceecho [governor] > /sys/devices/system/cpu/[cpu ID]/cpufreq/scaling_governor(consulte el Procedimiento 3.2, “Cómo habilitar un gobernador CPUfreq” en la Sección 3.2.2, “Configuración de CPUfreq” para obtener mayor información).cpuinfo_cur_freq— Muestra la velocidad actual de la CPU (en KHz).scaling_available_frequencies— Lista las frecuencias disponibles para la CPU, en KHz.scaling_min_freqyscaling_max_freq— Establecen los límites de política de la CPU, en KHz.affected_cpus— Lista las CPU que requieren software de coordinación de frecuencia.scaling_setspeed— Utilizado para cambiar la velocidad del reloj de la CPU, en KHz. Solo puede establecer una velocidad entre los límites de políticas de las CPU (como enscaling_min_freqyscaling_max_freq).
cat [tunable]. Por ejemplo, para ver la velocidad actual de cpu0 (en KHz), use:
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq.
echo [value]> /sys/devices/system/cpu/[cpu ID]/cpufreq/[tunable]. Por ejemplo, para establecer la mínima velocidad de cpu0 a 360 KHz, use:
echo 360000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
3.3. Suspender y reanudar Copiar enlaceEnlace copiado en el portapapeles!
3.4. Kernel sin intervalos Copiar enlaceEnlace copiado en el portapapeles!
3.5. Administrador de energía de estado activo Copiar enlaceEnlace copiado en el portapapeles!
- default
- establece los estados de enlace de energía de PCLe según los predeterminados especificados por firmware en el sistema (por ejemplo, BIOS). Este es el estado predeterminado para ASPM.
- powersave
- Configura ASPM para ahorrar energía cuando sea posible, independiente del costo de rendimiento.
- performance
- Inhabilita ASPM para permitir que enlaces PCLe operen con el máximo rendimiento
/sys/module/pcie_aspm/parameters/policy, pero también pueden especificarse en el momento de arranque con el parámetro de kernel pcie_aspm, donde pcie_aspm=off inhabilita a ASPM y pcie_aspm=force habilita a ASPM, incluso en dispositivos que no soportan ASPM.
Aviso
pcie_aspm=force, el hardware que no soporte ASPM puede hacer que el sistema deje de responder. Antes de configurar pcie_aspm=force, verifique si todo el hardware PCIe en el sistema soporta ASPM.
3.6. Administración de energía de enlace agresivo Copiar enlaceEnlace copiado en el portapapeles!
Este modo establece el enlace a su mínimo estado de energía, (LETARGO) cuando no hay E/S en el disco. Dicho modo es útil para cuando se espera un periodo extendido de tiempo de inactividad.
Este modo establece el enlace en el segundo estado más bajo de energía (PARCIAL) cuando no hay E/S en el disco. Dicho modo está diseñado para permitir transiciones en estados de enlace de energía (por ejemplo durante los momentos de alta carga de E/S intermitente y tiempo de inactividad de E/S) con el menor impacto posible en rendimiento.
medium_power permite el enlace a la transición entre estados PARCIAL y TOTAL (es decir "ACTIVO"), dependiendo de la carga. Observe que no es posible la transición directa de un enlace PARCIAL a SLUMBER y viceversa; en este caso, ningún estado de energía puede pasar al otro sin haber hecho primero la transición al estado ACTIVO.
ALPM está inhabilitado; el enlace no entra a ningún estado de baja cuando no hay E/S en el disco.
/sys/class/scsi_host/host*/link_power_management_policy existe.
3.7. Optimización de acceso de unidad de Relatime Copiar enlaceEnlace copiado en el portapapeles!
atime, y el mantenimiento de ésta requiere una serie constante de operaciones de escritura para almacenaje. Dichas escrituras mantienen dispositivos de almacenamiento y sus enlaces ocupados y encendidos. Puesto que pocas aplicaciones utilizan datos atime, esta actividad de dispositivo de almacenamiento desperdicia energía. La escritura a almacenamiento se presenta incluso si el archivo no fue leído desde el almacenaje, sino desde la memoria cache. Por algún tiempo, el kernel de Linux ha soportado la opción noatime para mount y no escribiría datos atime a sistemas de archivos montados con esta opción. Sin embargo, la desactivación de esta funcionalidad es problemática, puesto que algunas aplicaciones dependen de los datos de atime y fallarán si no está disponible.
relatime. Relatime mantiene datos atime, pero no para cada vez que se acceda a un archivo. Con esta opción habilitada, los datos atime se escriben al disco únicamente si el archivo ha sido modificado desde la última vez que los datos atime fueron actualizados (mtime), o si el archivo fue accedido por un periodo de tiempo mayor (por defecto, un día).
relatime habilitada. Para suprimir esta función a través de todo el sistema, use el parámetro de arranque default_relatime=0. Si relatime está habilitada por defecto en un sistema, podrá suprimirla para un determinado sistema de archivos montando ese sistema de archivos con la opción norelatime. Por último, para variar la longitud predeterminada antes de que el sistema actualice los datos atime de un archivo, use el parámetro de arranque relatime_interval=, especificando el periodo en segundos. El valor predeterminado es 86400.
3.8. Límite de energía Copiar enlaceEnlace copiado en el portapapeles!
El límite de energía dinámico es una función disponible en la selección de servidores ProLiant y BladeSystem que permite a los administradores de sistema limitar el consumo de energía de un servidor o un grupo de servidores. El límite es un límite definitivo que el servidor no superará, independientemente de su carga de trabajo actual. El límite no surte ningún efecto hasta que el servidor alcanza su límite de consumo de energía. En ese momento, el procesador de gestión ajusta estados de CPU P y la aceleración del reloj para limitar la energía consumida.
/hpilo/dev/d X ccb N. El kernel también incluye una extensión de la interfaz de sysfs hwmon que soporta funciones de límite de energía y un controlador hwmon para medidores de energía ACPI 4.0 que utilizan la interfaz sysfs. Estas características permiten que el sistema operativo y las herramientas de espacio de usuario lean el valor configurado para el límite de energía, junto con el uso actual de energía del sistema.
El Administrador de nodos de Intel ,impone un límite de energía en sistemas, mediante el procesador de estados- P y estados-T para limitar el rendimiento de la CPU y, por tanto, el consumo de energía. Al establecer una política de gestión de energía, los administradores pueden configurar sistemas para consumir menos energía en momentos en que las cargas de sistema son bajas, por ejemplo, por la noche o los fines de semana.
3.9. Administración de energía en gráficas mejoradas Copiar enlaceEnlace copiado en el portapapeles!
La Señal diferencial de bajo voltaje (LVDS) es un sistema para llevar señales electrónicas en alambre de cobre. Una aplicación importante del sistema es la transmisión de información pixel a pantalla de cristal líquido (LCD) en computadores notebook. Todas las pantallas tienen tasa de actualización — la tasa en la cual reciben datos actualizados desde un controlador gráfico y redirigen la imagen en la pantalla. Por lo general, la pantalla recibe datos actualizados sesenta veces por segundo (una frecuencia de 60 Hz). Cuando una pantalla y controlador gráfico están conectados por LVDS, el sistema LVDS utiliza energía en cada ciclo de actualización. Cuando está inactivo, la tasa de actualización de varias pantallas LCD pueden caer a 30 Hz sin ningún efecto perceptible (a diferencia de los monitores de tubo de rayos catódicos (CRT), en los cuales la reducción en la tasa de actualizaciones produce un parpadeo característico). El controlador Intel para adaptadores gráficos incorporado en el kernel utilizado en Red Hat Enterprise Linux 6 realiza automáticamente este downclocking y ahorra cerca de 0.5 W cuando la pantalla está inactiva.
Memoria de acceso aleatorio dinámico y sincrónico (SDRAM) — utilizada para memoria de vídeo en adaptadores gráficos — se recarga miles de veces por segundo para que las células de memoria individual retengan los datos que se almacenan en ellos. Aparte de su función principal de administrar datos cuando entran y salen de la memoria, el controlador de memoria es responsable de iniciar estos ciclos de actualización. Sin embargo, SDRAM también tiene un modo de auto actualización de baja energía. En dicho modo, la memoria utiliza un temporizador interno para generar su propios ciclos de actualización, lo cual permite al sistema apagar el controlador de memoria sin dañar los datos que están actualmente en memoria. El kernel utilizado en Red Hat Enterprise Linux 6 puede reactivar la auto-actualización de memoria en los adaptadores gráficos Intel cuando están en inactividad, lo cual ahorra cerca de 0.8 W.
Las unidades de procesamiento gráfico típicas (GPU) contienen relojes internos que gobiernan varias partes de su circuito interno. El kernel utilizado en Red Hat Enterprise Linux 6 puede reducir la frecuencia de algunos de los relojes internos en GPU Intel y ATI. Al reducir el número de ciclos que los componentes de GPU realizan en un tiempo determinado, se ahorra la energía que hubieran consumido en los ciclos que no tenían que actuar. El kernel reduce automáticamente la velocidad de estos relojes cuando la GPU está inactiva y la incrementa cuando la actividad de GPU aumenta. Al reducir los ciclos de reloj de GPU se pueden ahorrar hasta 5 W.
Los controladores gráficos Intel y ATI en Red Hat Enterprise Linux 6 pueden detectar cuando no hay un monitor conectado a un adaptador y por lo tanto, apagar completamente la GPU. Esta función es en particular importante para servidores que no tienen monitores conectados regularmente a ellos.
3.10. RFKill Copiar enlaceEnlace copiado en el portapapeles!
/dev/rfkill, el cual contiene el estado actual de todos los radiotransmisores en el sistema. Cada dispositivo tiene su estado RFKill actual registrado en sysfs. Además, RFKill genera uevents para cada cambio de estado en un dispositivo RFKill-habilitado.
rfkill list para obtener una lista de dispositivos, cada uno de los cuales tiene un número de índice asociado a este, iniciando en 0. Se puede usar este número de índice para decirle a rfkill que bloquee o desbloquee un dispositivo, por ejemplo:
rfkill block 0
rfkill block 0
rfkill block wifi
rfkill block wifi
rfkill block all
rfkill block all
rfkill unblock en lugar de rfkill block. Para obtener una lista completa de las categorías de dispositivos que rfkill puede bloquear, ejecute: rfkill help
3.11. Optimizaciones en espacio de usuario Copiar enlaceEnlace copiado en el portapapeles!
Red Hat Enterprise Linux 6 utiliza un kernel sin intervalo (consulte la Sección 3.4, “Kernel sin intervalos”), el cual permite a la CPU permanecer en los estados más profundos de inactividad por más tiempo. Sin embargo, el temporizador de intervalo no es la única fuente de despertadores de CPU excesivos y las llamadas de función desde aplicaciones pueden también evitar que la CPU entre o permanezca en estados de inactividad. Las llamadas de función innecesarias se redujeron en más de 50 aplicaciones.
La entrada o salida (E/S) para dispositivos de almacenamiento y las interfaces de red obligan a dispositivos a consumir energía. En dispositivos de almacenamiento y de red esa función reducía los estados de energía cuando estaban inactivos (por ejemplo, ALPM o ASPM), este tráfico puede impedir que el dispositivo entrar o permanecer en un Estado de inactividad y puede impedir que unidades de disco duro de girar hacia abajo cuando no esté en uso. Las demandas excesivas e innecesarias de almacenamiento de información han sido minimizadas en varias aplicaciones. En particular, aquellas demandas que impedían a unidades de disco duro girar hacia abajo.
Los servicios que se inicien automáticamente si se requieren o no tienen gran potencial para residuos de recursos del sistema. En su lugar, los servicios deben por defecto estar en "off" o "en demand" siempre que sea posible. Por ejemplo, el servicio de BlueZ que permite el soporte de Bluetooth previamente se ejecutaba automáticamente cuando se iniciaba el sistema, si el hardware de Bluetooth estaba presente o no. Initscript de BlueZ ahora comprueban que hardware Bluetooth está presente en el sistema antes de iniciar el servicio.
Capítulo 4. Casos de uso Copiar enlaceEnlace copiado en el portapapeles!
4.1. Ejemplo — Servidor Copiar enlaceEnlace copiado en el portapapeles!
Un servidor de Web necesita E/S de red y disco. Según la velocidad de conexión externa 100 Mbit/s podría ser suficiente. Si la máquina sirve en su mayoría páginas estáticas, el rendimiento de la CPU podría no ser importante. Las opciones de administración de energía por lo tanto incluirían:
- no hay complementos de disco o de red para tuned.
- ALPM encendido.
- Gobernador
ondemandencendido. - tarjeta de red limitada a 100 Mbit/s.
Un servidor de cómputo principalmente necesita CPU. Las opciones de administración de energía podrían incluir:
- Según los trabajos y dónde se suceda el almacenamiento de datos, complementos de disco y red para tuned; o para sistemas de modo-batch, completamente activos tuned.
- según el uso,quizás el gobernador de
rendimiento.
Un servidor de correo necesita la mayoría de las opciones de E/S de disco y CPU. Las opciones de administración de energía podrían incluir:
- Gobernador
ondemandencendido, puesto que el último porcentaje de rendimiento de CPU no es importante. - no hay complementos de disco o de red para tuned.
- la velocidad de red no debe ser limitada, puesto que el correo a menudo es interno y puede, por lo tanto, beneficiarse de un enlace de 1 Gbit/s o 10 Gbit/s.
Los requisitos del Servidor de archivos son similares a los del servidor de correo, pero dependiendo del protocolo utilizado, podría requerir más rendimiento de CPU. Por lo general, servidores basados en Samba, requieren más CPU que NFS y, NFS requiere más de iSCSI. Incluso con esto. debería poder utilizar el gobernador ondemand.
Un servidor de directorio generalmente tiene requisitos más bajos para E/S de disco, específicamente si está equipado con suficiente RAM. La latencia de red es importante aunque la E/S de red sea menor. Debería considerar el ajuste de latencia de red con una velocidad de enlace inferior, pero debería probarlo con cuidado en su red particular.
4.2. Ejemplo — Portátil Copiar enlaceEnlace copiado en el portapapeles!
- Configure el BIOS del sistema para inhabilitar todo el hardware que no utilice. Por ejemplo, los puertos seriales y paralelos, los lectores de tarjeta, cámaras web, WiFi y Bluetooth entre otros candidatos.
- Atenúe el monitor en entornos más oscuros donde no sea necesaria la plena iluminación para leer la pantalla cómodamente. Utilice + → en el escritorio de GNOME, +++ → en el escritorio de KDE o Gestor de energía de GNOME o xbacklight en la línea de comandos; o las teclas de función de su portátil.
- Use el perfil de
laptop-battery-powersavede tuned-adm para habilitar todo un set de mecanismos de ahorro de energía. Observe que el rendimiento y la latencia para el disco duro y la interfaz de red se ven afectados.
- usar el gobernador
ondemand(activado por defecto en Red Hat Enterprise Linux 6) - activar modo portátil (parte del perfil de
laptop-battery-powersave):echo 5 > /proc/sys/vm/laptop_mode
echo 5 > /proc/sys/vm/laptop_modeCopy to Clipboard Copied! Toggle word wrap Toggle overflow - aumentar tiempo de descarga a disco (parte del perfil
laptop-battery-powersave):echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
echo 1500 > /proc/sys/vm/dirty_writeback_centisecsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - inhabilitar nmi watchdog (parte del perfil
laptop-battery-powersave):echo 0 > /proc/sys/kernel/nmi_watchdog
echo 0 > /proc/sys/kernel/nmi_watchdogCopy to Clipboard Copied! Toggle word wrap Toggle overflow - habilitar AC97 ahorro de energía de audio (habilitado por defecto en Red Hat Enterprise Linux 6):
echo Y > /sys/module/snd_ac97_codec/parameters/power_save
echo Y > /sys/module/snd_ac97_codec/parameters/power_saveCopy to Clipboard Copied! Toggle word wrap Toggle overflow - habilitar ahorro de energía multi-núcleos (parte el perfil
laptop-battery-powersave):echo 1 > /sys/devices/system/cpu/sched_mc_power_savings
echo 1 > /sys/devices/system/cpu/sched_mc_power_savingsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - habilitar auto-suspensión de USB:
for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; done
for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow Observe que la auto-suspensión de USB no funciona correctamente en todos los dispositivos USB. - habilitar mínima configuración de energía para ALPM (parte del perfil
laptop-battery-powersave):echo min_power > /sys/class/scsi_host/host*/link_power_management_policy
echo min_power > /sys/class/scsi_host/host*/link_power_management_policyCopy to Clipboard Copied! Toggle word wrap Toggle overflow - montar sistema de archivos mediante relatime (por defecto en Red Hat Enterprise Linux 6):
mount -o remount,relatime mountpoint
mount -o remount,relatime mountpointCopy to Clipboard Copied! Toggle word wrap Toggle overflow - activar el mejor modo de ahorro de energía para discos duros (parte del perfil
laptop-battery-powersave):hdparm -B 1 -S 200 /dev/sd*
hdparm -B 1 -S 200 /dev/sd*Copy to Clipboard Copied! Toggle word wrap Toggle overflow - desactivar CD-ROM de polling (parte del perfil de
laptop-battery-powersave):hal-disable-polling --device /dev/scd*
hal-disable-polling --device /dev/scd*Copy to Clipboard Copied! Toggle word wrap Toggle overflow - reducir brillo de pantalla a
50o menos, por ejemplo:xbacklight -set 50
xbacklight -set 50Copy to Clipboard Copied! Toggle word wrap Toggle overflow - activar DPMS para inactividad de pantalla:
xset +dpms; xset dpms 0 0 300
xset +dpms; xset dpms 0 0 300Copy to Clipboard Copied! Toggle word wrap Toggle overflow - reducir niveles de energía Wi-Fi (parte del perfil
laptop-battery-powersaveprofile):for i in /sys/bus/pci/devices/*/power_level ; do echo 5 > $i ; done
for i in /sys/bus/pci/devices/*/power_level ; do echo 5 > $i ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow - desactivar Wi-Fi:
echo 1 > /sys/bus/pci/devices/*/rf_kill
echo 1 > /sys/bus/pci/devices/*/rf_killCopy to Clipboard Copied! Toggle word wrap Toggle overflow - limitar red de cable a 100 Mbit/s (parte del perfil de
laptop-battery-powersave):ethtool -s eth0 advertise 0x0F
ethtool -s eth0 advertise 0x0FCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Apéndice A. Consejos para desarrolladores Copiar enlaceEnlace copiado en el portapapeles!
- el uso de hilos.
- los despertadores de CPU innecesarios y el uso ineficiente de despertadores. Si debe despertar, haga todo al mismo tiempo (carrera a ralentí) y tan pronto como sea posible.
- el uso innecesario de
[f]sync(). - el polling activo innecesario o uso de plazos cortos o regulares. (Reaccionar a eventos en su lugar)
- no usar eficientemente despertadores.
- acceso ineficiente de disco. Usar grandes buffers para evitar el acceso frecuente a disco. Escribir un gran bloque a la vez.
- el uso ineficiente de temporizadores. Temporizadores de grupo a través de aplicaciones (o incluso a través de sistemas) si es posible.
- excesiva E/S. consumo de energía o uso de memoria (incluyendo filtraciones de memoria)
- realización innecesaria de computos.
A.1. Uso de hilos Copiar enlaceEnlace copiado en el portapapeles!
Python usa el Global Lock Interpreter[1], por lo tanto, el uso de hilos es solo útil para operaciones de E/S mayores. Unladen-swallow [2] es una aplicación de Python más rápida con la cual puede optimizar su código.
Los hilos de Perl fueron creados originalmente para aplicaciones que se ejecutan en sistemas sin bifurcaciones (como los sistemas con sistemas operativos de Windows de 32 bits). En hilos de Perl, los datos se copian para cada hilo (Copia en Escritura). Los datos no son compartidos de forma predeterminada, puesto que los usuarios deben definir el nivel de datos compartidos. Para compartir datos, el módulo threads::shared tiene que estar incluido. Sin embargo, los datos no son solamente copiados (Copia en Escritura), sino que el módulo también crea variables vinculadas para los datos, lo cual toma aún más tiempo y es aún mucho más lenta. [3]
Los hilos C comparten la misma memoria, cada hilo tiene su propia pila y el kernel no tiene que crear nuevos descriptores de archivo ni asignar nuevo espacio de memoria. C puede usar el soporte de más CPU para más hilos. Por lo tanto, para maximizar el rendimiento de sus hilos, utilice un lenguaje de bajo nivel como C o C ++. Si utiliza un lenguaje de scripts, considere escribir un vínculo C. Use perfiladores para identificar las partes de su código que se ejecutan pobremente. [4]
A.2. Despertadores Copiar enlaceEnlace copiado en el portapapeles!
/proc/sys/fs/inotify/max_user_watches y aunque se puede cambiar, no es recomendable. Además, si inotify falla, el código tiene que resguardarse a un método de verificación diferente, lo cual suele significar muchas apariciones de #if #define en el código fuente.
A.3. Fsync Copiar enlaceEnlace copiado en el portapapeles!
Fsync se conoce como una operación de E/S costosa, pero esto no es totalmente cierto. Por ejemplo, consulte el artículo de Theodore Ts No le tema a fsync! [5] y la discusión que lo acompaña.
fsync y debido a las configuraciones del sistema de archivos (principalmente ext3 con datos en modo ordenado), había más latencia cuando nada sucedía. Esto podía tardar un largo tiempo (más de 30 segundos) si otro proceso estaba copiando un archivo grande al mismo tiempo.
fsync wasn't no se utilizaba, se presentaban problemas con el cambio al sistema de archivos ext4. Ext3 se establecía de modo datos-ordenados, lo cual borraba la memoria cada pocos segundos y le ahorraba al disco. Sin embargo, con ext4 y modo_portátil, el intervalo entre almacenamiento utilizaba más tiempo y los datos podían perderse cuando el sistema inesperadamente era apagado. Ahora ext4 está corregido, pero debe aún considerarse cuidadosamente el diseño de sus aplicaciones y usar fsync como es apropiado.
Apéndice B. Historial de revisiones Copiar enlaceEnlace copiado en el portapapeles!
| Historial de revisiones | |||
|---|---|---|---|
| Revisión 1.0-10.400 | 2013-10-31 | ||
| |||
| Revisión 1.0-10 | 2012-07-18 | ||
| |||
| Revisión 1.0-2 | Fri Oct 22 2010 | ||
| |||
| Revisión 1.0-1 | Thu Oct 7 2010 | ||
| |||
| Revisión 1.0-0 | Thu Oct 7 2010 | ||
| |||