Como criar um script watchdog para pausar e continuar processos caso outros processos com uso intenso de CPU estejam em execução?

Como criar um script watchdog para pausar e continuar processos caso outros processos com uso intenso de CPU estejam em execução?

Eu tenho uma configuração de teste muito grande que dura vários dias em um servidor usado por muitas partes da minha universidade.

Gostaria de pausar o processo por pid (assim como os processos executados pelo processo (caso haja processos em execução no momento) e continuar sempre que os processos com uso pesado de CPU forem interrompidos. Eu consideraria um processo com uso pesado de CPU como relevante quando for usa pelo menos um núcleo a 100% por mais de 15 segundos.

(Não tenho muita certeza de como interpretar a saída "superior", mas muitas vezes aparecem processos com 2300% de uso da CPU, que interpreto como 23 núcleos rodando a 100% ou 22 em (100%-x%)*22=2300% etc.)

Para pausar um processo, existem basicamente dois comandos bash entre os quais devo escolher:

kill -TSTP [pid]

e

kill -STOP [pid]

para continuar o processo eu usaria:

kill -CONT [pid]

Desde o meuscript pythonexecutado na configuração de teste fazmedições de tempo de execução de processos executados por eleGostaria de perguntar se existe uma maneira demedir apenas o tempo enquanto o processo está em execução? (Eu também meço o tempo exato de cálculo por uma função integrada do processo executado pelo meu script python, mas devido a alguns resultados questionáveis ​​(o tempo absoluto é questionável, o tempo relativo parece estar correto) eu também teria um resultado menos preciso, mas pelo menos uma medição de tempo utilizável externamente (o script python))

Resumo

  1. Como eu poderia criar um script que encontre esses processos e reaja de acordo? (Sem root no servidor, mas tenho permissão para ver todos os processos executados e lidar com meus próprios processos)
  2. Como fazer medições de tempo precisas (+/- 10 segundos) nesses processos, sem incluir o tempo em que o processo foi pausado?

informação relacionada