OProfile, genera perfiles estadísticos de rendimiento en Ubuntu
En el siguiente artículo vamos a echar un vistazo a OProfile. Este es un perfilador de rendimiento para Gnu/Linux. Quizás te preguntes por qué necesitarías una herramienta como esta ya que hay muchas herramientas de análisis que dan muy buenos resultados y están disponibles de forma predeterminada en la mayoría de las distribuciones Gnu/Linux. Este es un proyecto de código abierto que incluye un generador de perfiles estadísticos para sistemas Gnu/Linux, capaz de crear perfiles de todo el código en funcionamiento.
Este paquete de utilidades que no solo realiza su análisis a un nivel profundo. También guarda datos y nos permite producir informes de rendimiento. Estos informes ofrecen una gran cantidad de información que puede ayudarnos a depurar incluso el problema de rendimiento más complejo.
OProfile es una poderosa herramienta que se conecta con el nivel más bajo disponible en Gnu/Linux para obtener contadores de rendimiento y métricas que nos brindarán una información valiosa sobre nuestros programas. Ahora tenemos la capacidad de saber con precisión qué está haciendo nuestro sistema y cómo mejorarlo (si tenemos los conocimientos necesarios). Al estudiar los informes generados por OProfile, podremos tomar decisiones basadas en datos para poner a punto nuestro sistema.
Esta aplicación aprovecha los contadores de rendimiento de hardware de la CPU para permitir el perfilado de una amplia variedad de estadísticas interesantes, que también se pueden utilizar para el perfil básico de tiempo dedicado. Todo el código está perfilado: controladores de interrupción de hardware y software, módulos kernel, kernel, bibliotecas compartidas y aplicaciones. Tendremos disponibles también varias herramientas de post-perfilado para convertir datos de perfil en información legible para humanos.
OProfile no es solo para desarrolladores. En un entorno de escritorio, OProfile puede ayudarnos a rastrear tareas en segundo plano con uso intensivo de la CPU o llamadas de E/S que ralentizan nuestro sistema y no son evidentes de inmediato. Dicho esto, los desarrolladores sin duda sacarán el máximo provecho de OProfile. Para una mayor información acerca del programa, quién lo necesite puede recurrir a la página web del proyecto.
Instalar OProfile en Ubuntu 17.10
Hay una nota muy importante a tener en cuenta antes de profundizar en OProfile. Es posible que no podamos instalarlo en un entorno virtualizado. Si estás ejecutando Gnu/Linux dentro de un entorno VirtualBox, VMWare o VM similar, es posible que OProfile no pueda acceder a los contadores de rendimiento necesarios para recopilar los datos.
Varias distribuciones de Gnu/Linux tienen OProfile en sus sistemas de administración de paquetes. Para instalar este programa en nuestro Ubuntu 17.10 solo tendremos que abrir una terminal (Ctrl+Alt+T) y escribir:
sudo apt install oprofile
Un ejemplo simple
El comando “ls” probablemente sea el que más utilices en el tiempo delante de la consola. Simplemente muestra una lista de archivos y carpetas en el directorio actual. Vamos a rastrear su salida escribiendo en la terminal (Ctrl+Alt+T):
sudo operf ls
Verás algo similar a la captura de pantalla anterior. Una vez que el generador de perfiles haya finalizado, la terminal nos mostrará el mensaje “Profiling done“. Estos datos se han guardado en una carpeta llamada oprofile_data situada en la “home” del usuario que se pueden utilizar para generar un informe.
Al ejecutar el comando opreport (sin sudo en este caso) se genera un informe similar al siguiente:
En este ejemplo, el informe predeterminado muestra el número de muestras cuando la CPU no estaba en estado HALT (en otras palabras, estaba haciendo algo de manera activa). Kallsyms proporciona la búsqueda de símbolos utilizada por el generador de perfiles, y ld.so y libc.so son parte del paquete glibc. Esta última es una biblioteca común vinculada a casi todos los ejecutables de Gnu/Linux. Proporciona la funcionalidad básica que los desarrolladores pueden utilizar para proporcionar un nivel genérico de compatibilidad entre varios sistemas.
Pasos a seguir al terminar
Una vez que hayamos terminado con el informe, es una buena idea eliminar la carpeta de datos o guardarla para análisis futuros. Como en este ejemplo ejecutamos el comando con sudo, debemos eliminar la carpeta con sudo.
sudo rm -Rf oprofile_data
Es importante tener en cuenta que si bien OProfile no debería interferir con el funcionamiento de tus programas, creará un poco de sobrecarga. Por lo tanto ralentizará la ejecución de estos. Debido a esto, no me parece una buena idea utilizar este programa en un entorno servidor en producción. A menos que nos enfrentemos a un problema crítico de rendimiento que deba resolverse en el momento. Incluso llegado este caso, solo lo utilizaría el tiempo suficiente para encontrar el problema.
Si alguien necesita más ejemplos sobre lo que se puede hacer con este programa, puede consultar los que desde la web oficial ponen a disposición de los usuarios.
Desinstalar OProfile
Vamos a poder eliminar este programa de nuestro sistema escribiendo en la terminal (Ctrl+Alt+T) lo siguiente:
sudo apt remove oprofile && sudo apt autoremove
El artículo OProfile, genera perfiles estadísticos de rendimiento en Ubuntu ha sido originalmente publicado en Ubunlog.