Como o uso do disco pelos usuários pode ser limitado sem cotas?

0

Atualmente, estou trabalhando em um projeto de alunos (aprendizado de máquina) onde temos acesso a recursos de empresas. Eles armazenam seus dados em servidores Windows, mas nós usamos máquinas Linux para acessar os dados. Parece não ser possível configurar cotas. A razão parece ser que os dados são armazenados em um servidor Windows e que meus consultores não têm acesso à máquina onde estão armazenados. O problema é que acontece de vez em quando que os alunos usam ENORMES quantidades de espaço em disco acidentalmente, o que leva a um desperdício enorme de espaço nos backups. Por exemplo, treinei um modelo por três dias e criei instantâneos do modelo regularmente. Isso resultou em 100 GB de uso de disco. Isso é um problema.

É possível prevenir algo assim?

Eu estava pensando em um trabalho CRON que é executado para cada usuário que está logado a cada 30 minutos ou mais. O trabalho CRON verifica o uso do disco na pasta inicial do usuário (por exemplo, du -s . ) e mata todos os trabalhos do usuário se ele usar muita memória. Meu consultor tinha preocupações de que isso custaria um tempo significativo para calcular (tempo de CPU).

Eu apenas tentei e a primeira execução de du -s . leva significativamente mais tempo que as execuções subseqüentes. Por que esse é o caso? Minha solução proposta funcionaria ou há soluções melhores no ambiente que descrevi? (Nós temos acesso root às máquinas que usamos, mas não à máquina onde estão nossas pastas domésticas)

    
por Martin Thoma 10.06.2015 / 20:08

1 resposta

2

O du -s deve funcionar no seu contexto. Algumas notas que você pode querer considerar:

  • se os usuários derem permissões de gravação a outros usuários, os números relatados por du poderia ser distorcido, pois levaria todos os arquivos em conta independentemente de quem os possui (o que não é grande coisa desde a penalidade cai sobre o usuário que deu permissão, desencorajando a prática)
  • o custo a considerar não é realmente o tempo de CPU, mas o disco de E / S que podem impactar visivelmente o desempenho geral do sistema; pode ser insignificante também, depende de muitos fatores
  • o tempo que pode demorar para passar por muitos diretórios grandes pode ser significativo, 30 minutos pode não ser suficiente

Suas execuções subsequentes de du podem levar um tempo significativamente menor que o primeiro (para poucos / pequenos diretórios) porque o cache do sistema de arquivos já possui alguns dos dados na memória. No entanto, não basear seu cálculo nos tempos curtos, como quando o processamento de grandes diretórios de cache ocorrerá, e você verá tempos mais alinhados com a primeira execução.

    
por 10.06.2015 / 22:00

Tags