%CPU, top y ps

Hace poco más de mes y medio escribí un post que se refería a un script para controlar los cuelgues de MySQL. En dos palabras: no funciona.

El motivo es el siguiente, en ese script se monitoriza el %CPU de un ps y se compara con el valor homónimo en top, craso error, puesto que ni de lejos son lo mismo:
  • %CPU top: Uso de CPU en porcentaje real.
  • CPU ps: Porcentaje de uso de CPU durante todo el tiempo de vida del proceso (una media entre CPU y tiempo de vida).
Mientras que el primero es instantáneo y ofrece porcentajes reales, el segundo no ofrece más que una media y, en procesos con tiempo de vida muy largo -como puede ser un mysqld- lo lógico es que ese porcentaje no sea muy elevado.

Lección aprendida, a ver si Monit o cpulimit nos pueden ayudar con este desaguisado.

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.