red hat enterprise linux-6-performance tuning guide-es-es

88
Red Hat Expertos en el tema Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento Optimización de resultados en Red Hat Enterprise Linux 6 Edición 4.0

Upload: joseescobargines

Post on 10-Nov-2015

234 views

Category:

Documents


6 download

TRANSCRIPT

  • Red Hat Expertos en el tema

    Red Hat Enterprise Linux 6Gua de ajuste de rendimiento

    Optimizacin de resultados en Red Hat Enterprise Linux 6Edicin 4.0

  • Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    Optimizacin de resultados en Red Hat Enterprise Linux 6Edicin 4.0

    Red Hat Expertos en el tema

    Edited byDon DomingoLaura Bailey

  • Legal NoticeCopyright 2011 Red Hat, Inc. and others.This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 UnportedLicense. If you distribute this document, or a modified version of it, you must provide attribution to RedHat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must beremoved.Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section4d 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.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 Statesand/or other countries.MySQL is a registered trademark of MySQL AB in the United States, the European Union and othercountries.Node.js is an official trademark of Joyent. Red Hat Software Collections is not formally related to orendorsed by the official Joyent Node.js open source or commercial project.The OpenStack Word Mark and OpenStack Logo are either registered trademarks/service marks ortrademarks/service marks of the OpenStack Foundation, in the United States and other countries andare used with the OpenStack Foundation's permission. We are not affiliated with, endorsed orsponsored by the OpenStack Foundation, or the OpenStack community.All other trademarks are the property of their respective owners.AbstractLa Gua de ajuste de rendimiento describe cmo optimizar el rendimiento de un sistema que ejecutaRed Hat Enterprise Linux 6. Tambin documenta mejoras relacionadas con rendimiento en Red HatEnterprise Linux 6. Aunque esta gua contiene procedimientos que se ensayan y prueban en el campo,Red Hat le recomienda ensayar todas las configuraciones planeadas en un entorno de prueba antes deaplicarlo al entorno de produccin. Haga tambin una copia de seguridad de sus datos yconfiguraciones de preajuste.

  • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Table of ContentsPrefacio

    1. Convenciones del Documento1.1. Convenciones tipogrficas1.2. Convenciones del documento1.3. Notas y Advertencias

    2. Cmo obtener ayuda y hacer sus comentarios2.1. Necesita ayuda?2.2. Necesitamos sus comentarios!

    Captulo 1. Visin general1.1. Audiencia1.2. Escalabilidad horizontal

    1.2.1. Computacin paralela1.3. Sistemas distribuidos

    1.3.1. Comunicacin1.3.2. Almacenamiento1.3.3. Redes convergentes

    Captulo 2. Funcionalidades de rendimiento de Red Hat Enterprise Linux 62.1. Soporte para 64 bits2.2. Cerrojos en bucle de tiquetes2.3. Estructura de lista dinmica2.4. Kernel sin intervalo2.5. Grupos de control2.6. Mejoras de almacenaje y sistemas de archivos

    Captulo 3. Monitorizacin y anlisis de rendimiento de sistemas3.1. El sistema de archivos 'proc'3.2. Monitores de sistema KDE y GNOME3.3. Herramientas de monitorizacin de lnea de comandos3.4. Tuned y ktune3.5. Perfiladores de aplicaciones

    3.5.1. SystemTap3.5.2. OProfile3.5.3. Valgrind3.5.4. Perf

    3.6. Red Hat Enterprise MRGCaptulo 4 . CPU

    TopologaHilosInterrupciones4.1. Topologa de CPU

    4.1.1. Topologa de CPU y Numa4.1.2. Ajuste de rendimiento de la CPU

    4.1.2.1. Configuracin de afinidad de CPU con taskset4.1.2.2. Control de la poltica NUMA con numactl

    4.1.3. numastat4.1.4. Demonio de administracin de afinidad NUMA (numad)

    4.1.4.1. Se beneficia de numad4.1.4.2. Modos de operacin

    4.1.4.2.1. Uso de numad como un servicio4.1.4.2.2. Uso de numad como un ejecutable

    5556788899

    101111121314161616171718192121212223242525262627282828282929303232343636373737

    Table of Contents

    1

  • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.2. Programacin de CPU4.2.1. Polticas de programacin Realtime4.2.2. Polticas de programacin normales4.2.3. Seleccin de polticas

    4.3. Interrupciones y ajuste de IRQ4.4. Mejoras a NUMA en Red Hat Enterprise Linux 6

    4.4.1. Optimizacin de escalabilidad y en vaco4.4.1.1. Mejoras en reconocimiento de topologa4.4.1.2. Mejoras en sincronizacin de multiprocesador

    4.4.2. Optimizacin de virtualizacinCaptulo 5. Memoria

    5.1. Huge Translation Lookaside Buffer (HugeTLB)5.2. Pginas gigantes y pginas gigantes transparentes5.3. Cmo utilizar Valgrind para perfilar el uso de memoria

    5.3.1. Perfilar uso de memoria con Memcheck5.3.2. Perfilar uso de cache con Cachegrind5.3.3. Cmo perfilar montculo y espacio de montculo con Massif

    5.4. Capacidad de ajuste5.5. Ajuste de memoria virtual

    Captulo 6. Entrada/Salida6.1. Funcionalidades6.2. Anlisis6.3. Herramientas6.4. Configuracin

    6.4.1. Cola de reparto justo (CFQ)6.4.2. Programador de tiempo lmite de E/S6.4.3. Noop

    Captulo 7. Sistemas de archivos7.1. Consideraciones de ajuste para sistemas de archivos

    7.1.1. Opciones de formateo7.1.2. Opciones de montaje7.1.3. Mantenimiento de sistema de archivos7.1.4. Consideraciones de aplicaciones

    7.2. Perfiles para rendimiento de sistema de archivos7.3. Sistemas de archivos

    7.3.1. El sistema de archivos Ext47.3.2. Sistema de archivos XFS

    7.3.2.1. Ajuste bsico para XFS7.3.2.2. Ajuste avanzado para XFS

    7.4. Agrupamiento7.4.1. Sistema de archivos global 2

    Captulo 8. Redes8.1. Mejoras de rendimiento de redes

    Direccionamiento de paquetes recibidos (RPS)Direccionamiento de flujo recibidoSoporte getsockopt para corrientes finas TCPSoporte de proxy transparente (TProxy)

    8.2. Parmetros de redes optimizadas

    383839394041414142424 444444545464849525454545659606263666666676868686969707171747476767676777777

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    2

  • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Tamao de bfer de recepcin de socket8.3. Visin general de recepcin de paquetes

    Afinidad CPU/cache8.4. Solucin de problemas comunes de colas y prdida de marcos

    8.4.1. Bfer de hardware de NIC8.4.2. Cola de socket

    8.5. Consideraciones de multidifusinHistorial de revisiones

    7979808081818284

    Table of Contents

    3

  • Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    4

  • Prefacio

    1. Convenciones del DocumentoEste manual utiliza varias convenciones para resaltar algunas palabras y frases y llamar la atencinsobre 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, semuestran tipografas alternativas pero equivalentes. Nota: Red Hat Enterprise Linux 5 y siguientesincluyen Liberation Fonts predeterminadas.

    1.1. Convenciones tipogrficasSe utilizan cuatro convenciones tipogrficas para llamar la atencin sobre palabras o frasesespecficas. Dichas convenciones y las circunstancias en que se aplican son las siguientes:

    Negrita monoespaciado

    Utilizado para resaltar la entrada del sistema, incluyendo los comandos de shell, nombres de archivos yrutas. Tambin sirve para resaltar teclas y combinaciones de teclas. Por ejemplo:

    Para ver el contenido del archivo my_next_bestselling_novel en su directorio actualde trabajo, escriba el comando cat my_next_bestselling_novel en el intrprete decomandos de shell y pulse Enter para ejecutar el comando.

    El ejemplo anterior incluye un nombre de archivo, un comando de shell y una tecla . Todo se presentaen negrita-monoespaciado y distinguible gracias al contexto.

    Las combinaciones de teclas se pueden distinguir de las individuales con el signo ms que conectacada partee de la combinacin de tecla. Por ejemplo:

    Pulse Enter para ejecutar el comando.

    Pulse Ctrl+Alt+F2 para pasar a una terminal virtual.

    El primer ejemplo resalta una tecla particular a pulsar. El segundo ejemplo, resalta una combinacin deteclas: un set de tres teclas pulsadas simultneamente.

    Si se discute el cdigo fuente, los nombres de las clase, los mtodos, las funciones, los nombres devariables y valores de retorno mencionados dentro de un prrafo sern presentados en Negrita-monoespaciado. Por ejemplo:

    Las clases de archivo relacionadas incluyen filename para sistema de archivos, filepara archivos y dir para directorios. Cada clase tiene su propio conjunto asociado depermisos.

    Negrita proporcional

    Esta denota palabras o frases encontradas en un sistema, incluyendo nombres de aplicacin, texto decuadro de dilogo, botones etiquetados, etiquetas de cajilla de verificacin y botn de radio; ttulos demen y ttulos del submen. Por ejemplo:

    Seleccione Sistema Preferencias Ratn desde la barra del men principal paralanzar Preferencias de ratn. En la pestaa de Botones, seleccione la cajilla de ratn

    Prefacio

    5

  • de mano izquierda y luego haga clic en Cerrar para cambiar el botn principal delratn de la izquierda a la derecha (adecuando el ratn para la mano izquierda).

    Para insertar un carcter especial en un archivo gedit , seleccione Aplicaciones Accesorios Mapa de caracteres de la barra del men. Luego, seleccione Bsqueda Buscar de la barra del men de Mapa de caracteres, escriba el nombre delcarcter en el campo de Bsqueda y haga clic en Siguiente. El carcter que busc serresaltado en la Tabla de caracteres. Haga doble clic en ese carcter resaltado paracolocarlo en el campo de Texto a copiar y luego haga clic en el botn Copiar. Ahoraregrese al documento y elija Modificar Pegar de 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 grficade 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 ovariable. Las itlicas denotan texto que usted no escribe literalmente o texto mostrado que cambiadependiendo de la circunstancia. Por ejemplo:

    Para conectar a una mquina remota utilizando ssh, teclee ssh nombre de [email protected] en un intrprete de comandos de shell. Si la mquina remotaes example.com y su nombre de usuario en esa mquina es john, teclee ssh [email protected] .

    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 que las palabras resaltadas en itlicas nombre de usuario, dominio.nombre, sistema dearchivo, paquete, versin y lanzamiento. Cada palabra es un marcador de posicin, ya sea de texto aingresar cuando se ejecuta un comando o para un texto ejecutado por el sistema.

    Aparte del uso estndar para presentar el ttulo de un trabajo, las itlicas denotan el primer uso de untrmino nuevo e importante. Por ejemplo:

    Publican es un sistema de publicacin de DocBook.

    1.2. Convenciones del documentoLos mensajes de salida de la terminal o fragmentos de cdigo fuente se distinguen visualmente deltexto circundante.

    Los mensajes de salida enviados a una terminal se muestran en romano monoespaciado y sepresentan as:

    books Desktop documentation drafts mss photos stuff svnbooks_tests Desktop1 downloads images notes scripts svgs

    Los listados de cdigo fuente tambin se muestran en romano monoespaciado, pero se presentany resaltan de la siguiente manera:

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    6

  • static int kvm_vm_ioctl_deassign_device(struct kvm *kvm, struct kvm_assigned_pci_dev *assigned_dev){ int r = 0; struct kvm_assigned_dev_kernel *match;

    mutex_lock(&kvm->lock);

    match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head, assigned_dev->assigned_dev_id); if (!match) { printk(KERN_INFO "%s: device hasn't been assigned before, " "so cannot be deassigned\n", __func__); r = -EINVAL; goto out; }

    kvm_deassign_device(kvm, match);

    kvm_free_assigned_device(kvm, match);

    out: mutex_unlock(&kvm->lock); return r;}

    1.3. Notas y AdvertenciasFinalmente, utilizamos tres estilos visuales para llamar la atencin sobre la informacin que de otromodo se podra pasar por alto.

    Nota

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

    Importante

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

    Aviso

    Las advertencias no deben ignorarse. Ignorarlas muy probablemente ocasionar prdida dedatos.

    Prefacio

    7

  • 2. Cmo obtener ayuda y hacer sus comentarios2.1. Necesita ayuda?Si encuentra dificultades con alguno de los procedimientos descritos en este documento, visite el Portaldel cliente de Red Hat en http://access.redhat.com. A travs del portal del cliente, usted podr:

    buscar o navegar a travs de la base de artculos de soporte tcnico sobre productos de Red Hat.enviar un caso de soporte a Servicios de Soporte Global de Red Hat (GSS)acceder a otra documentacin del producto.

    Red Hat alberga una lista grande de correos electrnicos para discutir sobre software de Red Hat ytecnologa. Encontrar un listado de las listas de correo disponibles al pblico enhttps://www.redhat.com/mailman/listinfo. Haga clic en el nombre de la lista a la que quiera suscribirse opara acceder a los archivos de listados.

    2.2. Necesitamos sus comentarios!Si encuentra un error tipogrfico en este manual o si ha pensado que hay alguna manera de mejorareste manual, nos gustara escuchar sus sugerencias. Por favor complete un reporte en Bugzilla:http://bugzilla.redhat.com/ relacionando el producto Red Hat Enterprise Linux 6 .

    Cuando enve un reporte de error no olvide mencionar el identificador' del manual: doc-Performance_Tuning_Guide

    Si tiene alguna sugerencia para mejorar la documentacin, trate de ser tan especfico como sea posible.Si ha encontrado algn error, por favor incluya el nmero de la seccin y parte del texto que lo rodeapara que sea ms fcil ubicarlo.

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    8

  • Captulo 1. Visin generalLa Gua de ajuste de rendimiento es una referencia completa sobre configuracin y optimizacin de RedHat Enterprise Linux. Aunque este lanzamiento tambin contiene informacin sobre funcionalidades derendimiento en Red Hat Enterprise Linux 5, todas las instrucciones provistas aqu son especficas paraRed Hat Enterprise Linux 6 .

    Este libro se divide en captulos que discuten subsistemas especficos en Red Hat Enterprise Linux. LaGua de ajuste de rendimiento se enfoca en tres temas principales por subsistema:

    FuncionalidadesCada captulo de subsistema describe funcionalidades de rendimiento nicas (oimplementadas de una forma diferente) en Red Hat Enterprise Linux 6. Estos captulos tambindescriben actualizaciones para Red Hat Enterprise Linux 6 que mejoraron el rendimiento deuna forma significativa de subsistemas especficos en Red Hat Enterprise Linux 5.

    AnlisisEste libro enumera los indicadores de rendimiento para cada subsistema. Los valores tpicospara dichos indicadores se describen en el contexto de servicios especficos, ayudndole as aentender su importancia en el mundo real de los sistemas de produccin.

    Adems, la Gua de ajuste de rendimiento tambin presenta diversas formas de recuperardatos de rendimiento para un sistema. Observe que algunas de las herramientas presentadasaqu se documentan en ms detalle en otros documentos.

    ConfiguracinLas instrucciones sobre cmo ajustar el rendimiento de un subsistema en Red Hat EnterpriseLinux 6, son quizs la informacin ms importante en este libro. La Gua de ajuste derendimiento explica cmo ajustar un subsistema de Red Hat Enterprise Linux 6 para serviciosespecficos.

    Recuerde que el ajuste de rendimiento de un subsistema puede algunas veces afectar de formaadversa el rendimiento de otro subsistema. La configuracin predeterminada de Red Hat EnterpriseLinux 6 es ptima para la mayora de los servicios que se ejecutan en cargas moderadas.

    Los procedimientos enumerados en la Gua de ajuste de rendimiento fueron probados a profundidadpor ingenieros de Red Hat tanto en laboratorio como en campo. No obstante, Red Hat le recomiendaque ensaye en un entorno de prueba seguro todas las configuraciones planeadas, antes de aplicarlasa sus servidores de produccin. Tambin debera hacer una copia de seguridad de todos los datos einformacin de configuracin antes de iniciar el ajuste de su sistema.

    1.1. AudienciaEste libro es apto para dos tipos de lectores:

    Analista de negocios/sistemasEste libro enumera y explica las funcionalidades de rendimiento de Red Hat Enterprise Linux 6en un alto nivel, proporcionando informacin suficiente sobre cmo rinden los subsistemaspara cargas de trabajo especficas (tanto predeterminadas como optimizadas). El nivel dedetalle utilizado para describir las funcionalidades de rendimiento de Red Hat Enterprise Linux6 ayuda a los clientes potenciales y a los ingenieros de ventas a entender la conveniencia de

    Captulo 1. Visin general

    9

  • esta plataforma al proveer servicios intensivos de recursos en un nivel aceptable.

    La Gua de ajuste de rendimiento tambin proporciona, en lo posible, enlaces dedocumentacin ms detallada sobre cada funcionalidad. En ese nivel de detalle, los lectorespueden entender el rendimiento de estas funcionalidades para formar una estrategia de altonivel al implementar y optimizar Red Hat Enterprise Linux 6. Esto permite a los lectoresdesarrollar y evaluar propuestas de infraestructura.

    Esta caracterstica enfocada en el nivel de documentacin es apropiada para lectores con unalto nivel de entendimiento sobre los subsistemas de Linux y de redes a nivel empresarial.

    Administrador de sistemasLos procedimientos enumerados en este libro son apropiados para administradores desistemas certificados con RHCE nivel de destrezas (o su equivalente, es decir, 3 o 5 aosde experiencia en implementar y administrar Linux). La Gua de ajuste de rendimiento tienecomo objetivo proporcionar informacin detallada en lo posible sobre los efectos de cadaconfiguracin; esto significa la descripcin de cualquier prdida o ganancia en rendimiento quepueda ocurrir.

    La destreza subyacente en el ajuste de rendimiento radica en no saber cmo analizar y ajustarun subsistema. En su lugar, un administrador de sistemas conocedor de ajustes derendimiento sabe cmo balancear y optimizar un sistema de Red Hat Enterprise Linux 6 parapropsitos especficos. Esto significa que tambin conoce qu prdidas y ganancias y precioson aceptables al intentar implementar una configuracin diseada para impulsar unrendimiento de subsistema especfico.

    1.2. Escalabilidad horizontalLos esfuerzos de Red Hat por mejorar el rendimiento de Red Hat Enterprise Linux 6 se enfocan en laescalabilidad. Las funcionalidades de aumento de rendimiento se evalan principalmente con base en laforma como afecta el rendimiento de plataforma en diferentes reas del espectro de carga de trabajoes decir, del servidor web solo a la unidad central de granja de servidores.

    El enfoque en escalabilidad permite a Red Hat Enterprise Linux mantener la versatilidad para diferentestipos de cargas de trabajo y propsitos. Al mismo tiempo, esto significa que cuando su empresa crece ysu carga de trabajo aumenta en escala, la reconfiguracin de su entorno de servidor es menosprohibitiva (en trminos de coste y hora-persona) y ms intuitiva.

    Red Hat hace mejoras a Red Hat Enterprise Linux tanto para escalabilidad horizontal como paraescalabilidad vertical; sin embargo, la escalabilidad horizontal suele ser el caso de uso ms aplicable. Laidea detrs de la escalabilidad horizontal es usar mltiples computadores estndar para distribuircargas de trabajo pesadas con el fin de mejorar el rendimiento y la confiabilidad.

    En una sala de servidores tpica, estos computadores estndar vienen en forma de servidoresmontados en una unidad de rack (1U) y de cuchilla. Cada computador estndar puede ser tan pequeocomo un sistema de dos sockets, aunque algunas salas de servidores usan grandes sistemas con msconectores. Algunas redes de grado empresarial mezclan sistemas grandes y pequeos; en cuyo caso,los sistemas grandes son servidores de alto rendimiento (por ejemplo, los servidores de base dedatos) y los pequeos son servidores de aplicaciones dedicadas (por ejemplo, los servidores web o decorreo).

    Este tipo de escalabilidad simplifica el crecimiento de su infraestructura de TI: una empresa mediana

    [1]

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    10

  • con una carga apropiada solamente podra necesitar nicamente dos servidores de caja de pizza paraajustarse a todas sus necesidades. Cuando la empresa emplea ms gente, expande sus operaciones yaumenta sus volmenes de ventas, sus requerimientos de TI aumentan tanto en volumen como encomplejidad. La escalabilidad horizontal permite a TI implementar mquinas adicionales conconfiguraciones (casi) idnticas a las de sus predecesores.

    En resumen, la escalabilidad horizontal aade una capa de abstraccin que simplifica la administracindel hardware del sistema. Al desarrollar la plataforma de Red Hat Enterprise Linux para escalar deforma horizontal, el aumento de habilidad y rendimiento de servicios de TI puede ser tan sencillo comoaadir nuevas mquinas configuradas.

    1.2.1. Computacin paralelaLos usuarios se benefician de la escalabilidad horizontal de Red Hat Enterprise Linux, no solo porquesimplifica la administracin de hardware del sistema; sino porque la escalabilidad horizontal es unafilosofa de desarrollo apropiada dadas las tendencias actuales de avance de hardware.

    Considere lo siguiente: la mayora de las aplicaciones ms complejas tienen miles de tareas que debenrealizarse de forma simultnea, con diferentes mtodos de coordinacin entre tareas. Mientras losprimeros computadores tenan un procesador de ncleo individual para intercambiar todas estas tareas,los procesadores virtuales de ahora tiene mltiples ncleos de tareas. En efecto, los computadoresmodernos colocan mltiples ncleos en un conector individual, lo cual crea incluso en escritorios yporttiles de un conector individual, sistemas de multiprocesadores.

    En 2010, los procesadores Intel y AMD tenan de 2 a 16 ncleos. Dichos procesadores eran servidoresen forma de caja de pizza o cuchilla, los cuales ahora cuentan con unos 40 ncleos. Estos sistemas dealto rendimiento y bajo costo brindan grandes capacidades y funcionalidades dentro de la corrienteprincipal.

    Para alcanzar el mejor rendimiento y utilizacin de un sistema, cada ncleo debe mantenerse ocupado.Esto significa que 32 tareas independientes deben estar ejecutndose para aprovechar un servidor decuchilla de 32 ncleos. Si un chasis contiene 10 de estas cuchillas de 32 ncleos, entonces toda laconfiguracin puede procesar un mnimo de 320 tareas de forma simultnea. Si estas tareas hacenparte de una individual, dichas tareas debern estar coordinadas.

    Red Hat Enterprise Linux fue desarrollado para adaptar bien a las tendencias del hardware yasegurarse de que las empresas puedan beneficiarse totalmente de ellas. La Seccin 1.3, Sistemasdistribuidos explora en gran detalle las tecnologas que habilitan la escalabilidad horizontal de Red HatEnterprise Linux.

    1.3. Sistemas distribuidosPara realizar una escalabilidad horizontal total, Red Hat Enterprise Linux usa varios componentes decomputacin distribuida. Las tecnologas que componen la computacin distribuida se dividen en trescapas:

    ComunicacinLa escalabilidad horizontal requiere que muchas tareas se realicen de forma simultnea (enparalelo). Como tal, estas tareas deben tener comunicacin de interprocesos para coordinar sutrabajo. Adems, una plataforma con escalabilidad horizontal debe poder compartir tareas atravs de varios sistemas.

    AlmacenamientoEl almacenamiento a travs de discos locales no es suficiente para los requerimientos de

    Captulo 1. Visin general

    11

  • escalabilidad horizontal. Alguna forma de almacenaje compartido o distribuido es necesaria,una con una capa de abstraccin que permita una capacidad de volumen para almacenajeindividual crecer sin problemas con la adicin de un nuevo hardware de almacenamiento.

    AdministracinLa labor ms importante en computacin distribuida es la capa de administracin. Esta capa deadministracin coordina todos los componentes de software y hardware, administrando deforma eficiente la comunicacin, almacenaje y el uso de recursos compartidos.

    Las siguientes secciones describen con ms detalle las tecnologas dentro de cada capa.

    1.3.1. ComunicacinLa capa de comunicacin asegura el transporte de datos y se compone de dos partes:

    HardwareSoftware

    La forma ms simple y rpida de comunicacin es a travs de memoria compartida. Esto implica el usode operaciones de lectura y escritura de memoria familiar; que memoria compartida tenga un alto anchode banda, latencia baja y baja sobrecarga de operaciones de memoria de lectura y escritura.

    Ethernet

    La forma ms comn de comunicacin entre computadores es por Ethernet. Hoy en da, Gigabit Ethernet(GbE) se proporciona de forma predeterminada en sistemas y la mayora de servidores incluyen 2a 4puertos de Gigabit Ethernet. GbE proporciona un buen ancho de banda y latencia. Esta es la base de lamayora de sistemas distribuidos en uso hoy en da. Incluso cuando los sistemas incluyen hardware deredes ms rpidas, es comn usar GbE para una interfaz de administracin dedicada.

    10GbE

    Ethernet de 10 Gigabits (10GbE) est creciendo rpidamente en aceptacin para servidores de altagama e incluso para servidores de rangos medios. 10GbE proporciona diez veces el ancho de bandade GbE. Una de sus ventajas principales es con modernos procesadores multincleos, donde restaurael equilibrio entre comunicacin y computacin. Puede comparar un sistema de ncleo nico medianteGbE con un sistema de ocho ncleos mediante 10GbE. Utilizado de esta forma, 10GbE es valioso paramantener el rendimiento de todo el sistema general y evitar cuellos de botella en comunicacin.

    Infortunadamente, 10GbE es costoso. Mientras el costo de NIC de 10GbE se reduce, el precio deinterconexin (especialmente el de fibra ptica) permanece alto y los interruptores de redes de 10GbEson extremadamente costosos. Podemos esperar que estos precios declinen con el tiempo, pero10GbE hoy es muy utilizado en redes de salas de servidores y aplicaciones de rendimiento crtico.

    Infiniband

    Infiniband ofrece incluso un mayor rendimiento que 10GbE. Adems de las conexiones de redes TCP/IPy UDP utilizadas con Ethernet, Infiniband soporta comunicacin de memoria compartida. Esto permite aInfiniband operar entre sistemas va acceso remoto de memoria (RDMA).

    El uso de RDMA permite a Infiniband trasladar datos directamente entre sistemas sin la sobrecarga delas conexiones o sockets TCP/IP. A la vez, esto reduce la latencia, lo cual es crtico para algunasaplicaciones.

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    12

  • Infiniband es muy utilizado en aplicaciones de Computacin tcnica de alto rendimiento (HPTC), lascuales requieren alto ancho de banda, baja latencia y baja sobrecarga. Muchas aplicaciones desupercomputacin se benefician de ello al punto que la mejor forma de mejorar el rendimiento esinvirtiendo en Infiniband en lugar de procesadores ms rpidos o ms memoria.

    RoCCE

    RDMA en Ethernet (RoCCE) implementa comunicaciones de estilo Infiniband (incluidas RDMA) en unainfraestructura de 10GbE. Dado el costo de mejoras asociadas con el volumen creciente de productosde 10GbE, se puede esperar un uso ms amplio de RDMA y RoCCE en un amplio rango de sistemas yaplicaciones.

    Cada uno de estos mtodo de comunicacin tiene total soporte de Red Hat para uso con Red HatEnterprise Linux 6.

    1.3.2. AlmacenamientoUn entorno con computacin distribuida usa mltiples instancias de almacenamiento compartido. Lo cualsignifica que:

    Los sistemas mltiples almacenan datos en un solo sitioLa unidad de almacenamiento (e.j. un volumen) compuesto de varios aparatos de almacenaje

    El ejemplo de almacenamiento ms comn es la unidad de disco local montada en un sistema. Esto esapropiado para operaciones de Tecnologa informtica donde todas las operaciones se albergan en unhost o incluso, en una pequea cantidad de hosts. Sin embargo, esto se dificulta y complica cuando lainfraestructura escala a docenas o incluso cientos de sistemas, que administran cuantos discos localesde almacenaje sean posibles.

    El almacenaje distribuido adiciona una capa para aliviar y automatizar la administracin de hardware dealmacenaje cuando el negocio escala. Al tener un grupo de instancias de almacenaje, se reduce elnmero de dispositivos que el administrador necesita manejar.

    La consolidacin de las funcionalidades de almacenaje de mltiples aparatos de almacenaje dentro deun volumen ayuda tanto a los usuarios como a los administradores. Este tipo de almacenaje distribuidoproporciona una capa de abstraccin de grupos de almacenaje: los usuarios ven una sola unidad dealmacenaje, a la cual un administrador puede fcilmente adicionar ms hardware. Algunas tecnologasque habilitan almacenaje distribuido tambin proporcionan beneficios adicionados, tales comoconmutacin y multirrutas.

    NFS

    El Sistema de archivos de red (NFS) permite mltiples servidores o usuarios montar y usar la mismainstancia de almacenaje remoto a travs de TCP o UDP. NFS es comnmente utilizada por mltiplesaplicaciones para guardar datos. Tambin es conveniente para almacenaje en de grandes cantidadesde datos.

    SAN

    Redes de rea de almacenaje (SAN) usan tanto Canal de fibra o protocolo iSCSI para proveer acceso alalmacenaje. La infraestructura de fibra de canal (tal como adaptadores de bus de host de canal de fibra,cambia y almacena arrays) combina rendimiento de alto rendimiento y alta banda ancha yalmacenamiento masivo. Los SAN separan almacenaje del procesamiento, proporcionando flexibilidadconsiderable en el diseo del sistema.

    La otra ventaja de SAN es que proporciona un entorno administrativo para realizar tareas

    Captulo 1. Visin general

    13

  • administrativas de hardware de mayor almacenamiento. A saber:

    Control de acceso de almacenajeAdministracin de grandes cantidades de datosAprovisionamiento de sistemasCopia de seguridad y replicacin de datosToma de instantneasSoporte de conmutacin de sistemaGaranta de integridad de datosMigracin de datos

    GFS2

    El Sistema de archivos global 2 (GFS2) de Red Hat proporciona varias habilidades especializadas. Lafuncin bsica de GFS2 es proporcionar un sistema de archivos nico, incluido el acceso concurrentede lectura y escritura, compartido a travs de mltiples miembros de un clster. Esto significa que cadamiembro del clster ve exactamente los mismos datos "en disco" en el sistema de archivos denominadoGFS2.

    GFS2 permite a todos los sistemas tener acceso concurrente al disco. Para mantener integridad dedatos, GFS2 usa un Gestor de cerrojo distribuido (DLM), el cual permite al sistema escribir a un sitioespecfico al mismo tiempo.

    GFS2 es especialmente bien apto para aplicaciones de conmutacin que requieren alta disponibilidaden almacenaje.

    Para obtener mayor informacin sobre GFS2, consulte Sistema de archivos global 2. Para mayorinformacin sobre almacenamiento en general, consulte la Gua de administracin de almacenaje. Lasdos estn disponibles en http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

    1.3.3. Redes convergentesLa comunicacin en redes se realiza normalmente a travs de Ethernet con trfico de almacenamientomediante un entorno de canal de fibra SAN. Es comn tener una red dedicada o enlace de serie paraadministracin de sistemas y quizs an heartbeat . Como resultado, un servidor nico suele estar enmltiples redes.

    Las conexiones mltiples en cada servicio son costosas, voluminosas y complejas de manejar. Esto dalugar a la necesidad de consolidar todas las conexiones en una. El Canal de fibra en Ethernet (FCoE) yel Sistema de Interfaz para computadoras pequeas en Internet (iSCSI) responden a esta necesidad.

    FCoE

    Con los comandos de FCoE, los comandos de canal de fibra estndar y los paquetes de datos setransportan en una infraestructura fsica 10GbE a travs de una sola tarjeta de red convergente (CNA).El trfico de Ethernet estndar TCP/IP y las operaciones de almacenamiento de canal de fibra sepueden transportar a travs del mismo enlace. FCoE usa una tarjeta de interfaz de red fsica (y uncable) para mltiples conexiones lgicas de almacenamiento y red.

    FCoE tiene las siguientes ventajas:

    Nmero reducido de conexionesFCoE reduce a la mitad el nmero de conexiones de red a un servidor. Usted puede tenermltiples conexiones para rendimiento o disponibilidad; sin embargo, una sola conexin

    [2]

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    14

  • proporciona conexin de almacenamiento y redes. Esto es muy til para servidor de caja depizza y servidor de cuchilla, ya que ambos tienen espacio muy limitado para componentes.

    Menor costoEl nmero reducido de conexiones significa una reduccin de cables, interruptores y otroequipo de redes. La historia de Ethernet tambin presenta grandes economas de escala; elcosto de redes cae de forma dramtica cuando la cantidad de dispositivos en el mercado pasade millones a mil millones, como se vio declinar el precio de dispositivos de Ethernet de 100Mby Ethernet de gigabits.

    Igualmente, 10GbE sern ms baratos cuando ms negocios adapten su uso. Puesto que elhardware de CNA se integra en un solo chip, el uso extendido tambin aumentar su volumenen el mercado, lo cual se traducir en una cada de precio significativa con el tiempo.

    iSCSI

    Internet SCSI (iSCSI) es otro tipo de protocolo de red convergente; es una alternativa para FCoE. Aligual que canal de fibra, iSCSI proporciona almacenamiento de nivel de bloques en una red. Sinembargo, iSCSI no proporciona una administracin total del entorno. La ventaja principal sobre iSCSI enFCoE es que iSCSI proporciona mucha de la habilidad y flexibilidad de canal de fibra, pero a un bajocosto.

    [1] Ing eniero certificad o d e Red Hat . Para o b tener mayo r info rmaci n, co nsulte http ://www.red hat.co m/training /certificatio ns/rhce/.[2] Heartbeat es el intercamb io d e mensajes entre s is tema p ara g arantizar q ue cad a s is tema an est funcio nand o . Si un s is tema" p ierd e latid o " o 'heartb eat' se asume q ue ha fallad o y se ap ag a y, o tro s is tema o cup a su lug ar.

    Captulo 1. Visin general

    15

  • Captulo 2. Funcionalidades de rendimiento de Red HatEnterprise Linux 6

    2.1. Soporte para 64 bitsRed Hat Enterprise Linux 6 soporta procesadores de 64 bits; dichos procesadores pueden usar enteora hasta 16 exabytes de memoria. Con el lanzamiento de Red Hat Enterprise Linux 6 (GA) se haprobado y certificado el soporte de hasta 8TB de memoria fsica.

    El tamao de la memoria soportada por Red Hat Enterprise Linux 6 se espera que crezca en lassiguientes actualizaciones menores, puesto que Red Hat sigue introduciendo y mejorando mscaractersticas que permiten el uso de bloques de memoria ms grandes. Ejemplos de estas mejoras(en el momento del lanzamiento de Red Hat Enterprise Linux 6) son:

    Pginas gigantes y pginas gigantes transparentesMejoras Memoria de Acceso No-Uniforme

    Estas mejoras se detallarn en las secciones siguientes.

    Pginas gigantes y pginas gigantes transparentes

    La implementacin de pginas gigantes en Red Hat Enterprise Linux 6, permite al sistema administrareficientemente el uso de memoria mediante cargas de trabajo de memoria. Las pginas gigantes usan2 MB de pginas comparados con el tamao estndar de pgina de 4 KB, lo cual permite a lasaplicaciones escalar bien del procesamiento de GB a incluso TB de memoria.

    Las pginas gigantes son difciles de crear, administrar y usar. Para solucionarlo, Red Hat Enterprise 6,ofrece el uso de pginas gigantes transparentes (THP). Las THP automticamente gestionan muchasde las complejidades implicadas en el uso de pginas gigantes.

    Para obtener mayor informacin sobre pginas gigantes y pginas gigantes transparentes (THP),consulte la Seccin 5.2, Pginas gigantes y pginas gigantes transparentes.

    mejoras NUMA

    Muchos de los sistemas ahora soportan Memoria de Acceso No-Uniforme (NUMA). NUMA simplifica eldiseo y la creacin de hardware para grandes sistemas; sin embargo, tambin aade una capa decomplejidad para el desarrollo de aplicaciones. Por ejemplo, NUMA implementa memoria local y remota,donde acceder a la memoria remota puede tardar varias veces ms que el acceso a la memoria local.Esta caracterstica (entre otras) tiene muchas implicaciones en el rendimiento que impactan a lossistemas operativos, aplicaciones y configuraciones de sistema sobre los que deberan serdesplegados.

    Red Hat Enterprise Linux 6 se ha mejorado para optimizar el uso de NUMA, gracias a variascaractersticas adicionales que ayudan a gestionar usuarios y aplicaciones en sistemas NUMA. Estascaractersticas incluyen afinidad de CPU, CPU pinning (conjunto de CPUs), numactl y grupos de control,que permiten a procesos (afinidad) o a aplicaciones (pinning) para "anclar" a una CPU especfica oconjunto de CPUs.

    Para obtener mayor informacin sobre el soporte NUMA en Red Hat Enterprise Linux 6, consulte laSeccin 4.1.1, Topologa de CPU y Numa.

    2.2. Cerrojos en bucle de tiquetes

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    16

  • Una parte clave de cualquier diseo de sistema, es garantizar que un proceso no altere la memoriautilizada por otro proceso. Los datos no controlados en memoria pueden corromper la informacin yocasionar fallas del sistema. Para evitarlo, el sistema operativo le permite a un proceso bloquear unaparte de memoria, realizar una operacin y luego desbloquear o liberar la memoria.

    Una implementacin de cerramiento de memoria comn, es a travs de 'Spinlocks' o cerrojos en bucle,los cuales le permiten a un proceso verificar continuamente si el cerrojo est disponible y tomarlocuando lo est, tan pronto como sea posible. Si hay varios procesos compitiendo por el mismo cerrojo,el primero en solicitar el cerrojo despus de que haya sido liberado, lo obtendr. Cuando todos losprocesos tienen el mismo acceso a memoria, este enfoque es "justo" y funcionar bastante bien.

    Lamentablemente, en un sistema NUMA, no todos los procesos tienen el mismo acceso a los bloques.Los procesos en el mismo nodo de NUMA como el cerrojo tienen pocas ventajas al obtener el cerrojo.Los procesos en nodos remotos de NUMA experimentan bloqueos y disminucin en el rendimiento

    Para solucionarlo, Red Hat Enterprise Linux implement los cerrojos en bucle de tiquetes. Estafuncionalidad adiciona un mecanismo de cola de reserva para el cerrojo que permite a todos losprocesos tomar un cerrojo en el orden que lo solicitaron. De esta manera se eliminan problemas detiempo y ventajas no equitativas en solicitudes de cerrojo.

    Aunque los cerrojos en bucle de tiquetes tienen ms sobrecarga que un cerrojo en bucle comn,escalan mejor y proporcionan mejor rendimiento en sistemas NUMA.

    2.3. Estructura de lista dinmicaEl sistema operativo requiere un conjunto de informacin en cada procesador en el sistema. En Red HatEnterprise Linux 5, esta informacin se asignaba a una matriz de tamao fijo en memoria. Este mtodoera rpido y directo para sistemas que contenan pocos procesadores.

    Sin embargo, cuando el nmero de procesadores para un sistema crece, este mtodo producesobrecarga significativa. Puesto que el tamao de matriz de memoria es fijo, el recurso compartidopuede convertirse en un cuello de botella cuando ms procesadores intentan accederlo al mismotiempo.

    Con el fin de solucionar este problema, Red Hat Enterprise Linux 6 usa una estructura de lista dinmicapara informacin de procesador. Esta estructura permite a la matriz utilizada para informacin deprocesador ser asignado de forma dinmica: si existen nicamente ocho procesadores en el sistema,entonces solo se crearn ocho entradas en la lista. Si hay 2.048 procesadores, entonces tambin secrearn 2.048 entradas.

    Una estructura de lista dinmica permite un cerramiento ms especfico. Por ejemplo, si se necesitaactualizar al mismo tiempo informacin para procesadores 6, 72, 183, 657, 931 y 1546, puede realizarsecon un paralelismo mayor. Situaciones como estas son ms frecuentes en sistemas grandes de altorendimiento que en sistemas pequeos.

    2.4. Kernel sin intervaloEn versiones anteriores de Red Hat Enterprise Linux, el kernel utilizaba un mecanismo basado entemporizador que produca continuamente una interrupcin del sistema. Durante cada interrupcin, elsistema sondeaba; es decir, verificaba si haba que realizar algn trabajo.

    Segn el parmetro, este interrupcin del sistema o intervalo de temporizador puede presentarse varioscientos o miles de veces por segundo. Esto sucede cada segundo, independiente de la carga de trabajodel sistema. En un sistema liviano, impactar el consumo de energa al evitar que el procesador use

    Captulo 2. Funcionalidades de rendimiento de Red Hat Enterprise Linux 6

    17

  • efectivamente los estados de dormido. Este sistema usa menos energa cuando est en el estadodormido.

    La forma ms eficiente de energa para que un sistema opere es trabajar lo ms rpido posible, ir alestado de 'dormido' ms profundo. Para implementarlo, Red Hat Enterprise Linux 6 usa el kernel sinintervalo. Con este kernel, el temporizador de interrupciones ha sido retirado del bucle inactivo,transformando a Red Hat Enterprise Linux 6 en un entorno completamente controlado por interrupciones

    El kernel sin intervalo le permite al sistema ir a estados de 'dormido' ms profundos durante los tiemposinactivos y responder rpidamente cuando haya trabajo que hacer.

    Para obtener mayor informacin, consulte la Gua de administracin de energa, disponible enhttp://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

    2.5. Grupos de controlRed Hat Enterprise Linux proporciona muchas opciones tiles para ajustar el rendimiento. Los grandessistemas, que escalan a cientos de procesadores, pueden ajustarse para entregar un gran rendimiento.Sin embargo, el ajuste de estos sistemas requiere una experiencia considerable y una carga de trabajobien definida. Cuando los grandes sistemas eran costosos y escasos, se aceptaba darles untratamiento especial. Ahora que estos sistemas son comunes, se requieren herramientas ms efectivas.

    En cosas ms complicadas, se utilizan sistemas ms poderosos para consolidacin de servicios. Lascargas de trabajo, que podran estar ejecutndose en cuatro a ochos servidores ms antiguos, ahorase colocan dentro un servidor individual. Adems, como se discuti anteriormente en Seccin 1.2.1,Computacin paralela, muchos sistemas de medio rango de hoy, contienen ms ncleos que lasmquinas de alto rendimiento de ayer.

    Muchas aplicaciones modernas estn diseadas para procesamiento paralelo, mediante mltiples hiloso procesos para mejorar el rendimiento. Sin embargo, pocas aplicaciones pueden hacer uso efectivo dems de ocho hilos. Por lo tanto, mltiples aplicaciones deben ser instaladas en un sistema de CPU de32 a una capacidad mxima.

    Considere la situacin: los sistemas actuales pequeos y baratos estn ahora en paridad con elrendimiento de las mquinas de ayer. Las mquinas de alto rendimiento otorgan a los arquitectos desistemas la capacidad de consolidar ms servicios a un nmero menor de mquinas.

    Sin embargo, algunos recursos (tales como E/S y comunicaciones de redes) son compartidos y nocrecen tan rpido como el conteo de CPU. Como tal, un sistema que alberga varias aplicaciones puedeexperimentar rendimiento total degradado cuando una aplicacin acapara demasiado de un solorecurso.

    Para solucionarlo, Red Hat Enterprise Linux 6 ahora soporta grupos de control (cgroups). Los cgroupsle permiten a los administradores asignar recursos para tareas especficas cuando se necesiten. Estosignifica, por ejemplo, que pueden asignar el 80% de cuatro CPU, 60GB de memoria y 40% de E/S dedisco a una aplicacin de base de datos. Una aplicacin que se ejecute en el mismo sistema puederecibir dos CPU, 2GB de memoria y 50% del ancho de banda de red.

    Como resultado, ambas bases de datos y aplicaciones de red entregan buen rendimiento, ya que elsistema evita que ambas consuman de forma excesiva los recursos del sistema. Adems, variosaspectos de cgroups son de auto-ajuste, lo que permite al sistema responder segn los cambios encarga de trabajo.

    Un Cgroup tiene dos componentes importantes:

    Una lista de tareas asignadas al Cgroup

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    18

  • Una lista de tareas asignadas al CgroupRecursos asignados a aquellas tareas

    Tareas asignadas al Cgroup se ejecutan dentro del Cgroup. Cualquier tarea hija que generen tambinse ejecuta dentor del Cgroup. Esto permite a un administrados manejar una aplicacin entera como unaunidad. Una administrador tambin puede configurar asignaciones para los siguientes recursos:

    CPUsetsMemoriaE/SRedes (ancho de banda)

    Dentro de CPU, los cgroups permiten al los administradores configurar la cantidad de CPU, la afinidadpara CPU o nodos especficos , y la cantidad de tiempo de CPU utilizada por una serie de tareas. Eluso de cgroups para configurar CPUsets es vital para garantizar un buen rendimiento total, evitando asque una aplicacin consuma recursos excesivos al costo de otras tareas, mientras que se garantiza deforma simultnea que a la aplicacin no le falte tiempo de CPU.

    El ancho de banda de E/S y de red se manejan mediante otros controladores de recursos. Una vezms, los controladores recursos le permiten determinar cunto ancho de banda pueden consumir lastareas y garantizar que las tareas en un cgroup ni consuman recursos excesivos ni carezcan de ellos.

    Los cgroups le permiten al administrador definir y asignar a un alto nivel, los recursos de sistemas quenecesitan (y consumirn) varias aplicaciones. El sistema maneja de forma automtica y equilibra lasaplicaciones, entregando de ese modo un buen rendimiento predecible de todo el sistema.

    Para obtener mayor informacin sobre cmo usar grupos de control, consulte la Gua de administracinde recursos, disponible en http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

    2.6. Mejoras de almacenaje y sistemas de archivosRed Hat Enterprise Linux 6 tambin introduce varias mejoras de almacenaje y administracin desistemas de archivos. Dos de los avances ms importantes en esta versin son el soporte para ext4 yXFS. Para obtener mayor informacin sobre mejoras de rendimiento relacionadas con almacenaje ysistemas de archivos, consulte el Captulo 7, Sistemas de archivos.

    Ext4

    Ext4 es el sistema de archivos predeterminado de Red Hat Enterprise Linux 6. Es la versin de la cuartageneracin de la familia del sistema de archivos EXT, que soporta en teora un tamao de sistema dearchivos mximo de 1 exabyte, y un archivo nico mximo de 16TB. Red Hat Enterprise Linux 6 soportaun tamao de sistema mximo de 16TB, y un archivo nico de 16TB. Adems de ofrecer una mayorcapacidad, ext4 tambin incluye nuevas funcionalidades, tales como:

    Metadatos basados en extensinAsignacin demoradaSuma de verificacin en el diario

    Para obtener mayor informacin sobre el sistema de archivos ext4, consulte la Seccin 7.3.1, Elsistema de archivos Ext4.

    XFS

    XFS es un sistema de archivos de diario robusto y maduro de 64 bits que soporta grandes archivos ysistemas de archivos en un solo host. Este sistema de archivos fue desarrollado inicialmente por SGI, y

    [3]

    Captulo 2. Funcionalidades de rendimiento de Red Hat Enterprise Linux 6

    19

  • tiene una larga historia de ejecucin en servidores extremadamente grandes y matrices dealmacenamiento. Las funcionalidades XFS incluyen:

    Asignacin demoradaInodos asignados de forma dinmicaIndexacin de rbol-B para escalabilidad de administracin de espacio libre.Desfragmentacin en lnea y crecimiento de sistema de archivosMetadatos sofisticados de algoritmos de lectura anticipada

    Mientras que XFS escala a exabytes, el tamao mximo del sistema de archivos XFS soportado por RedHat es 100TB. Para obtener mayor informacin sobre XFS, consulte la Seccin 7.3.2, Sistema dearchivos XFS.

    Grandes unidades de arranque

    El BIOS tradicional soporta un disco mximo de 2.2TB. Los sistemas de Red Hat Enterprise Linux 6 queutilizan BIOS pueden soportar discos de ms de 2.2TB mediante una nueva estructura de disco llamadaTabla de particiones global (GPT). GPT puede utilizarse nicamente para discos de datos; no se puedeutilizar para unidades de arranque con BIOS; por lo tanto, las unidades de arranque solo pueden tenerun tamao mximo de 2.2TB. El BIOS fue creado en un principio para los PC de IBM; aunque el BIOSevolucion considerablemente para adaptarse al hardware moderno, la Interfaz de Firmware ExtensibleUnificada (UEFI) fue diseada para soportar el nuevo hardware emergente.

    Red Hat Enterprise Linux 6 tambin soporta la UEFI, la cual puede utilizarse para remplazar el BIOS(an con soporte). Los sistemas con UEFI que ejecutan Red Hat Enterprise Linux 6 permiten el uso departiciones GPT y 2.2TB (y mayores) tanto para la particin de arranque como para la particin dedatos.

    Importante UEFI para sistemas x86 de 32 bits

    Red Hat Enterprise Linux 6 no soporta UEFI para sistemas x86 de 32 bits.

    Importante UEFI para AMD64 e Intel 64

    Observe que las configuraciones de arranque de UEFI y BIOS difieren significativamente una dela otra. Por lo tanto, el sistema instalado debe arrancar mediante el mismo Firmware utilizadodurante la instalacin. No se puede instalar el sistema operativo en un sistema que utilice BIOS yluego arrancar esta instalacin en un sistema que utilice UEFI.Red Hat Enterprise Linux 6 soporta la versin 2.2 de la especificacin UEFI. El hardware quesoporta la versin 2.3 o posterior de la especificacin UEFI debe operar con Red Hat EnterpriseLinux 6, pero la funcionalidad adicional definida por estas especificaciones no estarndisponibles. Las especificaciones estn disponibles en http://www.uefi.org/specs/agreement/.

    [3] Un no d o suele d efinirse co mo una serie d e CPU o ncleo s d entro d e un so cket.

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    20

  • Captulo 3. Monitorizacin y anlisis de rendimiento desistemasEste captulo introduce brevemente las herramientas que pueden ser utilizadas para monitorizar yanalizar el rendimiento de sistemas y aplicaciones, y seala las situaciones en las cuales cadaherramienta es ms til. Los datos recogidos por cada herramienta pueden revelar cuellos de botella uotros problemas del sistema que contribuyen a un rendimiento menos ptimo.

    3.1. El sistema de archivos 'proc'El 'sistema de archivos' proc es un directorio que contiene una jerarqua de archivos que representanel estado actual del kernel de Linux.

    El directorio proc tambin contiene informacin sobre hardware del sistema y cualquier proceso queest actualmente en ejecucin. La mayora de estos archivos son solo de lectura, pero algunos archivos(principalmente los que estn en /proc/sys) pueden ser manipulados por usuarios y las aplicacionespara comunicar los cambios al kernel.

    Para obtener mayor informacin sobre cmo ver y modificar archivos en el directorio proc, consulte laGua de implementacin, disponible enhttp://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

    3.2. Monitores de sistema KDE y GNOMELos entornos de escritorio de KDE y GNOME tienen herramientas grficas que lo ayudan en lamonitorizacin y modificacin de la conducta de nuestro sistema.

    Monitor del sistema GNOME

    El Monitor del sistema GNOME muestra informacin bsica y le permite monitorizar sus procesos delsistema, recursos y uso del sistema de archivos. bralo con el comando gnome-system-monitor enla Terminal, o haga clic en el men de Aplicaciones y seleccione Herramientas del sistema >Monitor del sistema .

    El Monitor del sistema de GNOME tiene cuatro pestaas:

    SistemaMuestra la informacin bsica sobre el hardware y software del computador

    ProcesosMuestra los procesos activos y las relaciones entre los procesos, y la informacin detalladasobre cada uno de ellos. Tambin le permite filtrar los procesos y realizar algunas acciones endichos procesos (iniciar, detener, matar, cambiar prioridad, etc)

    RecursosMuestra el uso del tiempo de la CPU actual, la memoria y el espacio de intercambio y el uso dela red.

    Sistema de archivosLista todos los sistemas de archivos montados junto con informacin bsica de cada uno, talcomo el tipo de sistema de archivos, punto de montaje y uso de memoria.

    Captulo 3. Monitorizacin y anlisis de rendimiento de sistemas

    21

  • Para obtener mayor informacin sobre el Monitor del sistema de GNOME, consulte el men deAyuda en la aplicacin o la Gua de implementacin, disponible enhttp://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

    Guarda del sistema de KDE

    El Guardin del sistema de KDE le permite monitorizar la carga del sistema actual y los procesosque estn en ejecucin. Tambin le permite realizar acciones en procesos. bralo mediante el comandoksysguard en la Terminal, o haga clic en el Lanzador de aplicaciones Kickoff y seleccioneAplicaciones > Sistema > Monitor del sistema .

    Hay dos pestaas para el Guardin del sistema de KDE:

    Tabla de procesosMuestra una lista de los procesos que se ejecutan, de forma predeterminad, en ordenalfabtico. Tambin puede clasificar los procesos por un nmero de propiedades, incluidas eluso de CPU, el uso de memoria fsica y compartida, el propietario y prioridad. Adems, puedefiltrar los resultados visibles, buscar procesos especficos o realizar algunas acciones en unproceso.

    Carga del sistemaMuestra grficas del historial de uso de CPU, espacio de memoria e intercambio y uso de red.Vaya sobre las grficas para obtener un anlisis detallado y claves de grfico.

    Para obtener mayor informacin sobre el Guardin del sistema de KDE, consulte el men de Ayudaen la aplicacin.

    3.3. Herramientas de monitorizacin de lnea de comandosAparte de las herramientas grficas de monitorizacin, Red Hat Enterprise Linux proporciona variasherramientas que pueden ser utilizadas para monitorizar un sistema desde la lnea de comandos. Laventaja de estas herramientas es que pueden ser utilizadas fuera del nivel de ejecucin 5. Esta seccindescribe brevemente cada herramienta y sugiere los propsitos para los cuales la herramienta es msapta.

    top

    La herramienta top proporciona una vista dinmica en tiempo real de los procesos en un sistema enejecucin. Puede mostrar una variedad de informacin que incluye un resumen del sistema y las tareasque son administradas en el momento por el kernel de Linux. Tambin tiene una habilidad limitada paramanipular procesos. Tanto la operacin como la informacin que presenta se pueden configurar muybien y cualquier detalle de configuracin puede hacerse persistente a travs los reinicios.

    Los procesos se presentan ordenados de forma predeterminada por porcentaje de uso de CPU,proporcionando as, una vista general de los procesos que estn consumiendo la mayora de losrecursos.

    Para obtener mayor informacin sobre top, consulte la pgina de manual: man top.

    ps

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    22

  • La herramienta ps toma una instantnea de un grupo selecto de procesos activos. Este grupo se limita,de forma predeterminada, a los procesos pertenecientes al usuario actual y que estn asociados a lamisma terminal.

    Puede proporcionar informacin ms detallada sobre procesos que top, pero no es dinmica.

    Para obtener informacin sobre el uso de ps, consulte la pgina de manual: man ps.

    vmstat

    vmstat (Estadsticas de memoria virtual) produce reportes instantneos sobre los procesos desistema, memoria, paginacin, E/S de bloques, interrupciones y actividad de CPU.

    Aunque no es dinmica como top, puede especificar un intervalo de muestra, el cual le permite observarla actividad del sistema en un tiempo casi real.

    Para obtener informacin detallada sobre el uso de vmstat , consulte la pgina de manual: man vmstat.

    sar

    El SAR (Reportero de actividad del sistema) recolecta y reporta informacin sobre la actividad delsistema hasta el momento de hoy. La salida predeterminada cubre el uso de CPU de hoy en intervalosde 10 minutos desde el comienzo del da.

    12:00:01 AM CPU %user %nice %system %iowait %steal %idle12:10:01 AM all 0.10 0.00 0.15 2.96 0.00 96.7912:20:01 AM all 0.09 0.00 0.13 3.16 0.00 96.6112:30:01 AM all 0.09 0.00 0.14 2.11 0.00 97.66...

    Esta herramienta es una alternativa til para intentar crear reportes peridicos sobre la actividad delsistema mediante top o herramientas similares.

    Para obtener informacin detallada sobre el uso desar, consulte la pgina de manual: man sar.

    3.4. Tuned y ktuneTuned es un demonio que monitoriza y colecciona datos sobre el uso de varios componentes delsistema y utiliza esa informacin para ajustar de forma dinmica los parmetros del sistema como serequiere. Puede reaccionar a cambios en el uso de la CPU y red y ajustar parmetros para mejorar elrendimiento en dispositivos activos o reducir consumo de energa en dispositivos inactivos.

    ktune se asocia con la herramienta tuned-adm para proporcionar un nmero de perfiles de ajuste quese preconfiguran para mejorar el rendimiento y reducir el consumo de energa en un nmero especficode casos. Modifique o cree nuevos perfiles para crear soluciones de rendimiento ajustadas a suentorno.

    Los perfile provistos como parte de tuned-adm incluyen:

    defaultEl perfil predeterminado de ahorro de energa. Es el perfil de ahorro de energa ms bsico.Habilita nicamente los complementos de disco y CPU. Observe que no es lo mismo queapagar tuned-adm, donde tanto tunedy ktune estn inactivos.

    Captulo 3. Monitorizacin y anlisis de rendimiento de sistemas

    23

  • latency-performanceUn perfil de servidores para ajuste de rendimiento de latencia tpico. Desactiva los mecanismosde ahorro de energa de tuned y ktune . El modo de cpuspeed cambia a rendimiento. Elelevador de E/S cambia a fecha lmite para cada dispositivo. Para calidad deadministracin de energa de servicio, el valor de requerimiento de cpu_dma_latency seregistra con un valor de 0.

    throughput-performanceUn perfil de servidor para ajuste de rendimiento tpico. Este perfil se recomienda si el sistemano tiene almacenamiento de clase empresarial. Es igual a latency-performance, excepto:

    kernel.sched_min_granularity_ns (granularidad de preferencia mnima delprogramador) se establece a 10 milisegundos,kernel.sched_wakeup_granularity_ns (granularidad de despertador del programador)se establece a 15 milisegundos,vm.dirty_ratio (relacin sucia de mquina virtual) se establece a 40%, ylas pginas gigantes transparentes se activan.

    enterprise-storageEste perfil se recomienda para configuraciones de servidor de tamao empresarial conalmacenamiento de clase empresarial, que incluye proteccin de cache y administracin decontrolador de batera de respaldo de cache en disco. Es similar al perfil de throughput-performance con una sola adicin: los sistemas de archivos se remontan con barrier=0.

    virtual-guestEste perfil se recomienda para configuraciones de servidor de tamao empresarial conalmacenamiento de clase empresarial, que incluye proteccin de cache y administracin decontrolador de batera de respaldo de cache en disco. Es igual que el perfil de throughput-performance, excepto que:

    el valor readahead se establece a 4x, ylos sistemas de archivos no root/boot se remontan con barrier=0.

    virtual-hostBasndose en el perfil de almacenaje de enterprise-storage, virtual-host tambindecrece en swappiness de memoria virtual y habilita ms retro-escritura agresiva de pginassucias. Este perfil est disponible en Red Hat Enterprise Linux 6.3 y posterior, y es el perfilrecomendado para hosts de virtualizacin, incluidos los hosts de KVM y de Red Hat EnterpriseVirtualization.

    Consulte la Gua de administracin de energa de Red Hat Enterprise Linux 6, disponible enhttp://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/, para obtener mayorinformacin sobre tuned y ktune .

    3.5. Perfiladores de aplicacionesPerfilado es el proceso de reunir informacin sobre una conducta de un programa durante su ejecucin.

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    24

  • Una aplicacin es perfilada para determinar las reas de un programa que pueden ser optimizadaspara aumentar la velocidad completa del programa, reducir su uso de memoria, etc. Las herramientas deperfilado de aplicaciones ayudan a simplificar este proceso.

    Existen tres herramientas de perfilado para usar con Red Hat Enterprise Linux 6: SystemTap,OProfile y Valgrind. La descripcin de estas herramientas no es uno de los objetivos de esta gua; sinembargo, esta seccin proporciona enlaces si desea obtener mayor informacin y una visin general delas tareas para las cuales es apropiado cada perfilador.

    3.5.1. SystemTapSystemTap es una herramienta de trazado y sondeos que permite a los usuarios monitorizar y analizaren detalle las actividades del sistema operativo (en particular las actividades de kernel). Proporcionainformacin similar a la salida de herramientas como netstat , top, ps y iostat , pero incluye filtrajeadicional y opciones de anlisis para la informacin recolectada.

    SystemTap proporciona un anlisis ms preciso y profundo de las actividades del sistema y la conductade aplicaciones para permitirle determinar con precisin los cuellos de botellas de las aplicaciones.

    La funcin del complemento de Callgraph para Eclipse usa SystemTap como un segundo plano, el cualpermite monitorizar a profundidad el estatus de un programa, incluidas las llamadas de funcin,retornos, tiempos y variables de espacio de usuario, y visualiza la informacin para una fciloptimizacin.

    Para obtener mayor informacin sobre SystemTap, consulte la Gua para principiantes de SystemTap,disponible en http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

    3.5.2. OProfileOProfile (oprofile) es una herramienta de monitorizacin de rendimiento de todo el sistema. Utilizahardware dedicado de monitorizacin de rendimiento de procesos para recuperar informacin sobre elkernel y los ejecutables del sistema, como por ejemplo cuando se refiere a la memoria, a la cantidad desolicitudes de cache L2 y al nmero de interrupciones de hardware recibidas. Tambin puede serutilizado para determinar el uso del procesador y las aplicaciones y servicios ms utilizadas.

    OProfile tambin puede utilizarse con Eclipse a travs del complemento de Eclipse OProfile. Estecomplemento permite determinar fcilmente la mayora de reas que consumen tiempo de su cdigo yrealizan todas las funciones de lnea de comandos de OProfile con una visualizacin copiosa deresultados.

    Sin embargo, los usuarios deben tener en cuenta varias limitaciones de OProfile:

    Las muestras de monitorizacin de rendimiento no pueden ser precisas, puesto que el procesadorpuede ejecutar instrucciones que no funcionan o registrar una muestra de una instruccin cercana,en lugar de la instruccin que produjo la interrupcin.Puesto que OProfile es un sistema amplio y espera que los procesos inicien y se detengan variasveces, se permite que las muestras acumulen mltiples ejecuciones. Es decir, que puede es posibleque tenga que limpiar datos de muestras de ejecuciones anteriores.Se enfoca en la identificacin de problemas con procesos de CPU limitada y por lo tanto, no identificalos procesos que estn durmiendo mientras esperan cerrojos para otros eventos.

    Para obtener mayor informacin sobre el uso de OProfile, consulte la Gua de implementacin,disponible en http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/, o ladocumentacin oprofile en su sistema, localizado en /usr/share/doc/oprofile-.

    Captulo 3. Monitorizacin y anlisis de rendimiento de sistemas

    25

  • 3.5.3. ValgrindValgrind ofrece una serie de herramientas que colaboran con el rendimiento y exactitud de nuestrasaplicaciones. Estas herramientas pueden detectar errores de memoria y de hilos relacionados, ysobrecargas de montculo, pila y matrices, que le permiten localizar y corregir fcilmente errores en sucdigo de aplicacin. Pueden tambin perfilar la memoria cache, el montculo y prediccin de saltos paraidentificar los factores que incrementan la velocidad de aplicaciones y minimizan el uso de memoria deaplicaciones.

    Valgrind analiza su aplicacin al ejecutarla en una CPU sinttica e instrumentando el cdigo deaplicacin existente mientras se ejecuta. Imprime luego "commentary" identificando de forma clara elproceso implicado en la ejecucin de la aplicacin para un descriptor de archivos de usuarioespecificado. El nivel de instrumentacin vara segn la herramienta Valgrind en uso y sus parmetros,pero es importante observar que al ejecutar el cdigo instrumentado puede tardar de 4 a 50 veces msque la ejecucin normal.

    Valgrind puede servir para usar su aplicacin tal como est, sin recompilar. Sin embargo, puesto queValgrind usa informacin de depuracin para sealar los problemas en su cdigo, si sus bibliotecas deaplicaciones y soporte no estuvieran compiladas con informacin de depuracin habilitada, essumamente recomendable incluir dicha informacin.

    A partir de Red Hat Enterprise Linux 6.4, Valgrind se integra con gdb (Proyecto de depuracin GNU)para mejorar la eficiencia de depuracin.

    Par obtener mayor informacin sobre Valgrind, consulte la Gua del desarrollador, disponible enhttp://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/, o al usar el comando man valgrind cuando sea instalado el paquete de valgrind. Tambin encontrar documentacin en:

    /usr/share/doc/valgrind-/valgrind_manual.pdf/usr/share/doc/valgrind-/html/index.html

    Para mayor informacin sobre el uso de Valgrind para perfilar la memoria del sistema, consulte laSeccin 5.3, Cmo utilizar Valgrind para perfilar el uso de memoria.

    3.5.4. PerfLa herramienta perf proporciona un nmero de contadores de rendimiento tiles que permiten alusuario evaluar el impacto de otros comandos en su sistema:

    perf statEste comando proporciona las estadsticas generales para eventos de rendimiento, queincluyen instrucciones ejecutadas y ciclos de reloj consumidos. Utilice los indicadores parareunir estadsticas sobre eventos diferentes a los eventos de medidas predeterminados. Apartir de Red Hat Enterprise Linux 6.4, es posible usar perf stat para filtrar monitorizacinbasada en uno o ms grupos de control (cgroups). Para obtener mayor informacin, consulte lapgina de manual: man perf-stat.

    perf recordEste comando registra datos de rendimiento en un archivo que puede ser analizado msadelante mediante perf report. Para obtener mayor informacin, consulte la pgina demanual: man perf-record.

    perf report

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    26

  • Este comando lee los datos de rendimiento de un archivo y analiza los datos registrados. Paraobtener mayor informacin, consulte la pgina de manual: man perf-report.

    perf listEste comando lista los eventos disponibles en una determinada mquina. Dichos eventosvaran segn el hardware de monitorizacin de rendimiento y el software de configuracin delsistema. Para obtener mayor informacn, consulte la pgina de manual: man perf-list.

    perf topEste comando realiza una funcin similar a la herramienta top. Genera y despliega un perfil decontador de rendimiento en tiempo real. Para obtener mayor informacin, consulte la pgina demanual:man perf-top.

    Para obtener mayor informacin sobre perf, consulte la Gua de desarrollador de Red Hat EnterpriseLinux, disponible en http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

    3.6. Red Hat Enterprise MRGEl componente de tiempo real de MRG de Red Hat enterprise incluye a Tuna , una herramienta quepermite a los usuarios ajustar los valores de ajustables que su sistema y ver los resultados de dichoscambios. Aunque fue desarrollado para usar con el componente de Realtime, puede utilizarse paraajustar los sistemas de i Red Hat Enterprise Linux estndar.

    Con Tuna, puede ajustar o desactivar la actividad innecesaria del sistema, incluidos:

    Los parmetros de BIOS relacionados con la administracin de energa, deteccin de errores einterrupciones de administracin del sistema;los parmetros de redes, tales como interrupcin de coalescencia, y el uso de TCP;Actividad de diario en sistemas de archivos de diarioingreso a sistema;Si las interrupciones o procesos de usuario son manejadas por una CPU o un rango de CPUespecficas;Si el espacio swap es utilizado; ycmo tratar excepciones de falta de memoria.

    Para obtener mayor informacin conceptual sobre el ajuste de Red Hat Enterprise MRG con la interfazTuna, consulte el captulo de Ajuste general del sistema de la Gua de ajuste de tiempo real 2. Paraobtener informacin sobre la interfaz Tuna, consulte la Gua del usuario de Tuna. Ambas guas estndisponibles en http://access.redhat.com/site/documentation/Red_Hat_Enterprise_MRG/.

    Captulo 3. Monitorizacin y anlisis de rendimiento de sistemas

    27

  • Captulo 4. CPUEl trmino CPU, el cual significa Unidad de procesamiento central, es un nombre equivocado para lamayora de los sistemas, puesto que central implica nica, mientras que la mayora de los sistemasmodernos tienen ms de una unidad de procesamiento o ncleo. Fsicamente, las CPU vienen en unpaquete unido a la placa madre en un socket. Cada socket en la placa madre tiene varias conexiones: aotros sockets de CPU, controladores de memoria, controladores de interrupcin, y otros dispositivosperifricos. Un socket para el sistema operativo es una agrupacin de varias CPU y recursosasociados. Este concepto es central a la mayora de nuestras discusiones sobre ajuste de CPU.

    Red Hat Enterprise Linux mantiene una riqueza de estadstica sobre eventos de CPU de sistemas;estas estadsticas sirven en la planeacin de una estrategia de ajuste para mejorar el rendimiento deCPU. Seccin 4.1.2, Ajuste de rendimiento de la CPU discute algunas de las estadsticas tiles, dndehallarlas, cmo analizarlas para ajuste de rendimiento.

    TopologaLos computadores antes tenan relativamente pocas CPU por sistema que permitan una arquitecturaconocida como Multiprocesador simtrico (SMP). Esto significaba que cada CPU en el sistema tenaacceso similar (o simtrico) a la memoria disponible. En aos recientes, el conteo por socket de CPU haaumentado al punto de que el hecho de intentar dar acceso simtrico a todos los RAM en el sistema seha convertido en algo muy costoso. La mayora de sistemas de conteo de CPU de alto costo en estosdas tienen una arquitectura conocida como Acceso de memoria no uniforme (NUMA) en lugar de SMP.

    Los procesadores AMD han tenido este tipo de arquitectura por algn tiempo con sus interconexionesHyper Transport (HT), mientras que Intel ha comenzado a implementar NUMA en sus diseos de QuickPath Interconnect (QPI). NUMA y SMP se ajustan de forma diferente, ya que usted debe justificar latopologa del sistema al asignar recursos para una aplicacin.

    HilosDentro del sistema operativo de Linux, la unidad de ejecucin se conoce como hilo. Los hilos tienen uncontexto de registro, una pila, y un segmento de cdigo ejecutable que ejecutan en una CPU. Es trabajodel sistema operativo (SO) programar esos hilos en las CPU disponibles.

    El Sistema operativo maximiza el uso de CPU al balancear los hilos a travs de ncleos disponibles.Puesto que el SO se interesa principalmente en mantener ocupadas las CPU, no siempre tomardecisiones ptimas con respecto al rendimiento de aplicaciones. Si traslada un hilo de aplicacin a unaCPU en otro socket empeorar el rendimiento ms que si espera a que la CPU actual est disponible,puesto que las operaciones de memoria pueden desacelerarse a travs de sockets. Para obteneraplicaciones de alto rendimiento, es mejor que el diseador determine dnde se deben colocar los hilos.La Seccin 4.2, Programacin de CPU discute la mejor manera de asignar las CPU y memoria paraejecutar hilos de aplicaciones.

    InterrupcionesUno de los eventos menos obvios (pero, importante) que puede impactar el rendimiento de aplicacionesson las interrupciones (tambin conocidas como las IRQ en Linux). Estos eventos son manejados por elsistema operativo y utilizados por perifricos para sealar la llegada de datos o la culminacin de unaoperacin, tal como una escritura de red o un evento de temporizador.

    La forma en que el SO o la CPU que ejecuta el cdigo de aplicaciones maneja una interrupcin, noafecta la funcionalidad de la aplicacin. Sin embargo, puede impactar el rendimiento de la aplicacin.Este captulo discute algunos consejos sobre prevencin de interrupciones de rendimiento de

    Red Hat Enterprise Linux 6 Gua de ajuste de rendimiento

    28

  • aplicaciones que estn impactando de una forma adversa.

    4.1. Topologa de CPU4.1.1. Topologa de CPU y NumaLos primeros procesadores de computadores eran uniprocesadores, es decir que el sistema tena unasola CPU. La ilusin de procesos en ejecucin en paralelo solamente era realizada por el sistemaoperativo al pasar rpidamente la nica CPU de un proceso de ejecucin a otro. En la bsqueda poraumentar el rendimiento del sistema, los diseadores notaron que el aumento de la tasa de reloj paraejecutar instrucciones de una forma ms rpida solamente funcionaba hasta cierto punto (por lo generallimitaciones en la creacin de una onda de reloj estable con la tecnologa actual). Para obtener unmayor rendimiento de todo el sistema, los diseadores le aadieron otra CPU, lo cual permiti doscorrientes de ejecucin paralelas. Esta tendencia de aadir procesadores ha continuado con el tiempo.

    La mayora de los primeros sistemas de multiprocesadores fueron diseados para que cada CPUtuviera la misma ruta para cada ubicacin de memoria (por lo general un bus paralelo). Esto permita acada CPU acceder a cualquier sitio de memoria en la misma cantidad de tiempo que cualquier otra CPUen el sistema. Este tipo de arquitectura se conoce como Sistema de multiprocesador simtrico (SMP). ElSMP es apropiado para pocas CPU, pero si el nmero de CPU est por encima de cierto punto (de 8 a16), los trazados paralelos requeridos para permitir igual acceso a memoria, ocuparn demasiadoespacio en la placa, y dejarn menos espacio para los perifricos.

    Dos nuevos conceptos combinados para permitir un nmero superior de CPU en un sistema:

    1. Buses seriales2. Topologas de NUMA

    Un bus serial es una ruta de comunicacin de un solo cable con una muy alta tasa de reloj, el cualtransfiere datos como rfagas de paquetes. Los diseadores de hardware comenzaron a usar losbuses de seriales como interconexiones de alta velocidad entre varias CPU y entre varias CPU ycontroladores de memoria y otros perifricos. Es decir que en lugar de requerir entre 32 y 64 trazos enla placa desde cada CPU al subsistema de memoria, haba ahora un trazo, lo cual reduce de manerasubstancial la cantidad de espacio requerido en la placa.

    Al mismo tiempo, los diseadores de hardware empaquetaban ms transistores en el mismo espaciopara reducir tamaos de circuitos. En lugar de colocar CPU individuales directamente en la placaprincipal, comenzaban a empacarlas dentro del paquete del procesador como procesadoresmultincleos. Entonces, en lugar de intentar proporcionar igual acceso a memoria desde cada paquetede procesador, los diseadores recurrieron a una estrategia de Acceso de memoria no uniforme oNUMA, en la que cada combinacin de paquete y socket tiene una o ms reas de memoria dedicadaspara acceso de alta velocidad. Cada conector tambin est interconectado a otros sockets para accesoms lento a la otra memoria de los otros sockets.

    A manera de ejemplo de NUMA, supongamos que tenemos una placa madre de dos sockets cada unapoblada con un paquete quad-core. Es decir, que el nmero total de CPU en el sistema es ocho; cuatroen cada socket. Cada socket tambin tiene un banco de memoria conectado de cuatro GB de RAM, parauna memoria de sistema total de ocho GB. Para este ejemplo, las CPU 0-3 estn en el socket 0 y lasCPU 4-7 estn en socket 1. Cada socket en este ejemplo tambin corresponde a un nodo de NUMA.

    Podra tomarse tres ciclos de reloj para que CPU 0 acceda a memoria desde banco 0: un ciclo parapresentar la direccin al controlador de memoria, un ciclo para configurar acceso al sitio de memoria yun ciclo para leer o escribir al sitio. Sin embargo, podra tomarse seis ciclos de reloj para que CPU4acceda a memoria desde el mismo sitio; debido a que est en un socket independiente, deber ir a

    Captulo 4. CPU

    29

  • travs de dos controladores de memoria en socket 0. Si la memoria no se impugna en dicha ubicacin(es decir, si hay ms de una CPU intentando acceder de forma simultnea al mismo sitio), loscontroladores de memoria necesitarn arbitrar y poner en serie el acceso a la memoria, a fin de que elacceso de memoria se prolongue. Si adiciona consistencia de cache (garantizar que las cache de CPUlocal contengan los mismos datos para el mismo sitio de memoria), complica el proceso ms adelante.

    Los procesadores de alta gama ms recientes de Intel (Xeon) y AMD (Opteron) tienen topologas deNUMA. Los procesadores AMD usan una interconexin conocida como HyperTransport o HT, mientrasque Intel usa una llamada QuickPath Interconnect u QPI. Las interconexiones difieren en la forma comose conectan fsicamente a otras interconexiones, memoria, y dispositivos perifricos, pero en efecto sonun interruptor que permite acceso transparente a un dispositivo conectado. En este caso, transparentese refiere a que no se requiere API de programacin especial para usar la interconexin, no es unaopcin "sin costo" alguno.

    Puesto que las arquitecturas del sistema son tan diversas, no es prctico caracterizar de formaespecfica la multa de rendimiento impuesta por acceder a memoria no-local. Decimos que cada salto o'hop' a travs de una interconexin impone al menos alguna multa de rendimiento constante por salto,por lo tanto al referirnos a ub