El directorio /proc o sistema de archivos proc (process filesystem) contiene una jerarquía de archivos (no cualquier tipo de archivos, sino archivos virtuales) que nos muestran el estado actual del kernel. Esta es la forma en que las aplicaciones y usuarios pueden tener una vista actualizada del estado del sistema.
El /proc se puede considerar un pseudo-filesystem, pues no es un sistema de archivos real y no consume almacenamiento, solo memoria.
El /proc de Linux es diferente al de otros Unix, pues a diferencia de Solaris o BSD, lo exiente para incluir otra información que no es propia de los procesos. Dentro del /proc de Linux encontraremos información acerca de cada proceso que se está ejecutando en el sistema así también como detalles del hardware del sistema.
A continuación veremos algunos archivosbastante útiles del /proc del cual podremos obtener algo de información.
Lo que leeremos ahora es una solución bastante artesanal para tracear consultas SQL. Cuando leia mis feeds y leí el título de Cómo “tracear” consultas SQL entré inmediatamente debido a que desconocía un método para realizar esta tarea. Lo que suele suceder es que aveces queremos resolver los problemas de una forma prolija y elegante y lo cierto es que la solución puede ser bastante más rudimentaria pero muy ingeniosa.
Muchas veces suele ser tarea común la de consultar en MySQL el slow query log o verificar en tiempo real con un show processlist cual es esa consulta que está volviendo lento al servidor. Conocida la consulta, ¿como se cual es la aplicación que utiliza dicha consulta?. A menos que conozcamos muy bien nuestro sistema, debemos empezar a buscar en nuestros archivos y hacer algunos que otros grep recursivos hasta encontrar con la aplicación culpable de esa consulta lenta.
El monitoreo de procesos en Linux es tarea común para administradores y tarea conocida (al menos) para aficionados.
Para quienes hayan tenido que alguna vez administrar procesos (o simplemente tener un snapshot de los procesos ejecutándose) de seguro han empezado con el conocido ps (process status). Quienes hayan dado un paso más, sin dudas top les ha dado una ayuda barbara al poder realizar un monitoreo continuo. De los y para los amantes de top nació htop, un visor de procesos interactivo de apariencia similar a top, pero con muchas facilidades adicionales.
Cuando publiqué Matar procesos desde Java, se vió como ejecutar aplicaciones externas desde Java. En esta ocasión, repetiré el mismo ejemplo (ejecutar un tskill) pero desde una aplicación Window Forms de C#.
En Windows, el TaskManager (Administrador de Tareas) es poco flexible y poco práctico al momento de controlar la ejecución de los procesos. El comando tasklist también puede resultar insuficiente o un poco rústico.
Process Explorer es una de las mejores alternativas para hacer un control exhaustivo de los procesos que corren en el sistema.