Limitando o tempo máximo de cpu para programas iniciados pelo usuário

1

Temos um cluster executando o CentOS com Sun Grid Engine para simulações de pesquisa. No entanto, alguns usuários que não estão muito familiarizados com o sistema acabam executando tarefas no nó principal, o que, obviamente, torna as coisas mais lentas para todos os outros.

No futuro, gostaria de colocar uma mensagem de login SSH alertando as pessoas de um tempo máximo de execução para programas executados por usuários diretamente no nó principal, mas também permitir que tarefas longas sejam executadas (por exemplo, uma operação big tar / gzip ) se eles forem legais.

TL; DR: como faço para limitar os trabalhos executados pelos usuários a 24 horas da CPU, se o valor for bom < = 0?

    
por sargant 20.08.2010 / 10:49

3 respostas

1

Você pode tentar escrever um script que verifique as tarefas em execução e registre sua utilização e decida o que fazer após uma certa quantidade. Você também pode tentar AND - Auto Nice Daemon e ulimits / PAM limits para limite o tempo de CPU de um usuário (depois que muito tempo de CPU é usado por um usuário, os processos / sessões são eliminados).

    
por 21.08.2010 / 15:23
0

usando cpulimit ; em debian está nos repositórios, mas não para centos. Aqui eles têm um tutorial para compilá-lo e usá-lo: link . Se você tem um cluster, basta compilá-lo em uma máquina de reposição, testá-lo e implantá-lo com sua ferramenta de gerenciamento de configuração, como o cfengine.

    
por 20.08.2010 / 11:04
0

Não é uma solução completa, mas posteriormente encontrei o comando de que preciso:

ps alr | sed 1d | awk '{print ($6 <= 0)? $2 " " $3 " " $12 : ""}' | grep -v "^$"

Que lista todos os trabalhos em execução com um bom valor < = 0 em três colunas, consistindo de um UID, PID e tempo total de execução, como:

543 3208 11436:31
511 16491 0:00

Espero que seja a questão relativamente simples de configurar um cron job para analisar esses dados, verificar os UIDs e eliminar os trabalhos conforme apropriado.

    
por 21.08.2010 / 12:32