You are on page 1of 48

Fedora 14 Gua de administracin de energa

Administrando el consumo de energa en Fedora

Don Domingo Rdiger Landmann

Gua de administracin de energa

Borrador

Fedora 14 Gua de administracin de energa Administrando el consumo de energa en Fedora Edicin 1


Autor Autor Don Domingo Rdiger Landmann

r.landmann@redhat.com

Copyright 2010 Red Hat Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons AttributionShare Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. For guidelines on the permitted uses of the Fedora trademarks, refer to https://fedoraproject.org/wiki/ Legal:Trademark_guidelines. Linux is the registered trademark of Linus Torvalds in the United States and other countries. Java is a registered trademark of Oracle and/or its affiliates. XFS is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL is a registered trademark of MySQL AB in the United States, the European Union and other countries. All other trademarks are the property of their respective owners.

Este documento explica cmo administrar adecuadamente el consumo de energa en sistemas Fedora 14. Las secciones ofrecidas a continuacin describen diferentes tcnicas para poder disminuir el consumo de energa (ya sea en servidores o en porttiles), y cmo cada una de estas tcnicas influye en el rendimiento general de su sistema. Por favor tenga en cuenta que este documento se encuentra en desarrollo, sujeto a grandes modificaciones, y que se ofrece aqu como un anticipo. El contenido e instrucciones no deben considerarse como completos y deben utilizarse con cautela.

Borrador

Borrador

Prefacio v 1. Convenciones del Documento .......................................................................................... v 1.1. Convenciones Tipogrficas ................................................................................... v 1.2. Convenciones del documento ............................................................................... vi 1.3. Notas y Advertencias .......................................................................................... vii 2. Necesitamos sus comentarios! ...................................................................................... vii 1. Vista preliminar 1 1.1. Importancia de administracin de energa ...................................................................... 1 1.2. Fundamentos de administracin de energa ................................................................... 2 2. Herramientas de administracin y auditora de energa 5 2.1. Vista preliminar de auditora y anlisis .......................................................................... 5 2.2. PowerTOP ................................................................................................................... 5 2.3. Diskdevstat y netdevstat ............................................................................................... 7 2.4. Kit de herramientas de vida de batera ........................................................................ 10 2.5. Tuned y ktune ............................................................................................................ 12 2.5.1. El archivo tuned.conf ................................................................................... 13 2.5.2. Tuned-adm ...................................................................................................... 14 2.6. UPower ...................................................................................................................... 16 2.7. El Gestor de energa de GNOME ................................................................................ 17 2.8. Otros medios de auditora .......................................................................................... 18 3. Infraestructura central y mecnica 3.1. Estados de CPU inactivos .......................................................................................... 3.2. Uso de gobernadores CPUfreq ................................................................................. 3.2.1. Tipos de gobernadores CPUfreq ....................................................................... 3.2.2. Configuracin de CPUfreq ................................................................................ 3.2.3. Ajuste de la poltica CPUfreq y Velocidad .......................................................... 3.3. Suspender y reanudar ................................................................................................ 3.4. Kernel sin intervalos ................................................................................................... 3.5. Administrador de energa de estado activo .................................................................. 3.6. Administracin de energa de enlace agresivo ............................................................ 3.7. Optimizacin de acceso de unidad de Relatime ........................................................... 3.8. Lmite de energa ....................................................................................................... 3.9. Administracin de energa en grficas mejoradas ......................................................... 3.10. RFKill ....................................................................................................................... 3.11. Optimizaciones en espacio de usuario ....................................................................... 19 19 19 20 21 22 23 24 24 25 25 26 27 28 29

4. Casos de uso 31 4.1. Ejemplo Servidor ................................................................................................... 31 4.2. Ejemplo Porttil ..................................................................................................... 32 A. Consejos para desarrolladores A.1. Uso de hilos .............................................................................................................. A.2. Despertadores ........................................................................................................... A.3. Fsync ........................................................................................................................ B. Historial de revisiones 35 35 36 37 39

iii

iv

Borrador

Borrador

Prefacio
1. Convenciones del Documento
Este manual utiliza varias convenciones para resaltar algunas palabras y frases y llamar la atencin sobre ciertas partes especficas de informacin. En ediciones PDF y de papel, este manual utiliza tipos de letra procedentes de Liberation Fonts . Liberation Fonts tambin se utilizan en ediciones de HTML si estn instalados en su sistema. Si no, se muestran tipografas alternativas pero equivalentes. Nota: Red Hat Enterprise Linux 5 y siguientes incluyen Liberation Fonts predeterminadas.
1

1.1. Convenciones Tipogrficas


Se utilizan cuatro convenciones tipogrficas para llamar la atencin sobre palabras o frases especficas. Dichas convenciones y las circunstancias en que se aplican son las siguientes: Negrita monoespaciado Utilizada para resaltar la entrada del sistema, incluyendo comandos de shell, nombres de archivo y rutas. Tambin se utiliza para resaltar teclas claves y combinaciones de teclas. Por ejemplo: Para ver el contenido del archivo my_next_bestselling_novel en su directorio actual de trabajo, escriba el comando cat my_next_bestselling_novel en el intrprete de comandos de shell y pulse Enter para ejecutar el comando. El ejemplo anterior incluye un nombre de archivo, un comando de shell y una tecla clave. Todo se presenta en negrita-monoespaciado y distinguible gracias al contexto. Las combinaciones de teclas se pueden distinguir de las teclas claves mediante el guin que conecta cada parte de una combinacin de tecla. Por ejemplo: Pulse Enter para ejecutar el comando. Pulse Control+Alt+F2 para cambiar a la primera terminal virtual. Pulse Control+Alt+F1 para volver a su sesin de Ventanas-X. La primera oracin resalta la tecla clave determinada que se debe pulsar. La segunda resalta dos conjuntos de tres teclas claves que deben ser presionadas simultneamente. Si se discute el cdigo fuente, los nombres de las clase, los mtodos, las funciones, los nombres de variables y valores de retorno mencionados dentro de un prrafo sern presentados en Negritamonoespaciado. Por ejemplo: Las clases de archivo relacionadas incluyen filename para sistema de archivos, file para archivos y dir para directorios. Cada clase tiene su propio conjunto asociado de permisos. Negrita proporcional Esta denota palabras o frases encontradas en un sistema, incluyendo nombres de aplicacin, texto de cuadro de dilogo, botones etiquetados, etiquetas de cajilla de verificacin y botn de radio; ttulos de men y ttulos del sub-men. Por ejemplo:

https://fedorahosted.org/liberation-fonts/

Prefacio

Borrador

Seleccionar Sistema Preferencias Ratn desde la barra del men principal para lanzar Preferencias de Ratn. En la pestaa de Botones, haga clic en la cajilla ratn de mano izquierda y luego haga clic en Cerrar para cambiar el botn principal del ratn de la izquierda a la derecha (adecuando el ratn para la mano izquierda). Para insertar un caracter especial en un archivo de gedit, seleccione desde la barra del men principal Aplicaciones Accessories Mapa de caracteres. Luego, desde la barra de menes de mapa de caracteres elija Bsqueda Hallar, teclee el nombre del caracter en el campo Bsqueda y haga clic en Siguiente. El caracter buscado se resaltar en la Tabla de caracteres. Haga doble clic en este caracter resaltado para colocarlo en el campo de Texto para copiar y luego haga clic en el botn de Copiar. Ahora regrese a su documento y elija Editar Pegar desde la barra de men de gedit. El texto anterior incluye nombres de aplicacin; nombres y elementos del men de todo el sistema; nombres de men de aplicaciones especficas y botones y texto hallados dentro de una interfaz grfica de usuario, todos presentados en negrita proporcional y distinguibles por contexto. Itlicas-negrita monoespaciado o Itlicas-negrita proporcional Ya sea negrita monoespaciado o negrita proporcional, la adicin de itlicas indica texto reemplazable o variable. Las itlicas denotan texto que usted no escribe literalmente o texto mostrado que cambia dependiendo de la circunstancia. Por ejemplo: Para conectar a una mquina remota utilizando ssh, teclee ssh nombredeusuario@dominio.nombre en un intrprete de comandos de shell. Si la mquina remota es example.com y su nombre de usuario en esa mquina es john, teclee ssh john@example.com. El comando mount -o remount file-system remonta el sistema de archivo llamado. Por ejemplo, para volver a montar el sistema de archivo /home, el comando es mount -o remount /home. Para ver la versin de un paquete actualmente instalado, utilice el comando rpm -q paquete. ste entregar el resultado siguiente: paquete-versin-lanzamiento. Observe las palabras en itlicas y negrita sobre nombre de usuario, domain.name, sistema de archivo, paquete, versin y lanzamiento. Cada palabra es un marcador de posicin, tanto para el texto que usted escriba al ejecutar un comando como para el texto mostrado por el sistema. Aparte del uso estndar para presentar el ttulo de un trabajo, las itlicas denotan el primer uso de un trmino nuevo e importante. Por ejemplo: Publican es un sistema de publicacin de DocBook.

1.2. Convenciones del documento


Los mensajes de salida de la terminal o fragmentos de cdigo fuente se distinguen visualmente del texto circundante. Los mensajes de salida enviados a una terminal se muestran en romano monoespaciado y se presentan as:
books books_tests Desktop Desktop1 documentation downloads drafts images mss notes photos scripts stuff svgs svn

vi

Borrador

Notas y Advertencias

Los listados de cdigo fuente tambin se muestran en romano monoespaciado, pero se presentan y resaltan de la siguiente manera:
package org.jboss.book.jca.ex1; import javax.naming.InitialContext; public class ExClient { public static void main(String args[]) throws Exception { InitialContext iniCtx = new InitialContext(); Object ref = iniCtx.lookup("EchoBean"); EchoHome home = (EchoHome) ref; Echo echo = home.create(); System.out.println("Created Echo"); System.out.println("Echo.echo('Hello') = " + echo.echo("Hello")); } }

1.3. Notas y Advertencias


Finalmente, utilizamos tres estilos visuales para llamar la atencin sobre la informacin que de otro modo se podra pasar por alto.

Nota
Una nota es una sugerencia, atajo o enfoque alternativo para una tarea determinada. Ignorar una nota no debera tener consecuencias negativas, pero podra perderse de algunos trucos que pueden facilitarle las cosas.

Importante
Los cuadros con el ttulo de importante dan detalles de cosas que se pueden pasar por alto fcilmente: cambios de configuracin nicamente aplicables a la sesin actual, o servicios que necesitan reiniciarse antes de que se aplique una actualizacin. Ignorar estos cuadros no ocasionar prdida de datos, pero puede causar enfado y frustracin.

Advertencia
Las advertencias no deben ignorarse. Ignorarlas muy probablemente ocasionar prdida de datos.

2. Necesitamos sus comentarios!


Si encuentra un error tipogrfico en este manual o si sabe de alguna manera de mejorarlo, nos gustara escuchar sus sugerencias. Por favor complete un reporte en Bugzilla: http:// bugzilla.redhat.com/bugzilla/ usando el producto Fedora Documentation. vii

Prefacio Cuando enve un reporte de error no olvide mencionar el identificador del manual: powermanagement-guide

Borrador

Si tiene una sugerencia para mejorar la documentacin, intente ser tan especfico como sea posible cuando describa su sugerencia. Si ha encontrado un error, por favor incluya el nmero de seccin y parte del texto que rodea el error para que podamos encontrarlo ms fcilmente.

viii

Borrador

Borrador

Vista preliminar
Limitar la energa utilizada por los sistemas computarizados es uno de los aspectos ms importantes de la Tecnologa de informtica verde (computacin comprometida con el medio ambiente, o tambin denominada green IT, en ingls). Este tipo de tecnologa se fundamenta en un conjunto de consideraciones entre las cuales se encuentra la utilizacin de materiales reciclables, y el diseo y la produccin de hardware respetuoso con el ambiente. En este documento, proporcionamos gua e informacin sobre la administracin de energa de los sistemas que ejecutan Fedora 14.

1.1. Importancia de administracin de energa


En el centro de la administracin de energa se entiende cmo optimizar de forma eficaz el consumo de energa de cada componente del sistema. Esto conlleva a estudiar las diferentes tareas que su sistema realiza y a configurar cada componente para garantizar que el rendimiento sea el correcto para el trabajo. La razn principal para administracin de energa es: reduccin general de consumo de energa para ahorrar costo El uso correcto de la administracin de energa resulta en: reduccin de calor para servidores y centros de cmputo reduccin de costos secundarios que incluyen enfriamiento, espacio, cables, generadores y Sistema de alimentacin ininterrumpida(UPS). extensin de vida de bateras para porttiles baja salida de dixido de carbono cumplimiento de regulaciones gubernamentales o requisitos legales sobre Informtica verde, por ejemplo Energy Star cumplimiento de reglamentacin empresarial para nuevos sistemas Como regla general, la reduccin del consumo de energa de un componente especfico del sistema (o del sistema como un todo) conducir a reducir el calor y por ende el rendimiento. Consecuentemente, se deber estudiar a fondo y probar la reduccin en rendimiento permitida por las configuraciones que se realicen, especialmente para sistemas de misin crtica. Si estudia las diferentes tareas que realiza su sistema, y configura cada componente para garantizar que su rendimiento sea apenas suficiente para realizar dicho trabajo, podr ahorrar energa, generar menos calor y optimizar la vida til de la batera en los sistemas porttiles. Muchos de los principios utilizados para el anlisis y ajuste de un sistema con respecto al consumo de energa son similares a los del ajuste del rendimiento. En cierto grado, la administracin de la energa y el ajuste del rendimiento son enfoques opuestos a la configuracin del sistema, ya que, generalmente, los sistemas se optimizan o bien hacia el rendimiento o bien hacia la energa. En este manual detallamos las herramientas que el Proyecto Fedora ofrece, y las tcnicas que hemos desarrollado para asistirlo en este proceso Fedora 14 ya se ofrece con nuevas herramientas para la administracin de la energa habilitadas de manera predeterminada. Todas fueron cuidadosamente seleccionadas para no influir en el rendimiento de un servidor tpico, o en un sistema de escritorio. Sin embargo, para casos ms especficos de mximo rendimiento, donde por ejemplo se necesite una latencia ms baja,

Captulo 1. Vista preliminar o un rendimiento de CPU superior, podra ser necesaria una revisin de estos parmetros predeterminados.

Borrador

Para decidir si debe optimizar sus mquinas mediante las tcnicas descritas en este documento, hgase las siguientes preguntas: P: R: Debo optimizar? La importancia de optimizar energa depende de si su compaa tiene lineamientos que necesiten seguirse o si hay algunas reglas que deben cumplirse. Cunto necesito optimizar? Varias de las tcnicas que presentamos no requieren que usted vaya a travs de todo el proceso de auditora y anlisis de su mquina , sino que ofrecen un set de optimizaciones generales que tpicamente mejoran el uso de energa. Aquellas, por supuesto, no son tan buenas como un sistema auditado y optimizado manualmente aunque proporcionan un buen compromiso. La optimizacin reducir el rendimiento del sistema a un nivel inaceptable? La mayora de las tcnicas descritas en este documento impactan notablemente el rendimiento de su sistema. Si decide implementar una administracin de energa diferente de las configuraciones predeterminadas establecidas en Fedora 14, deberia monitorear el rendimiento del sistema despus de optimizar la energa, y decidir si la prdida de rendimiento es aceptable. El tiempo y los recursos utilizados para optimizar el sistema superarn las ganancias obtenidas? Optimizar manualmente un solo sistema siguiendo todo el proceso, no vale la pena, ya que el tiempo empleado y costo para hacerlo es hasta el momento superior al beneficio que se obtendra de una sola mquina. Por otra parte, si usted por ejemplo despliega 10000 sistemas de escritorio para sus oficinas todas con la misma configuracin y montaje y luego crea una configuracin optimizada y la aplica a todas las mquinas, probablemente es una buena idea.

P: R:

P: R:

P: R:

Las siguientes secciones explicarn cmo el ptimo rendimiento de hardware beneficia a su sistema en trminos de consumo de energa.

1.2. Fundamentos de administracin de energa


La administracin de energa efectiva se construye sobre los siguiente principios:

Una CPU inactiva slo debe despertarse cuando sea necesario


El kernel empaquetado en las versiones de Fedora anteriores a Fedora 8, utilizaba un temporizador peridico para cada CPU. Dicho temporizador evita que el CPU quede realmente inactivo ya que le pide al CPU que procede cada evento de temporizador (lo cual sucede cada pocos milisegundos, segn la configuracin), independientemente de que se est ejecutando algn proceso o no. Una gran parte de la administracin efectiva de la energa implica la reduccin de la frecuencia en la que son creados crean los despertadores de CPU. Debido a lo anterior, el kernel de Linux en Fedora 14 elimina el temporizador peridico: como resultado, el estado de inactividad de una CPU es ahora sin intervalo. De esta manera se evita el consumo de energa innecesario del CPU cuando est inactivo. No obstante, los beneficios de esta 2

Borrador

Fundamentos de administracin de energa

funcionalidad pueden alterarse si el sistema tiene aplicaciones que crean eventos de temporizador innecesarios. Los eventos de polling (tales como los controles de cambios de volumen, movimiento del ratn o similares) son ejemplos de dichos eventos. Fedora 14 ofrece herramientas con las cuales se pueden identificar y auditar aplicaciones basndose en la utilizacin que ellas hacen del CPU. Consulte Captulo 2, Herramientas de administracin y auditora de energa para obtener mayor informacin.

Hardware y dispositivos no utilizados deben desactivarse completamente.


Esto es particularmente cierto para dispositivos que tengan partes movibles (como los discos duros, por ejemplo). Adems. algunas aplicaciones pueden dejar un dispositivo sin utilizar pero habilitado "open";cuando esto ocurre, el kernel asume que el dispositivo est siendo utilizado, lo cual puede evitar que el dispositivo entre en un estado de ahorro de energa.

Actividad baja debe traducirse en bajo vataje


Sin embargo, en muchos casos esto depende de un hardware moderno y de una correcta configuracin del BIOS. Los componentes antiguos de un sistema, por lo general, no soportan las nuevas funcionalidades que ahora podemos soportar en Fedora 14. Asegrese de utilizar el firmware oficial ms reciente para sus sistemas, y que en la administracin de energa del BIOS, o en las secciones de configuracin de dispositivo del BIOS, se encuentran habilitados los recursos administracin de energa. Algunos de los recursos a buscar son: SpeedStep PowerNow! Cool'n'Quiet ACPI (C state) Smart Si su hardware tiene soporte para estos recursos, y estn habilitados en el BIOS, Fedora 14 las utilizar como predeterminadas.

Formas diferentes de estados de CPU y sus efectos


Las CPU modernas junto con la Configuracin avanzada e Interfaz de Energa (ACPI) proporcionan diferentes estados de energa. Los tres estados diferentes son: Dormido (Estados-C) Frecuencia (estados-P) Salida de calor (estados-T o "thermal states") Una CPU que se ejecute en el estado dormido ms bajo posible consumir la menor cantidad de vatios, pero tambin utilizar ms tiempo para despertarse de su estado cuando se necesite. En varios casos esto conlleva a que la CPU tenga que despertarse al poco tiempo de quedarse dormida. Esta situacin produce una CPU ocupada permanentemente y pierde parte de su potencial energtico si otro estado ha sido utilizado.

Una mquina apagada utiliza la menor cantidad de energa


Por ms obvio que esto pueda parecer, una de las mejores formas de ahorrar energa es apagando los sistemas. Por ejemplo, su compaa puede desarrollar una cultura corporativa enfocada a una 3

Captulo 1. Vista preliminar

Borrador

conciencia de tecnologa informtica "verde" con una lnea directriz que suguiere apagar las mquinas durante las horas de almuerzo, receso, o al finalizar la jornada laboral. Tambin se podran consolidar varios servidores fsicos en uno mayor, y luego virtualizarlos mediante la tecnologa de virtualizacin que ofrecemos con Fedora 14.

Borrador

Borrador

Herramientas de administracin y auditora de energa


2.1. Vista preliminar de auditora y anlisis
La auditora manual detallada, anlisis y ajuste de un sistema nico suele ser la excepcin dado que el tiempo y costo utilizado para hacerlo suele superar los beneficios obtenidos desde estas ltimas partes de ajuste del sistema. Sin embargo, si realiza estas tareas una vez para un gran nmero de sistemas casi idnticos en los que puede reutilizar la misma configuracin para todos los sistemas, puede ser muy til. Por ejemplo, considere el despliegue de miles de sistemas de escritorio o un cluster HPC donde las mquinas son casi idnticas. Otra razn para hacer auditora y anlisis es proporcionar una base de comparacin con la cual pueda identificar regresiones o cambios en conducta del sistema en el futuro. Los resultados de este anlisis pueden ser muy tiles en casos donde hardware, BIOS, o actualizaciones de software suceden regularmente y usted desea evitar sorpresas acerca del consumo de energa. Por lo general, la auditora y anlisis le da una mejor idea de lo que realmente est pasando en su sistema. La auditora y anlisis de un sistema para el consumo de energa es relativamente difcil, incluso con los sistemas ms modernos disponibles. La mayora de los sistemas no proporcionan los medios necesarios para medir el uso de energa a travs de software. Aunque existen excepciones: la consola de administracin ILO de sistemas de servidor de Hewlett Packard tiene un mdulo de administracin que se puede acceder a travs de la red. IBM proporciona una solucin parecida en su mdulo de administracin de energa BladeCenter. En algunos sistemas Dell, el Asistente de Tecnologa Informtica tambin ofrece opciones de monitorizacin de energa. Otros proveedores probablemente ofrecen opciones similares para sus plataformas de servidor, pero como se puede ver no hay una solucin nica disponible que sea soportada por todos los proveedores. Si su sistema no tiene mecanismos incorporados para medir el consumo de energa, solo existen unas pocas opciones. Podra instalar una fuente de alimentacin para su sistema que ofrezca informacin de consumo de energa a travs de USB. La fuente de alimentacin Gigabyte Odin GT 550 W PC es un ejemplo de ello y el software para leer esos valores bajo Linux est disponible externamente en http:// mgmt.sth.sze.hu/~andras/dev/gopsu/. Como ltimo recurso, algunos medidores de vatios externos como Watts up? PRO tienen un conector USB. Medidas directas de consumo de energa suelen ser necesarias para maximizar ahorros hasta donde sea posible. Afortunadamente, otros medios estn disponibles para medir si los cambios se efectan y el comportamiento del sistema. Este captulo describe las herramientas necesarias.

2.2. PowerTOP
El kernel sin marca en Fedora permite a la CPU entrar en estado de inactividad con ms frecuencia, reduciendo el consumo y mejorando la administracin de energa. La nueva herramienta PowerTOP identifica componentes especficos del kernel y aplicaciones del espacio de usuario que frecuentemente despiertan a la CPU. PowerTOP era utilizado en la rama desarrollo para realizar las auditoras descritas en la Seccin 3.11, Optimizaciones en espacio de usuario, las cuales dieron lugar a numerosas aplicaciones que se est ajustando en esta versin, reduciendo as en un factor de 10 los despertadores de CPU no necesarios. Instale PowerTOP con el comando:
yum install powertop

Captulo 2. Herramientas de administracin y auditora de energa Ejecute PowerTOP con el comando:


powertop

Borrador

Tenga en cuenta que necesitar ejecutar PowerTOP con privilegios de root para que la aplicacin pueda hacer algo til. Cuando se ejecuta, PowerTOP rene estadsticas del sistema y ofrece una lista de los componentes que con ms frecuencia estn enviando despertadores a la CPU. PowerTOP tambin hace sugerencias sobre ajustes al sistema para reducir consumo de energa. Dichas sugerencias aparecen en la parte inferior de la pantalla, y especifican la tecla para aceptar la sugerencia de PowerTOP. Puesto que PowerTOP se actualiza peridicamente, otras sugerencias irn apareciendo. Observe en la Figura 2.1, PowerTOP en operacin , la sugerencia para aumentar el tiempo de re escritura cruda de VM, y la tecla (W) para aceptar la sugerencia. Cuando se ejecuta, PowerTOP reune estadsticas desde el sistema y le presenta varias listas importantes de informacin. En la parte superior de la lista est la lista de cunto tiempo sus ncleos de CPU han estado disponibles en estados C y P. Entre ms CPU permanezca en los estados superiores C o P es mejor (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 ms en los estados superiores C o P cuando el sistema est inactivo. La segunda parte de informacin es un resumen de los despertadores por segundo reales de la mquina. El nmero de despertadores por segundo da una medida de qu tan bien los servicios u otros dispositivos y controladores del kernel estn ejecutndose con respecto al uso de energa en su sistema. Entre ms despertadores por segundo tenga, habr ms consumo de energa, por lo tanto entre ms baja es mejor aqu. Luego, PowerTOP proporciona una aproximacin del uso de energa del sistema, si est disponible. Espere a que PowerTOP reporte este dato en los porttiles cuando estn en modo de batera. Any available estimates of power usage are followed by a detailed list of the components that send wakeups to the CPU most frequently. At the top of the list are those components that you should investigate more closely to optimize your system to reduce power usage. If they are kernel components, (indicated by the name of the component being listed in <>) then the wakeups are often associated with a specific driver that causes them. Tuning drivers most usually requires kernel changes which go beyond the scope of this document. However, userland processes that send wakeups are more easily managed. First, identify if this service or application should run at all on this system. If not, simply deactivate it. To turn off a service permanently, run:
chkconfig nombre_ de_servicio off

Para obtener mayores detalles sobre lo que realmente este componente hace, ejecute:
ps -awux | grep nombre_ de_ componente strace -p processid

Si el rastro parece que se est repitiendo, entonces probablemente ha encontrado un bucle ocupado. Para corregir esto se requerira cambiar el cdigo en ese componente, sin embargo este tema va ms all del tpico de ste documento. Por ltimo, PowerTOP tambin realiza sugerencias acerca de los ajustes necesarios que habra que realizar en el sistema para poder reducir el consumo de energa. Dichas sugerencias aparecen en la parte inferior de la pantalla, y especifican la tecla para aceptar la sugerencia de PowerTOP. 6

Borrador

Diskdevstat y netdevstat

Puesto que PowerTOP se actualiza peridicamente, otras sugerencias irn apareciendo. Observe en la Figura 2.1, PowerTOP en operacin , la sugerencia para aumentar el tiempo de re escritura cruda de VM, y la tecla (W) para aceptar la sugerencia. Estas modificaciones slo entrarn en vigencia luego de reiniciar su sistema. Para ayudarle a hacer que las modificaciones sean permanentes, PowerTOP desplegar el comando exacto a ejecutar para poder realizar esta optimizacin. Aada el comando a su archivo /etc/rc.local con su editor preferido, de modo que la modificacin se efecte cada vez que arranque el equipo.

Figura 2.1. PowerTOP en operacin La pgina Less Watts publica una lista de aplicaciones que PowerTOP ha identificado para mantener activas las CPU. Consulte http://www.lesswatts.org/projects/powertop/known.php.

2.3. Diskdevstat y netdevstat


Diskdevstat y netdevstat son herramientas de SystemTap que colectan informacin detallada sobre la actividad de disco y de la red de todas las aplicaciones que se ejecutan en un sistema. Estas herramientas fueron inspiradas por PowerTOP, la cual muestra el nmero de despertadores de CPU por cada aplicacin por segundo (consulte Seccin 2.2, PowerTOP). La estadstica que recogen estas herramientas le permiten identificar aplicaciones que desperdician energa con operaciones de E/S muy pequeas ms que con las ms grandes. Otras herramientas de monitorizacin que slo miden velocidades de transferencia no ayudan a identificar este tipo de uso. Instalar estas herramientas con SystemTap con el comando: 7

Captulo 2. Herramientas de administracin y auditora de energa

Borrador

yum install systemtap tuned-utils kernel-debuginfo

Ejecute las herramientas con el comando:


diskdevstat

o el comando:
netdevstat

Ambos comandos pueden tomar hasta tres parmetros, as: diskdevstat update_interval duracin_total mostrar_histograma netdevstat update_interval duracin_total mostrar_histograma actualizar_intervalo El tiempo en segundos entre actualizaciones de la pantalla. Predeterminado: 5 duracin_total El tiempo en segundos para el total. Predeterminado: 86400 (1 da) mostrar_histograma Indica si hacer histograma para todos los datos recolectados al final de la ejecucin. La salida se parece a la de PowerTOP. A continuacin, una muestra de una ejecucin ms larga de diskdevstat en un sistema que ejecuta Fedora 10 KDE 4.2:
PID UID DEV READ_AVG COMMAND 2789 2903 sda1 0.000 plasma 15494 0 sda1 0.000 0logwatch 15520 0 sda1 0.000 perl 15549 0 sda1 0.000 perl 15585 0 sda1 0.000 perl 2573 0 sda1 0.000 auditd 15429 0 sda1 0.000 crond 15379 0 sda1 0.000 crond 15473 0 sda1 0.000 crond 15415 0 sda1 0.000 crond 15433 0 sda1 0.000 crond 15425 0 sda1 0.000 crond 15375 0 sda1 0.000 crond 15477 0 sda1 0.000 crond 15469 0 sda1 0.000 crond WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG 854 0 0 0 0 63 0 0 0 0 0 0 0 0 0 0.000 0.000 0.000 0.000 0.000 0.033 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 120.000 0.000 0.000 0.000 0.000 3600.015 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 39.836 0.000 0.000 0.000 0.000 515.226 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 READ_CNT 0 758 140 140 108 0 62 62 62 62 62 62 62 62 62 READ_MIN 0.000 0.000 0.000 0.000 0.001 0.000 0.009 0.008 0.008 0.008 0.008 0.007 0.008 0.007 0.007 READ_MAX 0.000 0.012 0.009 0.009 0.002 0.000 0.009 0.008 0.008 0.008 0.008 0.007 0.008 0.007 0.007

Borrador
15419 0 sda1 0.000 crond 15481 0 sda1 0.000 crond 15355 0 sda1 0.001 laptop_mode 2153 0 sda1 0.000 rsyslogd 15575 0 sda1 0.000 cat 15581 0 sda1 0.000 perl 15582 0 sda1 0.000 perl 15579 0 sda1 0.000 perl 15580 0 sda1 0.000 perl 15354 0 sda1 0.014 sh 15584 0 sda1 0.000 perl 15548 0 sda1 0.001 perl 15577 0 sda1 0.000 perl 15519 0 sda1 0.000 perl 15578 0 sda1 0.000 perl 15583 0 sda1 0.000 perl 15547 0 sda1 0.000 perl 15576 0 sda1 0.000 perl 15518 0 sda1 0.000 perl 15354 0 sda1 0.005 lm_lid.sh 0 0 0 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 0.000 0.000 0.003 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 3600.029 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1290.730 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000

Diskdevstat y netdevstat
62 61 37 0 16 12 12 12 12 12 12 12 12 12 12 12 11 11 11 10 0.008 0.000 0.000 0.000 0.000 0.001 0.001 0.000 0.001 0.000 0.001 0.001 0.001 0.001 0.001 0.001 0.000 0.001 0.000 0.053 0.008 0.001 0.014 0.000 0.000 0.002 0.002 0.001 0.001 0.170 0.002 0.014 0.003 0.005 0.001 0.001 0.002 0.001 0.001 0.053

Las columnas son: PID El ID de proceso de la aplicacin 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 nmero total de operaciones de escritura WRITE_MIN El tiempo mnimo para dos escritos consecutivos (en segundos) WRITE_MAX El tiempo mximo para dos escritos consecutivos (en segundos) WRITE_AVG El tiempo promedio para dos escritos consecutivos (en segundos) 9

Captulo 2. Herramientas de administracin y auditora de energa READ_CNT El nmero total de operaciones de lectura READ_MIN El tiempo mnimo para dos lecturas consecutivas (en segundos) READ_MAX El mximo tiempo para dos lecturas consecutivas (en segundos) READ_AVG El tiempo promedio para dos lecturas consecutivas (en segundos) COMMAND El nombre del proceso En este ejemplo, tres aplicaciones muy obvias llaman la atencin:
PID UID DEV READ_AVG COMMAND 2789 2903 sda1 0.000 plasma 2573 0 sda1 0.000 auditd 2153 0 sda1 0.000 rsyslogd WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG 854 63 26 0.000 0.033 0.003 120.000 3600.015 3600.029 39.836 515.226 1290.730 READ_CNT 0 0 0 READ_MIN 0.000 0.000 0.000

Borrador

READ_MAX 0.000 0.000 0.000

Estas tres aplicaciones tienen un WRITE_CNT mayor que 0, lo cual significa que realizan un forma de escritura durante la medicin. De ellas, plasma fue el peor transgresor en un alto grado: realiz la mayora de operaciones de escritura y por lo tanto el promedio de tiempo entre escrituras fue el ms bajo. Por esa razn Plasma sera el mejor candidato para investigar si est interesado en aplicaciones ineficientes de energa. Utilice los comandos strace y ltrace para examinar aplicaciones de una forma ms cercana al rastrear todas las llamadas de sistema del ID de proceso determinado. En este ejemplo, puede ejecutar:
strace -p 2789

En este ejemplo, la salida de strace contena un patrn repetitivo, el cual cada 45 segundos abra el archivo cache del icono de KDE del usuario para escribir y luego lo cerraba inmediatamente. Esto llevaba necesariamente a una escritura fsica al disco duro cuando los metadatos de archivo (especficamente, el tiempo de modificacin) haban cambiado. La correccin final era evitar llamadas innecesarias cuando no se presentaban actualizaciones de iconos.

2.4. Kit de herramientas de vida de batera


El Kit de herramientas de vida de batera (BLTK), es un paquete de prueba que simula y analiza la vida y el rendimiento de la batera. BLTK realiza esto llevando a cabo un conjunto de tareas que simulan grupos de usuarios especficos, reportando los resultados. Si bien BLTK ha sido diseado especficamente para verificar el rendimiento de notebooks, tambin puede reportar el rendimiento de equipos de escritorio, cuando se inicia con la opcin -a. BLTK le permite generar cargas de trabajo reproducibles que son comparables al uso real de una mquina. Por ejemplo, la carga de trabajo de office escribe un texto, corrige cosas en l y hace lo mismo para una hoja de clculo. Al ejecutar BLTK junto con PowerTOP o cualquiera otra herramienta de auditora o anlisis podr probar si las optimizaciones que usted realiz tienen algn efecto 10

Borrador

Kit de herramientas de vida de batera

cuando la mquina est activa en uso en lugar de cuando slo 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 Instalar BLTK con el comando:
yum install bltk

Ejecutar BLTK con el comando:


bltk carga_de_trabajo opciones

Por ejemplo, para ejecutar la carga de trabajo idle por 120 segundos:
bltk -I -T 120

Las cargas predeterminadas disponibles son: -I, --idle sistema est inactivo, usar una lnea 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 edicin de documentos con el paquete de OpenOffice.org Otras opciones le permiten especificar: -a, --ac-ignore ignorar si energa AC est disponible (necesaria para usar escritorio) -T numero_de_segundos, --time nmero_de_segundos El tiempo (en segundos) sobre el cual ejecutar la prueba; use esta opcin con la carga de trabajo idle -F nombre_de_archivo, --file nombre_de archivo especifica a un archivo para ser usado por una carga determinada, por ejemplo, un archivo para la carga de trabajo del reproductor para que se reproduzca en lugar de acceder a la unidad de CD o DVD -W aplicacin, --prog aplicacin Especifica una aplicacin para ser utilizada por una carga de trabajo particular, por ejemplo, un navegador diferente a Firefox para la carga de trabajo de lector BLTK soporta una gran cantidad de opciones especializadas. Para obtener mayor informacin, consulte la pgina man bltk. BLTK guarda los resultados que genera en un directorio especificado por defecto en el archivo de configuracin /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 estn esparcidos a 11

Captulo 2. Herramientas de administracin y auditora de energa

Borrador

travs de varios archivos de texto. Para condensar estos resultados dentro de un formato fcil de leer, ejecute:
bltk_report ruta _a_directorio_de_resultados

Los resultados aparecen ahora en un archivo de texto llamado Report en el directorio de resultados. Para ver los resultados en un emulador de terminal, utilice la opcin -o:
bltk_report -o ruta_a_directorio_de_resultados

2.5. Tuned y ktune


Tuned es un demonio que monitoriza el uso de los componentes del sistema y ajusta en forma dinmica la configuracin del sistema con base en esa informacin de monitorizacin. El ajuste dinmico se encarga de la forma en que varios componentes del sistema se utilizan de forma diferente a travs del uptime para cualquier sistema dado. Por ejemplo, el disco duro se utiliza bastante durante el arranque y el inicio de sesin, pero escasamente se utiliza con aplicaciones tales como OpenOffice o clientes de correo-e. Igualmente, los dispositivos de CPU y red se utilizan de forma diferente en varios momentos. Tuned monitoriza la actividad de dichos componentes y reacciona ante los cambios en su uso. A manera de ejemplo, considere una estacin de trabajo tpica. La mayora del tiempo, la interfaz de red Ethernet estar muy inactiva. Slo algunos pocos correos electrnicos sern enviados o recibidos, o de vez en cuando se cargarn algunas pginas web. Para esa clase de cargas, la interfaz de red no tiene que ejecutarse a toda la velocidad todo el tiempo, como lo hace en forma predeterminada. Tuned tiene un complemento de monitoreo y ajuste para dispositivos de red que puede detectar esa baja actividad, y automticamente bajar la velocidad de esa interfaz, obteniendo una notable disminucin en la utilizacin de la energa. Si la actividad en la interfaz aumenta drsticamente por un periodo de tiempo mayor, por ejemplo debido a una imagen de DVD que se est descargando, o un correo electrnico que est abriendo un archivo adjunto tuned detecta estos cambios y establecer la velocidad de interfaz al mximo para ofrecer el mejor rendimiento cuando el nivel de actividad sea tan alto. Este principio tambin se aplica para otras conexiones de CPU y discos duros. Los dispositivos de red no estn configurados para comportarse de esa manera porque los cambios de velocidad pueden tardar varios segundos en efectuarse y por lo tanto impactaran visiblemente la experiencia del usuario. Consideraciones similares se aplican para conexiones de ajuste de CPU y disco duro. Cuando un disco duro girado hacia abajo, puede tardar varios segundos para que vuelva a girar, lo que produce una falta de respuesta del sistema durante ese periodo. El efecto secundario de latencia es menor para la conexin de CPU, pero al menos an se puede medir, aunque es casi imperceptible al usuario. Ahora, junto con tuned ofrecemos ktune. Ktune fue originalmente presentado como un servicio y un marco de trabajo para optimizar el rendimiento de la mquina durante casos de uso especficos. Desde entonces, ktune ha mejorado en tal grado que hoy en da se utilizamos como parte esttica del marco de trabajo de ajustes generales. Se utiliza principalmente en los perfiles predefinidos en Seccin 2.5.2, Tuned-adm. Instale el paquete tuned y sus scripts de systemtap asociados con el comando:
yum install tuned

Al instalar el paquete tuned tambin establece un archivo de configuracin en /etc/tuned.conf y activa el perfil predeterminado. 12

Borrador Inicie tuned al ejecutar:


service tuned start

El archivo tuned.conf

Para iniciar tuned cada vez que la mquina arranque, ejecute:


chkconfig tuned on

Tuned por s misma tiene opciones adicionales que usted puede ejecutar manualmente. Las opciones disponibles son: -d, --daemon Inicia tuned como demonio en lugar de en primer plano. -c, --conffile Usa un archivo de configuracin 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


El archivo tuned.conf contiene las configuraciones de tuned. Por defecto, se localiza en /etc/ tuned.conf, pero puede especificar un nombre y direccin diferentes si iniciatuned con la opcin --conffile. El archivo config siempre debe contener una seccin [main] que define los parmetros generales para tuned. El archivo contiene una seccin para cada complemento. La seccin [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 mnima de mensajes que deben ser registrados. En orden descendente, los valores permitido son: crtico, error, advertencia, info y depuracin. El valor predeterminado es info. logging_disable Especifica la prioridad mxima de mensajes a ser registrados; cualquier mensaje con esta prioridad o menor no ser registrado. En orden descendiente, los valores permitidos son: crtico, error, advertencia, info, y depuracin. El valor notset inhabilita esta opcin. Cada complemento tiene su propia seccin, especificada con el nombre del complemento en parntesis cuadrados; por ejemplo: [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. 13

Captulo 2. Herramientas de administracin y auditora de energa

Borrador

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 mnima de mensajes a ser registrados. Si no se establece para este complemento, el valor se heredar de [main]. A continuacin, una muestra del archivo config:
[main] interval=10 pidfile=/var/run/tuned.pid logging=info logging_disable=notset # Disk monitoring section [DiskMonitor] enabled=True logging=debug # Disk tuning section [DiskTuning] enabled=True hdparm=False alpm=False logging=debug # Net monitoring section [NetMonitor] enabled=True logging=debug # Net tuning section [NetTuning] enabled=True logging=debug # CPU monitoring section [CPUMonitor] # Enabled or disable the plugin. Default is True. Any other value # disables it. enabled=True # CPU tuning section [CPUTuning] # Enabled or disable the plugin. Default is True. Any other value # disables it. enabled=True

2.5.2. Tuned-adm
Por lo general, una auditora y anlisis de un sistema consume mucho tiempo, y probablemente no valga la pena ahorrarse los pocos vatios adicionales obtenidos al hacerla. Anteriormente, la nica alternativa era utilizar los parmetros predeterminados. Ahora, Fedora 14 ofrece perfiles independientes para casos de uso especficos como una alternativa entre estos extremos, junto con

14

Borrador

Tuned-adm

la herramienta tuned-adm que le permite cambiar fcilmente de perfiles en la lnea de comandos. Fedora 14 ofrece un nmero de perfiles predefinidos para casos de uso tpicos que usted puede seleccionar y activar con el comando tuned-adm, aunque tambin puede crear, modificar o borrar perfiles. Para listar todos los perfiles disponibles e identificar el perfil actual activo, ejecute:
tuned-adm list

Para mostrar el perfil actualmente activo, ejecute:


tuned-adm active

Para cambiar uno de los perfiles, ejecute:


tuned-adm profile profile_name

por ejemplo:
tuned-adm profile server-powersave

Para desactivar todos los ajustes:


tuned-adm off

Cuando instale por primera vez tuned, el perfil predeterminado se activar. Fedora 14 tambin incluye los siguiente perfiles predeterminados: default Es el perfil predeterminado de ahorro de energa. Tiene el ms bajo impacto en ahorro de energa de los perfile disponibles y slo habilita CPU y complementos de disco de tuned. desktop-powersave Es un perfil de ahorro de energa dirigido a sistemas de escritorio. Habilita ahorro de energa ALPM para adaptadores de host SATA (consulte Seccin 3.6, Administracin de energa de enlace agresivo ) y complementos de CPU, Ethernet, y disco de tuned. server-powersave Es un perfil de ahorro de energa dirigido a los sistemas de servidores. Habilita el ahorro de energa ALPM para adaptadores de host SATA, inhabilita polling de CD-ROM a travs de HAL (consulte la pgina man hal-disable-polling) y activa la CPU y complementos de disco de tuned. laptop-ac-powersave Es un perfil de ahorro de energa de medio impacto dirigido a porttiles en AC. Habilita ahorro de energa ALPM para adaptadores de host SATA, ahorro de energa WIFI, como tambin complementos de CPU, Ethernet y disco de tuned. laptop-battery-powersave Es un perfil de ahorro de energa de alto impacto dirigido a porttiles que se ejecutan con batera. Activa todos los mecanismos de ahorro de energa de los perfiles anteriores y habilita el programador de ahorro de energa multi-ncleos para sistemas despertadores bajos,. Adems, se asegura de que el gobernador ondemand est activo y que el ahorro de energa AC97 est habilitado. Este perfil se puede usar para ahorrar la mxima cantidad de energa en cualquier 15

Captulo 2. Herramientas de administracin y auditora de energa

Borrador

clase de sistema, no slo porttiles con batera. El sacrificio a cambio es un notable impacto en rendimiento, especficamente 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 energa tuned y ktune, habilita la configuracin de sysctl que mejora el rendimiento de procesamiento de su E/S de red y disco y cambia al programador de fecha lmite. latency-performance Es un perfil de servidor para ajuste de rendimiento de latencia tpica. Inhabilita los mecanismos de ahorro de energa de tuned y ktune habilita la configuracin de sysctl para mejorar el rendimiento de latencia de su E/S de red. Todos los perfiles estn almacenados en subdirectorios independientes bajo /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 configuracin para el servicio ajustado como activo para este perfil. sysctl.ktune la configuracin sysctl utilizada por ktune. El formato es idntico al archivo /etc/sysconfig/ sysctl (consulte las pginas man sysctl y sysctl.conf).. ktune.sysconfig el archivo de configuracin de ktune, tpicamente /etc/sysconfig/ktune. ktune.sh un script de shell estilo init utilizado por ktune el cual puede ejecutar comandos especficos durante el inicio del sistema para ajustar el sistema. La forma ms fcil de iniciar un nuevo perfil es copiando uno existente. El perfil laptop-batterypowersave 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

Modifique los archivos en el nuevo perfil para que coincidan con sus requerimientos personales. Por ejemplo, si usted requiere la deteccin de cambios de CD, puede desactivar esa optimizacin quitando el comentario de la lnea apropiada en ktune.sh script:
# Disable HAL polling of CDROMS # for i in /dev/scd*; do hal-disable-polling --device $i; done > /dev/null 2>&1

2.6. UPower
En Fedora 11 DeviceKit-power presupona que las funciones de administracin de energa eran parte HAL, y en versiones anteriores de Fedora, que algunas de las funciones eran parte de la herramienta Administracin de energa de GNOME (consulte tambin Seccin 2.7, El Gestor de energa de GNOME. En Fedora 13, DeviceKit-power fue rebautizado con el nombre de UPower. UPower ofrece un demonio, un API, y un conjunto de herramientas de lnea de comandos. Cada fuente de poder del sistema es representada como un dispositivo, sin importar que sea o no un dispositivo fsico. Por ejemplo, la batera de una laptop y la fuente de energa de corriente alterna son ambas representadas como dispositivos. 16

Borrador

El Gestor de energa de GNOME

Puede acceder a las herramientas de la lnea de comandos mediante el comando upower seguido de las siguientes opciones: --enumerate, -e ofrece una ruta de objeto para cada uno de los dispositivos de energa del sistema, por ejemplo:
/org/freedesktop/UPower/devices/line_power_AC /org/freedesktop/UPower/devices/battery_BAT0

--dump, -d ofrece los parmetros para todos los dispositivos de energa del sistema. --wakeups, -w ofrece los despertadores de CPU en el sistema. --monitor, -m monitorea el sistema en busca de modificaciones en los dispositivos de energa, por ejemplo, la conexin o desconexin de una fuente de energa de corriente alterna, o el agotamiento de una batera. Presione Ctrl+C para detener este monitoreo. --monitor-detail monitorea el sistema en busca de modificaciones en los dispositivos de energa, por ejemplo, la conexin o desconexin de una fuente de energa de corriente alterna, o el agotamiento de una batera. La opcin --monitor-detail ofrece ms detalles que --monitor. Presione Ctrl+C para detener este monitoreo. --show-info object_path, -i object_path ofrece toda la informacin existente relacionada con una ruta de objeto determinada. Por ejemplo, para obtener informacin acerca de una batera de su sistema, que est representada por la ruta de objeto /org/freedesktop/UPower/devices/battery_BAT0, ejecute:
devkit-power -i /org/freedesktop/UPower/devices/battery_BAT0

2.7. El Gestor de energa de GNOME


El Gestor de energa de GNOME es un demonio que est instalado como parte del escritorio de GNOME. La mayora de la funcionalidades de administracin de energa que el Gestor de energa de GNOME proporcionaba en versiones anteriores de Fedora se convirtieron en parte del DeviceKitpower en Fedora 11, renombrado a UPower en Fedora 13 (referirse a Seccin 2.6, UPower. Sin embargo, el Gestor de energa de GNOME sigue siendo una interfaz para esta funcionalidad. A travs de una mini-aplicacin en la bandeja del sistema, el Gestor de energa de GNOME notifica cambios en el estado de energa del sistema; por ejemplo, un cambio de la batera a la energa de corriente alterna. Tambin se reporta el estado de la batera y le avisa cuando la energa de la batera es baja. El Gestor de energa de GNOME tambin le permite establecer algunas configuraciones de administracin de energa. Para acceder a estas configuraciones, haga clic en el icono Gestor de energa de GNOME en la bandeja del sistema, luego haga clic en Preferencias La pantalla de Preferencias de administracin de energa contiene las siguientes pestaas: En energa de CA En energa de batera 17

Captulo 2. Herramientas de administracin y auditora de energa General

Borrador

Use las pestaas En energa CA y En energa de batera para especificar cunto tiempo debe pasar antes de que la pantalla se apaga en un sistema inactivo, cunto tiempo debe pasar antes de que un sistema inactivo se duerma, y si el sistema debe dejar de girar los discos duros cuando no estn en uso. La pestaa En energa de batera tambin le permite establecer el brillo de la pantalla y elegir una conducta para un sistema con una batera crticamente baja. Por ejemplo, el Gestor de energa de GNOME, por defecto, hace al sistema invernar cuando su nivel de pila alcanza un nivel bajo crtico. Use la pestaa General para establecer las conductas para el botn de energa (fsica) y el botn de suspender en su sistema y especifique las circunstancias bajo las cuales el icono del Gestor de energa de GNOME deber aparecer en la bandeja del sistema.

2.8. Otros medios de auditora


Fedora 14 ofrece otras herramientas con las cuales poder realizar auditoras y anlisis. La mayora de ellas pueden utilizarse como fuentes suplementarias de informacin, por ejemplo en caso de querer verificar lo que ya ha sido descubierto, o en caso de necesitar informacin en profundidad sobre determinados elementos. La mayora de estas herramientas tambin se utilizan para ajustar el rendimiento. Entre ellas se encuentra: vmstat vmstat proporciona informacin detallada sobre procesos, memoria, bsqueda, E/S de bloque, trampas y actividad de CPU. Utilcelo para ver ms de cerca lo que el sistema global hace y dnde est ocupado. iostat iostat es similar a vmstat, pero slo para dispositivos de bloque de E/S . Tambin proporciona estadsticas y una salida ms detallada. blktrace blktrace es un programa de rastreo de E/S de bloque. Analiza la informacin en bloques nicos asociados con aplicaciones. Es muy til en en combinacin con diskdevstat.

18

Borrador

Borrador

Infraestructura central y mecnica


3.1. Estados de CPU inactivos
Las CPU con arquitectura x86 soportan estados en los que partes de la CPU estn desactivadas o se ejecutan en configuraciones de rendimiento inferior. Dichos estados, conocidos como estados-C, permiten a los sistemas ahorrar energa al desactivar parcialmente las CPU que no estn en uso. Los estados-C se enumeran de C0 en adelante, con nmeros superiores que representan funcionalidad de CPU disminuida y mayor ahorro de energa. Los estados-C de un determinado nmero son bastante similares a travs de procesadores, aunque los detalles exactos de la configuracin de una funcionalidad especfica del estado puede variar entre familias de procesadores. Los estados-C se definen de as: C0 El estado en operacin o en ejecucin. 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 tpicamente no est en un estado de energa 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 energtico. 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, despus de reiniciar el reloj puede inmediatamente reiniciar el procesamiento. ste es un estado opcional. C3, Dormido un estado en el que el procesador realmente se va a dormir y no necesita mantener su memoria cache actualizada. Despertar de este estado necesita un tiempo considerablemente mayor que desde C2. Nuevamente, este es un estado optativo. Las CPU Intel recientes con la microarquitectura "Nehalem" presentan un nuevo estado-C, C6, el cual puede reducir a cero el voltaje proporcionado de una CPU, pero por lo general, reduce el consumo de energa entre el 80 y 90 por ciento. El kernel en Fedora 14 incluye optimizaciones para este nuevo estado-C.

3.2. Uso de gobernadores CPUfreq


Una de las formas ms efectivas para reducir el consumo de energa y la salida de calor en su sistema es utilizar CPUfreq. CPUfreq tambin se conoce como escalabilidad de velocidad de CPU permite el ajuste inmediato de la velocidad del reloj del procesador. De esta manera,el sistema puede ejecutar a una velocidad reducida de reloj para ahorrar energa. El gobernador de CPUfreq define las reglas de cambio de frecuencias, ya sea a una velocidad de reloj menor o mayor, y cundo cambiar las frecuencias. El gobernador define las caractersticas de energa de la CPU del sistema que a su vez afectan el rendimiento de la CPU. Cada gobernador tiene su propia conducta, propsito e idoneidad en trminos de carga de trabajo. Esta seccin describe cmo elegir y configurar un gobernador de CPUfreq, las caractersticas de cada gobernador y la clase de carga de trabajo para la cual cada gobernador es adecuado. 19

Captulo 3. Infraestructura central y mecnica Las principales preocupaciones que rodean la administracin de energa son: Reduccin del calor para servidores Extensin de la vida de la batera para porttiles

Borrador

Como regla general, disminuir el consumo de energa de un componente especfico (u otro del sistema como un todo) conducir a la disminucin del calor y por ende del rendimiento. Por esta razn, se debe estudiar a fondo y probar la disminucin del rendimiento permitida por algunas configuraciones que realice, especialmente para los sistemas de misin crtica. Las secciones a continuacin explican cmo el rendimiento ptimo de hardware beneficia a su sistema en trminos de consumo de energa.

3.2.1. Tipos de gobernadores CPUfreq


Esta seccin lista y describe los distintos tipos de gobernadores CPUfreq disponibles en Fedora 14.

cpufreq_performance
El gobernador de Rendimiento fuerza a la CPU a usar la frecuencia de reloj ms alta posible. Esta frecuencia se establecer de forma esttica y no cambiar. Como tal, este gobernador no ofrece beneficio de ahorro de energa. Es slo apropiado para horas de carga de trabajo pesado y luego incluso slo en momentos en que la CPU est rara vez (o nunca) inactiva.

cpufreq_powersave
En contraste, el gobernador Powersave fuerza a la CPU a usar la frecuencia de reloj ms baja posible. Esta frecuencia se establecer de forma esttica y no cambiar. Como tal, este gobernador ofrece ahorro mximo de energa, pero a expensas del rendimiento de CPU ms bajo. El trmino "powersave" puede algunas veces ser engaoso, ya que (en principio) una CPU lenta con carga completa consume ms energa que una CPU rpida que no est cargada. Entonces, aunque puede ser recomendable establecer la CPU para utilizar el gobernador Powersave durante los periodos en que se espera baja actividad, cualquier carga alta inesperada durante ese tiempo puede hacer que el sistema consuma ms energa. El gobernador Powersave, en trminos ms sencillos, en ms un "lmite de velocidad" para la CPU que un "ahorro de energa". Es ms til en sistemas y entornos donde el sobrecalentamiento pueda llegar ser un problema.

cpufreq_ondemand
El gobernador Ondemand es un gobernador dinmico que permite a la CPU alcanzar la mxima frecuencia de reloj cuando el sistema est inactivo. Aunque esto permite al sistema ajustar el consumo de energa segn 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 energa /rendimiento ofrecidos por el gobernador Ondemand si el sistema cambia, con demasiada frecuencia, entre inactivo y carga de trabajo pesada. Para la mayora de sistemas, el gobernador Ondemand puede proporcionar el mejor compromiso entre emisin de calor, consumo de energa, rendimiento y gestin. Cuando el sistema slo est ocupado en momentos del da especficos, el gobernador Ondemand cambiar automticamente entre frecuencia mxima y mnima segn la carga sin ninguna otra intervencin.

20

Borrador

Configuracin de CPUfreq

cpufreq_userspace
El gobernador Userspace permite a programas de espacio de usuario (o cualquier proceso que est ejecutndose como root) establecer la frecuencia. Este gobernador se utiliza junto con el demonio cpuspeed. De todos lo gobernadores, Userspace es el ms adaptable; y dependiendo de cmo se configure, puede ofrecer el mejor balance entre rendimiento y consumo para su sistema.

cpufreq_conservative
Al igual que el gobernador Ondemand, el gobernador Conservative ajusta la frecuencia de reloj segn el uso. Sin embargo, mientras el gobernador Ondemand lo hace de una manera agresiva (es decir, desde lo mximo a lo mnimo y viceversa), el gobernador Conservative cambia de frecuencias gradualmente. Es decir que el gobernador Conservative se ajustar a una frecuencia de reloj que estime correcta para la carga, en lugar de elegir simplemente entre mxima y mnima. Aunque esto podra proporcionar un significativo ahorro en consumo de energa, lo hace siempre a una latencia mayor que la del gobernador Ondemand.

Nota
Puede habilitar al gobernador mediante trabajos cron. Esto le permite automticamente establecer gobernadores especficos durante horas especficas del da. 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 ms alta durante horas de carga de trabajo pesada. Para obtener instrucciones sobre cmo habilitar un determinado gobernador, consulte Procedimiento 3.2, Cmo habilitar un gobernador CPUfreq en Seccin 3.2.2, Configuracin de CPUfreq.

3.2.2. Configuracin de CPUfreq


Antes de seleccionar y configurar un gobernador CPUfreq, se necesita aadir el controlador de CPUfreq. Procedimiento 3.1. Cmo aadir el controlador CPUfreq 1. Utilice el siguiente comando para ver cules controladores de CPUfreq estn disponibles en su sistema:
ls /lib/modules/[versin de kernel]/kernel/arq/[arquitectura]/kernel/cpu/cpufreq/

2.

Use modprobe para aadir el controlador CPUfreq apropiado.


modprobe [controlador de CPUfreq]

Al usar el comando anterior, asegrese de eliminar el sufijo de nombre de archivo .ko

21

Captulo 3. Infraestructura central y mecnica

Borrador

Importante
Al escoger un controlador CPUfreq apropiado, siempre elija acpi-cpufreq sobre p4clockmod. Aunque el uso del controlador p4-clockmod reduce la frecuencia del reloj de una CPU, no reduce el voltaje. Por otra parte, acpi-cpufreq reduce el voltaje junto con la frecuencia del reloj de la CPU, permitiendo menos consumo de energa y salida de calor para cada reduccin de unidad en rendimiento..

3.

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

Tambin puede ver qu gobernadores estn disponibles para una CPU especfica, mediante:
cat /sys/devices/system/cpu/[cpu ID]/cpufreq/scaling_available_governors

Algunos gobernadores de CPUfreq pueden no estar disponibles para su uso. En este caso, utilice modprobe para aadir los mdulos de kernel necesarios para habilitar el gobernador CPUfreq especfico que desee utilizar. Dichos mdulos de kernel estn disponibles en /lib/ modules/[versin de kernel]/kernel/drivers/cpufreq/. Procedimiento 3.2. Cmo habilitar un gobernador CPUfreq 1. Si el gobernador especfico no aparece en la lista como disponible, utilice modprobe para habilitar el gobernador que desee utilizar. Por ejemplo, si el gobernador ondemand no est disponible para su CPU, use el siguiente comando:
modprobe cpufreq_ondemand

2.

Cuando un gobernador est listado como disponible para su CPU, usted podr habilitarlo mediante:
echo [governor] > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

3.2.3. Ajuste de la poltica CPUfreq y Velocidad


Una vez que haya escogido el gobernador CPUfreq, podr ajustar la velocidad de cada una de las CPU utilizando los ajustadores que se hallan en /sys/devices/system/cpu/[cpu ID]/ cpufreq/. Dichos ajustadores son: cpuinfo_min_freq Muestra la frecuencia operativa mnima disponible de CPU' (en KHz). cpuinfo_max_freq Muestra la frecuencia operativa mxima 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 22

Borrador

Suspender y reanudar

Procedimiento 3.2, Cmo habilitar un gobernador CPUfreq en Seccin 3.2.2, Configuracin de CPUfreq para obtener instrucciones sobre cmo hacerlo. scaling_governor Shows what CPUfreq governor is currently in use. To use a different governor, simply use echo [governor] > /sys/devices/system/cpu/[cpu ID]/ cpufreq/scaling_governor (refer to Procedimiento 3.2, Cmo habilitar un gobernador CPUfreq in Seccin 3.2.2, Configuracin de CPUfreq for more information). 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_freq y scaling_max_freq Establecen los lmites de poltica de la CPU, en KHz.

Importante
Al establecer lmites de polticas, debe configurar scaling_max_freq antes de scaling_min_freq.

affected_cpus Lista las CPU que requieren software de coordinacin de frecuencia. scaling_setspeed Utilizado para cambiar la velocidad del reloj de la CPU, en KHz. Puede establecer slo una velocidad entre los lmites de polticas de las CPU (como en scaling_min_freq y scaling_max_freq). Para ver el valor actual de cada ajustable, utilice cat [tunable]. Por ejemplo, para ver la velocidad actual de cpu0 (en KHz), use: cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq. To change the value of each tunable, use echo [value] > /sys/devices/system/cpu/[cpu ID]/cpufreq/[tunable]. For example, to set the minimum clock speed of cpu0 to 360 KHz, use: echo 360000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

3.3. Suspender y reanudar


Cuando un sistema es suspendido, el kernel solicita a los controladores almacenar sus estados y luego los descarga. Cuando se reanuda el sistema, este recarga dichos controladores, los cuales intentan re-programar sus dispositivos. La habilidad de los controladores para realizar esta tarea determina si el sistema se puede reanudar exitosamente. Los controladores de vdeo son en particular problemticos en este respecto, porque la especificacin de la Configuracin avanzada e Interfaz de energa (ACPI) no requiere que firmware sea capaz de re-programar el hardware de vdeo. Por lo tanto, a menos que los controladores de vdeo puedan programar hardware desde un estado sin inicializar completamente, pueden impedir al sistema reanudar. Fedora 14 incluye el mayor soporte para nuevos chipsets grficos, lo cual garantiza que la suspensin y la reanudacin funcione en una gran cantidad de plataformas. El soporte para chipsets NVIDIA ha mejorado bastante; en particular para las series GeForce 8800. 23

Captulo 3. Infraestructura central y mecnica

Borrador

3.4. Kernel sin intervalos


Anteriormente, el kernel de Linux interrumpa peridicamente cada CPU en un sistema a una frecuencia predeterminada 100 Hz, 250 Hz, 1000 Hz, segn la plataforma. El kernel le preguntaba a la CPU por los procesos que estaba ejecutando y utilizaba los resultados para contabilidad de procesos y balance de cargas. Conocido como el temporizador de intervalo, el kernel realizaba esta interrupcin independientemente del estado de energa de la CPU. Por lo tanto, incluso una CPU inactiva responda hasta 1000 de estas solicitudes por segundo. En sistemas que implementaban medidas de ahorro de energa para CPU inactivas, el temporizador de intervalos evitaba que la CPU permaneciera inactiva lo suficiente como para que el sistema se beneficiara de estos ahorros de energa El kernel en Fedora 14 ejecuta un recurso denominado sin intervalos: es decir, remplaza las interrupciones peridicas antiguas por las interrupciones en demanda. Por lo tanto, a los CPU inactivos se les permite permanecer en este estado hasta que exista una nueva tarea en cola para procesar, y los CPU que han entrado en estados de energa inferiores, pueden permanecer en esos estados por ms tiempo.

3.5. Administrador de energa de estado activo


El Administrador de energa de estado activo (ASPM) ahorra energa en el subsistema de Interconexin de componentes perifricos Express (PCI Express o PCIe) al establecer el estado de baja energa para enlaces PCIe cuando los dispositivos que ellos conectan no estn en uso. ASPM controla el estado de energa en ambos extremos del enlace y ahorra energa en el enlace an cuando el dispositivo en el extremo del enlace est en estado de energa Total. Cuando ASPM est habilitado, la latencia de dispositivo aumenta debido al tiempo requerido para la transicin del enlace entre diferentes estados de energa. ASPM tiene tres polticas para determinar los tres estados de energa: default establece los estados de enlace de energa de PCLe segn los predeterminados especificados por firmware en el sistema (por ejemplo, BIOS). Este es el estado predeterminado para ASPM. powersave configura ASPM para ahorrar energa cuando sea posible, independiente del costo de rendimiento. performance Inhabilita ASPM para permitir que enlaces PCLe operen con el mximo rendimiento Las polticas ASPM se establecen en /sys/module/pcie_aspm/parameters/policy, pero tambin pueden especificarse en el momento de arranque con el parmetro 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.

Advertencia pcie_aspm=force puede hacer que los sistema dejen de responder


Si se establece 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.

24

Borrador

Administracin de energa de enlace agresivo

3.6. Administracin de energa de enlace agresivo


Administracin de energa de enlace agresivo (ALPM) es una tcnica de ahorro de energa que ayuda al disco a ahorrar energa al establecer un enlace SATA al disco a baja energa durante el tiempo de inactividad (es decir, cuando no hay E/S). ALPM restablece automticamente el enlace SATA a un estado de energa activo una vez que las solicitudes de E/S estn en la cola para ese enlace. El ahorro de energa introducido por ALPM viene a expensas de la latencia de disco. Como tal, debe slo usar ALPM si espera que el sistema presente largos periodos de tiempo de inactividad de E/S. ALPM slo est disponible en controladores SATA que utilizan la Interfaz de controlador de host avanzado (AHCI). Para obtener mayor informacin sobre AHCI, consulte http://www.intel.com/ technology/serialata/ahci.htm. Cuando est disponible, ALPM est habilitado por defecto. ALPM tiene tres modos:

min_power
Este modo establece el enlace a su mnimo estado de energa, (LETARGO) cuando no hay E/S en el disco. Dicho modo es til para cuando se espera un periodo extendido de tiempo de inactividad.

medium_power
Este modo establece el enlace en el segundo estado ms bajo de energa (PARCIAL) cuando no hay E/S en el disco. Dicho modo est diseado para permitir transiciones en estados de enlace de energa (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. El modo medium_power permite el enlace a la transicin entre estados PARCIAL y TOTAL (es decir "ACTIVE"), dependiendo de la carga. Tenga en cuenta que no es posible la transicin directa de un enlace PARCIAL a SLUMBER y viceversa; en este caso, ningn estado de energa puede pasar al otro sin haber hecho primero la transicin al estado ACTIVO.

max_performance
ALPM est inhabilitado; el enlace no entra a ningn estado de baja cuando no hay E/S en el disco. Para verificar si sus adaptadores de host SATA en realidad soportan ALPM, puede chequear si el archivo /sys/class/scsi_host/host*/link_power_management_policy existe.

Importante algunas configuraciones inhabilitan la conexin en caliente


Al establecer ALPM a min_power o a medium_power desactivar automticamente la funcionalidad "Conexin en caliente".

3.7. Optimizacin de acceso de unidad de Relatime


El estndar POSIX requiere que los sistemas operativos mantengan metadatos de sistema de archivos que registren la ltima vez que cada archivo ha sido accedido. Esta marca de tiempo se denomina 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 energa. La escritura a almacenamiento se presenta incluso si el archivo no fue ledo desde el almacenaje, sino desde la memoria cache. Por algn 25

Captulo 3. Infraestructura central y mecnica

Borrador

tiempo, el kernel de Linux ha soportado la opcin noatime para mount y no escribira datos atime a sistemas de archivos montados con esta opcin. Sin embargo, la desactivacin de esta funcionalidad es problemtica, puesto que algunas aplicaciones dependen de los datos de atime y fallarn si no est disponible. El kernel utilizado en Fedora 14 soporta otra alternativa relatime. Relatime mantiene datos atime, pero no para cada vez que se acceda a un archivo. Con esta opcin 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 da). Por defecto, todos los sistemas de archivos ahora se montan con la opcin relatime habilitada. Para suprimir esta funcionalidad a travs de todo el sistema, utilice el parmetro de arranque default_relatime=0. Si la opcin relatime est habilitada por defecto en un sistema, podr suprimirla para un determinado sistema de archivos montando ese sistema de archivos con la opcin norelatime. Por ltimo, para variar la longitud predeterminada antes de que el sistema actualice los datos atime de un archivo, utilice el parmetro de arranque relatime_interval=, especificando el periodo en segundos. El valor predeterminado es 86400.

3.8. Lmite de energa


Fedora 14 es compatible con las funcionalidades de lmite de energa de hardware reciente, tales como la tecnologa de HP Para lmite de energa dinmica (DPC, por las iniciales en ingls de Dynamic Power Capping), o la tecnologa Administrador de nodos de Intel (NM, Node Management). El lmite de energa permite a los administradores limitar la energa consumida por los servidores, pero tambin permite a los administradores planificar los centros de datos de forma ms eficiente, porque el riesgo de sobrecarga de fuentes de alimentacin existente se disminuye considerablemente. Los administradores pueden colocar ms servidores dentro del mismo espacio fsico y tener confianza en que si el consumo de energa de servidor est limitado, la demanda de energa durante la carga pesada no superar la energa disponible.

Lmite de energa dinmico de HP


El lmite de energa dinmico es una funcionalidad disponible en la seleccin de servidores ProLiant y BladeSystem que permite a los administradores de sistema limitar el consumo de energa de un servidor o un grupo de servidores. El lmite es un lmite definitivo que el servidor no superar, independientemente de su carga de trabajo actual. El lmite no surte ningn efecto hasta que el servidor alcanza su lmite de consumo de energa. En ese momento, el procesador de gestin ajusta estados de CPU P y la aceleracin del reloj para limitar la energa consumida. El lmite de energa dinmico modifica el comportamiento de CPU independientemente del sistema operativo, sin embargo, el firmware integrated Lights-Out 2 (iLO2) de HP, permite el acceso de sistemas operativos al procesador de gestin, y por lo tanto, las aplicaciones en el espacio de usuario pueden consultarlo. El kernel utilizado en Fedora 14 incluye un controlador para firmware de HP iLO e iLO2, el cual permite que los programas consulten procesadores de gestin en /dev/ hpilo/dXccbN. El kernel tambin incluye una extensin de la interfaz de sysfs hwmon que soporta funcionalidades de lmite de energa y un controlador hwmon para medidores de energa ACPI 4.0 que utilizan la interfaz sysfs. Estas caractersticas permiten que el sistema operativo y las herramientas de espacio de usuario lean el valor configurado para el lmite de energa, junto con la utilizacin actual de energa del sistema. For further details, refer to the official site: HP Dynamic Power Capping .
1

http://h18013.www1.hp.com/products/servers/management/dynamic-power-capping/index.html

26

Borrador

Administracin de energa en grficas mejoradas

Administrador de Nodos Intel


El Administrador de nodos de Intel ,impone un lmite de energa en sistemas, mediante el procesador de estados- P y estados-T para limitar el rendimiento de la CPU y, por tanto, el consumo de energa. Al establecer una poltica de gestin de energa, los administradores pueden configurar sistemas para consumir menos energa en momentos en que las cargas de sistema son bajas, por ejemplo, por la noche o los fines de semana. El administrador nodos Intel ajusta el rendimiento de la CPU mediante la Administracin de energa y configuracin dirigida del Sistema operativo (OSPM) a travs de la Interfaz de energa y configuracin avanzada estndar. Cuando el Administrador de nodos de Intel notifica al controlador de OSPM sobre los cambios a estados-T, el controlador hace los cambios correspondientes al procesador de estadosP. Igualmente, cuando el Administrador de nodos de Intel notifica al controlador de OSPM de los cambios de estados -P, el controlador cambia a estados-T respectivamente. Estos cambios suceden automticamente y no requieren ms entrada del sistema operativo. Los administradores configuran y monitorizan al Administrador de nodos de Intel con software Administrador de centro de datos Intel (DCM). For further details, refer to Node Manager A Dynamic Approach To Managing Power In The Data 2 Center

3.9. Administracin de energa en grficas mejoradas


Fedora 14 ahorra energa en los grficos y en la visualizacin de dispositivos al eliminar varias fuentes de consumo innecesario.

LVDS reclocking
La Sealizacin diferencial de bajo voltaje (LVDS por las iniciales en ingls de Low-voltage differential signaling) es un sistema que permite transmitir seales electrnicas sobre alambre de cobre. Un recurso importante del sistema es el de poder transmitir informacin pixel hacia la pantalla de cristal lquido (LCD) en computadores notebook. Todas las pantallas tienen una tasa de actualizacin la tasa en la cual reciben datos actualizados desde un controlador grfico, 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 un controlador grfico estn conectados por LVDS, el sistema LVDS utiliza energa en cada ciclo de actualizacin. Cuando se encuentra inactivo, la tasa de actualizacin de varias pantallas LCD pueden caer a 30 Hz sin ningn efecto perceptible (a diferencia de los monitores de tubo de rayos catdicos, CRT, en los cuales la reduccin en la tasa de actualizaciones produce un parpadeo caracterstico). El controlador para adaptadores grficos Intel incorporado en el kernel utilizado en Fedora 14 realiza automticamente este proceso, denominado downclocking, y ahorra cerca de 0.5 W cuando la pantalla est inactiva.

Habilitando memoria de auto-actualizacin


La Memoria de acceso aleatorio dinmico y sincrnico (SDRAM, por las iniciales en ingls de Synchronous dynamic random access memory) cuando es utilizada como memoria de vdeo en adaptadores grficos se recarga miles de veces por segundo para que las clulas de memoria individual retengan los datos que se almacenan en ellos. Aparte de su funcin principal de administrar datos cuando entran y salen de la memoria, el controlador de memoria es responsable de iniciar estos ciclos de actualizacin. Sin embargo, SDRAM tambin tiene un modo de auto actualizacin de baja energa. En dicho modo, la memoria utiliza un temporizador interno para generar su propios ciclos de actualizacin, lo cual permite al sistema apagar el controlador de memoria, sin por ello daar los

http://communities.intel.com/docs/DOC-4766

27

Captulo 3. Infraestructura central y mecnica

Borrador

datos que se encuentren actualmente en memoria. El kernel utilizado en Fedora 14 puede reactivar la auto-actualizacin de memoria en los adaptadores grficos Intel cuando se encuentren en inactividad, lo cual ahorra cerca de 0.8 W.

Reduccin de GPU de relojes


Las unidades de procesamiento grfico tpicas (GPUs) contienen relojes internos que gobiernan varias partes de su circuito interno. El kernel utilizado en Fedora 14 puede reducir la frecuencia de algunos de los relojes internos en GPUs Intel y ATI. Al reducir el nmero de ciclos que los componentes de GPU realizan en un tiempo determinado, se ahorra la energa que hubieran consumido en los ciclos que no tenan que actuar. El kernel reduce automticamente 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.

GPU powerdown
Los controladores grficos Intel y ATI en Fedora 14 pueden detectar cuando no exista un monitor conectado a un adaptador, y por lo tanto, apagar completamente la GPU. Esta funcionalidad es en particular importante para servidores que no tienen monitores conectados regularmente a ellos.

3.10. RFKill
Muchos sistemas informticos contienen radiotransmisores, que incluyen dispositivos Wi-Fi, Bluetooth, y 3G. Dichos dispositivos consumen energa, la cual se pierda si no se utiliza. RFKill es un subsistema en el kernel de Linux que proporciona una interfaz a travs de la cual radiotransmisores en un sistema informtico se pueden solicitar, activar o desactivar. Cuando los transmisores se desactivan, pueden ser localizados en un estado en el que software puede reactivarlos (un bloque blando) o en el que software no pueda reactivarlos (un bloque duro). El ncleo RFKill proporciona la interfaz de programacin de aplicacin (API) para el subsistema. Los controladores de Kernel que han sido diseados para soportar RFkill usan esta API para registrarse al kernel, e incluyen mtodos para habilitar e inhabilitar el dispositivo. Adems, el ncleo RFKill proporciona notificaciones que las aplicaciones de usuario pueden interpretar y formas para que aplicaciones de usuario soliciten estados de transmisor. La interfaz RFKill est localizada en /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. Adems, RFKill genera uevents para cada cambio de estado en un dispositivo RFKill-habilitado. Rfkill es una herramienta de lnea de comando con la cual se puedes solicitar y cambiar dispositivos de RFKill-habilitado en el sistema. Para obtener la herramienta, instale el paquete rfkill. Use el comando rfkill list para obtener una lista de dispositivos, cada uno de los cuales tiene un nmero de ndice asociado a ste, iniciando en 0. Se puede usar este nmero de ndice para decirle a rfkill que bloquee o desbloquee un dispositivo, por ejemplo:
rfkill block 0

bloquea el primer dispositivo RFKill-habilitado en el sistema. Tambin puede usar rfkill para bloquear algunas categoras de dispositivos o todos los dispositivos de RFKill-habilitado. Por ejemplo:
rfkill block wifi

28

Borrador

Optimizaciones en espacio de usuario

bloquea todos los dispositivos Wi-Fi en el sistema. Para bloquear todos los dispositivos RFKillhabilitado, ejecute:
rfkill block all

Para desbloquear dispositivos, ejecute rfkill unblock en lugar de rfkill block. Para obtener una lista completa de las categoras de dispositivos que rfkill puede bloquear, ejecute: rfkill help

3.11. Optimizaciones en espacio de usuario


La reduccin de la cantidad de trabajo realizada por el hardware de un sistema es fundamental para ahorrar energa. Por lo tanto, si bien los cambios descritos en Captulo 3, Infraestructura central y mecnica permiten que el sistema opere en varios estados de consumo de energa reducido, las aplicaciones en el espacio de usuario que soliciten trabajo innecesario del hardware del sistema, evitan que dicho hardware entre en tales estados. Durante el desarrollo de Fedora 14, se han realizado diferentes auditoras en las siguientes reas, para reducir demandas innecesarias de hardware:

Despertadores reducidos
Fedora 14 utiliza un kernel sin intervalo (consulte Seccin 3.4, Kernel sin intervalos), que permite al CPU permanecer en los estados ms profundos de inactividad por mayor perodo de tiempo. Sin embargo, el temporizador de intervalo no es la nica fuente de despertadores excesivos de CPU, y las llamadas de funcin desde aplicaciones pueden tambin evitar que el CPU entre o permanezca en estados de inactividad. Las llamadas de funcin innecesarias se redujeron en ms de 50 aplicaciones.

Almacenaje reducido y red de E/S


La entrada o salida (E/S) para dispositivos de almacenamiento y las interfaces de red obligan a dispositivos a consumir energa. En dispositivos de almacenamiento y de red esa funcionalidad reduca los estados de energa cuando estaban inactivos (por ejemplo, ALPM o ASPM), este trfico 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 informacin han sido minimizadas en varias aplicaciones. En particular, aquellas demandas que impedan a unidades de disco duro girar hacia abajo.

Auditora Initscript
Los servicios que se inicien automticamente, ya sean o no necesarios, tienen gran potencial para desperdiciar recursos del sistema. En su lugar, los servicios deberan configurarse por defecto a estar en "off" o "por demanda" siempre que sea posible. Por ejemplo, el servicio de BlueZ que permite el soporte Bluetooth, anteriormente se ejecutaba automticamente cada vez que el sistema era iniciado, sin importar que estuviera o no presente un hardware Bluetooth. Ahora, el initscript de BlueZ verifica primero que exista disponible algn hardware Bluetooth en en el sistema antes de iniciar el servicio.

29

30

Borrador

Borrador

Casos de uso
Este captulo describe dos tipos de casos de uso para ilustrar los mtodos de anlisis y configuracin descritos en esta gua. El primer ejemplo, observa servidores tpicos y el segundo observa un porttil tpico.

4.1. Ejemplo Servidor


Hoy en da, un servidor estndar normal, se ofrece fundamentalmente con todos los recursos de hardware soportados en Fedora 14. Lo primero que hay que tener en cuenta es la clase de carga de trabajo con la que por lo general ser utilizado el servidor. Teniendo en cuenta dicha informacin, podr decidir qu componentes podran ser optimizados para, por ejemplo, ahorrar energa. Independientemente del tipo de servidor, el rendimiento grfico no se requiere por lo general. Por lo tanto, el ahorro de energa GPU puede dejarse encendida.

Servidor de Web
Un servidor de Web necesita E/S de red y disco. Segn la velocidad de conexin externa 100 Mbit/s podra ser suficiente. Si la mquina sirve en su mayora pginas estticas, el rendimiento de la CPU podra no ser importante. Las opciones de administracin de energa por lo tanto incluiran: no hay complementos de disco o de red para tuned. ALPM encendido. Gobernador ondemand encendido. tarjeta de red limitada a 100 Mbit/s.

Servidor de cmputo
Un servidor de cmputo principalmente necesita CPU. Las opciones de administracin de energa podran incluir: Segn los trabajos y dnde se suceda el almacenamiento de datos, complementos de disco y red para tuned; o para sistemas de modo-batch, completamente activos tuned. segn el uso,quizs el gobernador de rendimiento.

Servidor de correo
Un servidor de correo necesita la mayora de las opciones de E/S de disco y CPU. Las opciones de administracin de energa podran incluir: Gobernador ondemand encendido, 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 10 Gbit/s.

Servidor de archivos
Los requisitos del Servidor de archivos son similares a los del servidor de correo, pero dependiendo del protocolo utilizado, podra requerir ms rendimiento de CPU. Por lo general, servidores basados 31

Captulo 4. Casos de uso

Borrador

en Samba, requieren ms CPU que NFS y, NFS requiere ms de iSCSI. Incluso con esto. debera poder utilizar el gobernador ondemand.

Servidor de directorio
Un servidor de directorio generalmente tiene requisitos ms bajos para E/S de disco, especficamente si est equipado con suficiente RAM. La latencia de red es importante aunque la E/S de red sea menor. Debera considerar el ajuste de latencia de red con una velocidad de enlace inferior, pero debera probarlo con cuidado en su red particular.

4.2. Ejemplo Porttil


Los porttiles son un lugar bastante comn donde el ahorro y la administracin de energa pueden realmente hacer la diferencia. Como los porttiles por diseo normalmente consumen drsticamente menos energa que las estaciones de trabajo o servidores, el potencial para ahorros absolutos es menor que para otras mquinas. Cuando est en modo de batera, sin embargo, cualquier ahorro puede ayudar a alargar unos minutos ms la vida de batera de un porttil. Aunque esta seccin se centra en porttiles en modo de batera, seguramente tambin puede an utilizar alguno o todos estos ajustes mientras ejecuta en energa de corriente alterna. Los ahorros para componentes nicos suelen hacer una diferencia relativamente mayor en los porttiles que en las estaciones de trabajo.Por ejemplo, una interfaz de red de 1 Gbit/s ejecutndose a 100 Mbits/s ahorra cerca de 34 vatios. Para un servidor tpico con un consumo de cerca de 400 vatios, este ahorro es aproximadamente de 1 %. En un porttil con un consumo total de energa alrededor de 40 vatios, el ahorro de energa en slo este componente llega a 10 % del total. Las optimizaciones de ahorro de energa en un porttil incluyen: Configure el BIOS del sistema para inhabilitar todo el hardware que no utilice. Por ejemplo, los puertos seriales y paralelos, los lectores de tarjeta, cmaras web, WiFi y Bluetooth entre otros candidatos. Atene el monitor en entornos ms oscuros donde no sea necesaria la plena iluminacin para leer la pantalla cmodamente. Utilice Sistema+Preferencias Administracin de energa en el escritorio de GNOME, Lanzador de aplicaciones Kickoff+Equipo+Configuracin del sistema+Avanzado Administracin de energa en el escritorio de KDE o Gestor de energa de GNOME o xbacklight en la lnea de comandos; o las teclas de funcin de su porttil. Use the laptop-battery-powersave profile of tuned-adm to enable a whole set of powersaving mechanisms. Note that performance and latency for the hard drive and network interface are impacted. Adems o como otra alternativa, puede realizar varios ajustes pequeos a varias configuraciones del sistema: utilizar el gobernador ondemand (activado por defecto en Fedora 14) activar modo porttil (parte del perfil de laptop-battery-powersave):
echo 5 > /proc/sys/vm/laptop_mode

aumentar tiempo de descarga a disco (parte del perfil laptop-battery-powersave):


echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

32

Borrador
1

Ejemplo Porttil

disable nmi (non-maskable interrupt) watchdog (part of the laptop-battery-powersave profile):


echo 0 > /proc/sys/kernel/nmi_watchdog

habilitar el ahorro de energa de audio AC97 (habilitado por defecto en Fedora 14):
echo Y > /sys/module/snd_ac97_codec/parameters/power_save

habilitar ahorro de energa multi-ncleos (parte el perfil laptop-battery-powersave):


echo Y > /sys/module/snd_ac97_codec/parameters/power_save

habilitar auto-suspensin de USB:


for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; done

Note that USB auto-suspend does not work correctly with all USB devices. habilitar mnima configuracin de energa para ALPM (parte del perfil laptop-batterypowersave):
echo min_power > /sys/class/scsi_host/host*/link_power_management_policy

montar sistema de archivos mediante relatime (por defecto en Fedora 14):


mount -o remount,relatime mountpoint

activar el mejor modo de ahorro de energa para discos duros (parte del perfil laptop-batterypowersave):
hdparm -B 1 -S 200 /dev/sd*

desactivar CD-ROM de polling (parte del perfil de laptop-battery-powersave):


hal-disable-polling --device /dev/scd*

reducir brillo de pantalla a 50 o menos, por ejemplo:


xbacklight -set 50

activar DPMS para inactividad de pantalla:


xset +dpms; xset dpms 0 0 300

reducir niveles de energa Wi-Fi (parte del perfil laptop-battery-powersave profile):


for i in /sys/bus/pci/devices/*/power_level ; do echo 5 > $i ; done

33

Captulo 4. Casos de uso desactivar Wi-Fi:


echo 1 > /sys/bus/pci/devices/*/rf_kill

Borrador

limitar red de cable a 100 Mbit/s (parte del perfil de laptop-battery-powersave):


ethtool -s eth0 advertise 0x0F

34

Borrador

Borrador

Apndice A. Consejos para desarrolladores


Cada texto de programacin cubre problemas sobre asignacin de memoria y rendimiento de funciones especficas. Cuando usted desarrolle su software, tenga en cuanta los aspectos que pueden aumentar el consumo de energa en los sistemas en los cuales se ejecuta el software. Aunque estas consideraciones no afectan cada lnea de cdigo, puede optimizar su cdigo en reas en las cuales se presentan cuellos de botella para rendimiento. Algunas tcnicas que suelen ser problemticas incluyen: 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 travs de aplicaciones (o incluso a travs de sistemas) si es posible. excesiva E/S. consumo de energa o uso de memoria (incluyendo filtraciones de memoria) realizacin innecesaria de computos. Las siguientes secciones examinan algunas de estas reas de una forma ms detallada.

A.1. Uso de hilos


Se cree que el uso de hilos hace que las aplicaciones tengan un rendimiento mejor y ms gil, pero no es cierto en todos los casos.

Python

Python usa el Global Lock Interpreter , por lo tanto, el uso de hilos es slo til para operaciones de E/ 2 S mayores. Unladen-swallow es una aplicacin de Python ms rpida con la cual puede optimizar su cdigo.

Perl
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

1 2

http://docs.python.org/c-api/init.html#thread-state-and-the-global-interpreter-lock http://code.google.com/p/unladen-swallow/

35

Apndice A. Consejos para desarrolladores

Borrador

datos, el mdulo threads::shared tiene que estar incluido. Sin embargo, los datos no son solamente copiados (Copia en Escritura), sino que el mdulo tambin crea variables vinculadas para los datos, lo 3 cual toma an ms tiempo y es an mucho ms lenta.

C
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 ms CPU para ms 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 vnculo C. Use 4 perfiladores para identificar las partes de su cdigo que se ejecutan pobremente.

A.2. Despertadores
Muchas aplicaciones pueden examinar archivos de configuracin para cambios. En algunos casos, el examen se realiza en un intervalo fijo, por ejemplo, cada minuto. Esto puede ser un problema, puesto que fuerza al disco a despertar de los spindowns. La mejor solucin es hallar un buen intervalo, un buen mecanismo de verificacin o revisar los cambios con inotify y reaccionar a eventos. Inotify puede verificar la variedad de cambios en un archivo o un directorio. Por ejemplo:
int fd; fd = inotify_init(); int wd; /* checking modification of a file - writing into */ wd = inotify_add_watch(fd, "./myConfig", IN_MODIFY); if (wd < 0) { inotify_cant_be_used(); switching_back_to_previous_checking(); } ... fd_set rdfs; struct timeval tv; int retval; FD_ZERO(&rdfs); FD_SET(0, &rdfs); tv.tv_sec = 5; value = select(1, &rdfs, NULL, NULL, &tv); if (value == -1) perror(select); else { do_some_stuff(); } ...

La ventaja de este enfoque es la variedad de verificaciones que se pueden realizar. La principal limitante es que slo un nmero limitado de reljes est disponible en el sistema. El nmero puede obtenerse en /proc/sys/fs/inotify/max_user_watches y aunque se puede cambiar, no es recomendable. Adems, si inotify falla, el cdigo tiene que resguardarse a un mtodo de verificacin diferente, lo cual suele significar muchas apariciones de #if #define en el cdigo fuente.

3 4

http://www.perlmonks.org/?node_id=288022 http://people.redhat.com/drepper/lt2009.pdf

36

Borrador Para obtener mayor informacin sobre inotify, consulte la pgina man inotify.

Fsync

A.3. Fsync
Fsync se conoce como una operacin de E/S costosa, pero esto no es totalmente cierto. Por 5 ejemplo, consulte el artculo de Theodore Ts No le tema a fsync! (en ingls) y la discusin que lo acompaa. Firefox llamaba a la biblioteca sqlite cada vez que el usuario haca clic en un enlace para ir a una nueva pgina. Sqlite llamaba a fsync y debido a las configuraciones del sistema de archivos (principalmente ext3 con datos en modo ordenado), haba ms latencia cuando nada suceda. Esto poda tardar un largo tiempo (ms de 30 segundos) si otro proceso estaba copiando un archivo grande al mismo tiempo. Sin embargo, en otros casos, donde fsync no se utilizaba en absoluto, se presentaban problemas con el cambio al sistema de archivos ext4. Ext3 se estableca de modo datos-ordenados, lo que haca que cada pocos segundos se borrara la memoria, y se almacene en el disco. Sin embargo, con ext4 y el modo_porttil, el intervalo entre almacenamientos era mayor, y los datos podan perderse si el sistema inesperadamente era apagado. Ahora ext4 est corregido, pero an debe considerarse cuidadosamente el diseo de las aplicaciones y utilizar fsync adecuadamente. El siguiente ejemplo de lectura y escritura en un archivo de configuracin muestra cmo se puede hacer una copia de seguridad de un archivo y cmo se pueden perder datos:
/* open and read configuration file e.g. ~/.kde/myconfig */ fd = open("./kde/myconfig", O_WRONLY|O_TRUNC|O_CREAT); read(myconfig); ... write(fd, bufferOfNewData, sizeof(bufferOfNewData)); close(fd);

Un mejor enfoque sera:


open("/.kde/myconfig", O_WRONLY|O_TRUNC|O_CREAT); read(myconfig); ... fd = open("/.kde/myconfig.suffix", O_WRONLY|O_TRUNC|O_CREAT); write(fd, bufferOfNewData, sizeof(bufferOfNewData)); fsync; /* paranoia - optional */ ... close(fd); rename("/.kde/myconfig", "/.kde/myconfig~"); /* paranoia - optional */ rename("/.kde/myconfig.suffix", "/.kde/myconfig");

http://thunk.org/tytso/blog/2009/03/15/dont-fear-the-fsync/

37

38

Borrador

Borrador

Apndice B. Historial de revisiones


Revisin 0.1 Thu Jul 29 2010 Rdiger Landmann r.landmann@redhat.com Llevado a desarrollo

39

40

You might also like