12.4. Herramientas de rendimiento


Red Hat Enterprise Linux 7.0 incluye actualizaciones de versiones más recientes de varias herramientas de rendimiento, tales como oprofile, papi y elfutils, las cuales brindan mejoras en rendimiento, portabilidad y funcionalidad.
Además, Red Hat Enterprise Linux 7.0 introduce:
  • Soporte para Performance Co-Pilot.
  • Soporte de SystemTap para instrumentación (DynInst-based) que ejecuta totalmente el espacio de usuario sin privilegios, como también el sondeo eficiente (basado en Byteman) de aplicaciones de Java.
  • Soporte de Valgrind para memoria transaccional de hardware y mejoras al manejar instrucciones en vectores.

12.4.1. Performance Co-Pilot

Red Hat Enterprise Linux 7.0 introduce soporte para Performance Co-Pilot (PCP), una serie de paquetes de herramientas, servicios, y bibliotecas para adquisición, archivo y análisis de medidas a nivel de rendimiento de sistemas. Su arquitectura distribuida de peso liviano, la hace particularmente apta para análisis centralizados de sistemas complejos.
La métrica de rendimiento puede ser añadida a las interfaces Python, Perl, C++ y C. Las herramientas de análisis pueden utilizar directamente las API de cliente (Python, C++, C), y las copiosas aplicaciones de web pueden explorar todos los datos de rendimiento mediante la interfaz JSON.
Para obtener mayor información, consulte las páginas extensivas de manual en los paquetes pcp and pcp-libs-devel packages. El paquete pcp-doc incluye los dos libros gratis del proyecto de la corriente de desarrollo principal:

12.4.2. SystemTap

Red Hat Enterprise Linux 7.0 incluye systemtap versión 2.4, la cual brinda nuevas capacidades. Estas incluyen ejecución de script de espacio de usuario puro, sondeo Java más copiosos y eficiente, sondeo de máquina virtual, mensajes de errores mejorados y una cantidad de correcciones de errores y nuevas funcionalidades. En particular, las siguientes:
  • El uso de la biblioteca de edición binaria dyninst, SystemTap ahora puede ejecutar algunos scripts a nivel de espacio-usuario; no utilizan kernel o privilegios de root. Este modo, se selecciona mediante stap --dyninst, permite únicamente estos tipos de sondeos u operaciones que afectan los propios procesos de usuario. Observe que este modo es incompatible con programas que lanzan excepciones de C++.
  • Una nueva forma de inyectar sondeo en aplicaciones de Java está soportada junto con la herramienta byteman. Los nuevos tipos de sondeo SystemTap, java("com.app").class("class_name").method("nombre(firma)").*, permiten sondeo de un método individual de eventos de entrada y salida en una aplicación, sin seguimiento a nivel del sistema.
  • Se ha añadido una nueva herramienta al controlador de SystemTap para permitir ejecución remota en instancia KVM administrada por libvirt ejecutándose en un servidor. Esto permite transferencia segura y automática de un script SystemTap compilado para un huésped de máquina virtual a través de un enlace seguro dedicado virtio-serial. Un nuevo demonio del lado del nuevo huésped carga los scripts y transfiere su salida de regreso al host. Esta forma es más rápida y segura que SSH y no requiere conexión de redes a nivel de IP entre el host y huésped. Para probar esta función, ejecute el siguiente comando:
    stap --remote=libvirt://MiMáquinaVirtual
    Copy to Clipboard Toggle word wrap
  • Además, se han realizado una cantidad de mejoras a mensajes de diagnóstico SystemTap:
    • Muchos mensajes de errores ahora contienen referencias cruzadas con las páginas de manual relacionadas. Estas páginas explican los errores y sugerencias de corrección.
    • Si se sospecha que una entrada de script contiene errores, se ofrece al usuario una lista de sugerencias. Esta facilidad de sugerencias se utiliza en una cantidad de contextos cuando los nombres específicos no corresponden a nombres aceptables, tales como nombres de funciones sondeadas, marcadores, variables, archivos, alias y otros.
    • Se ha mejorado la eliminación de duplicado de diagnóstico
    • Se ha añadido coloración ANSI para facilitar la comprensión de mensajes.

12.4.3. Valgrind

Red Hat Enterprise Linux 7.0 incluye Valgrind, un marco de trabajo de instrumentación que se distribuye con una serie de herramientas para aplicaciones de perfiles. Esta versión se base en el lanzamiento de Valgrind 3.9.0 e incluye numerosas mejoras relativas a Red Hat Enterprise Linux 6 y a las contrapartes de las Herramientas de desarrollador 2.0 de Red Hat, las cuales se basan en Valgrind 3.8.1.
Las nuevas funcionalidades importantes de Valgrind que se incluyen en Red Hat Enterprise Linux 7.0 son las siguientes:
  • Soporte para instrucciones de IBM System z Decimal Floating Point en hosts que tienen la herramienta DFP instalada.
  • Soporte para instrucciones de IBM POWER8 (Power ISA 2.07).
  • Soporte para instrucciones Intel AVX2. Observe que esto está disponible únicamente en arquitecturas de 64 bits.
  • Soporte inicial para Extensiones de sincronización transaccional Intel, tanto para Memoria transaccional restringida (RTM), como para Elisión de bloqueo de hardware (HLE).
  • Soporte inicial para Memoria transaccional de hardware en IBM PowerPC.
  • El tamaño predeterminado de la memoria cache de traducción ha sido aumentado a 16 sectores, lo cual refleja el hecho de que las grandes aplicaciones requieren instrumentación y almacenamiento de grandes cantidades de código. Por razones similares, el número de segmentos mapeados de memoria que han sido rastreados, se ha incrementado a un factor de 6. El número máximo de sectores en la memoria de traducción puede ser controlado por el nuevo indicador --num-transtab-sectors.
  • Valgrind ya no crea temporalmente un mapa de todo el objeto para poderlo leer. En su lugar, la lectura se hace mediante un pequeño búfer adaptado a la medida. Esto evita que la memoria virtual se rechace cuando Valgrind lea la información de depuración de grandes objetos compartidos.
  • La lista de supresiones utilizadas (desplegadas cuando se especifica la opción -v) ahora muestra por cada supresión utilizada, el nombre de archivo en donde se define la supresión.
  • El nuevo indicador, --sigill-diagnostics, ahora puede ser utilizado para controlar si un mensaje de diagnóstico se imprime cuando el compilador 'just-in-time' (JIT) encuentra una instrucción que no puede traducir. La conducta real — entrega de la señal SIGILL a la aplicación— no cambia.
  • La herramienta Memcheck ha ido mejorada con las siguientes funcionalidades:
    • Mejoras al manejar código vectorizado, lo cual conlleva a menos reportes de errores falsos. Use el indicador --partial-loads-ok=yes para obtener los beneficios de estos cambios.
    • Para un mejor control del revisor de pérdidas. Ahora es posible especificar la clase de pérdida (definitiva/indirecta/posible/alcanzable) que debería desplegarse, lo cual se debería considerar como error, y debería suprimirse de una determinada pérdida de supresión. Esto se realiza mediante las opciones --show-leak-kinds=kind1,kind2,.., --errors-for-leak-kinds=kind1,kind2,.. y una línea opcional de match-leak-kinds: en la entrada de supresiones, respectivamente.
      Observe que las supresiones generadas por pérdidas contienen esta nueva línea y por lo tanto, son más específicas que en lanzamientos anteriores. Para obtener la misma conducta que en lanzamientos anteriores, retire la línea match-leak-kinds: de las supresiones generadas antes de utilizarlas.
    • Reducidos reportes de pérdidas del revisor de pérdidas por el uso de una mejor heurística. La heurística disponible proporciona detección de punteros interiores válidos para std::stdstring, para nuevas matrices [] asignadas con elementos que tienen destructores y para punteros que apuntan a la parte interna de un objeto a C++ mediante múltiple herencia. Ellos pueden ser seleccionados de forma individual con la opción --leak-check-heuristics=heur1,heur2,....
    • Mejor control de adquisición de stacktrace para asignación de montón de bloques. Al usar la opción --keep-stacktraces, es posible controlar de forma independiente si un rastreo de pila es adquirido por cada asignación o retiro de asignación. Esto puede servir para crear mejores errores "use after free" o decrecer el consumo de recursos de Valgrind al registrar menos información.
    • Mejor reporte del uso de supresión de pérdidas. La lista de supresiones utilizadas (que aparece cuando se especifica la opción -v ) ahora muestra, por cada supresión de pérdida, el número de bloques y bytes suprimidos durante la última búsqueda de pérdidas.
  • La integración de servidor GDB de Valgrind ha sido mejorada con los siguientes comandos de monitor:
    • Un nuevo comando de monitor, v.info open_fds, el cual entrega una lista de descriptores de archivos abiertos y detalles adicionales.
    • Un nuevo comando de monitor, v.info execontext, el cual presenta información sobre los rastros de pila registrados por Valgrind.
    • Un nuevo comando de monitor, v.do expensive_sanity_check_general, para ejecutar algunos chequeos de consistencia interna.
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2026 Red Hat
Volver arriba