Temos um trabalho regular que faz du
resumos de vários subdiretórios, escolhendo os piores criminosos e usamos a saída para descobrir se há coisas que estão subindo rapidamente para detectar possíveis problemas. Usamos diff
contra snapshots para compará-los.
Há um diretório de nível superior, com um número (algumas centenas) de subdiretórios, cada um dos quais pode conter dezenas de milhares de arquivos cada (ou mais).
Um " du -s
" neste contexto pode ser muito agressivo de IO, fazendo com que nosso servidor economize seu cache e, em seguida, picos maciços de IO, que são um efeito colateral muito indesejável.
Que estratégia pode ser usada para obter os mesmos dados, sem os efeitos colaterais indesejados?
disk-usage
io
limit
Danny Staple
fonte
fonte
Respostas:
Dê uma olhada
ionice
. Deman ionice
:Para executar
du
com a classe de E / S "inativa", que é a menor prioridade disponível, você pode fazer algo assim:Isso deve parar
du
de interferir na E / S de outro processo. Você também pode querer renomear o programa para diminuir sua prioridade de CPU, assim:Você também pode fazer as duas coisas no momento da inicialização:
fonte
renice
vez denice
. Para começardu
com os dois ionice e agradável, você pode encadear os dois programas:nice -n19 ionice -c3 du
.nice
em si também afeta a prioridade do planejador de E / S, não apenas a CPU.nice
afeta apenas a qualidade da CPU (que pode afetar indiretamente a E / S, mas não deve afetar a prioridade do agendador de E / S). Onde você vê esse comportamento? Está documentado em algum lugar?nice
, e ele só fala sobre quantum de tempo base da CPU. Você tem alguma ideia de onde estava o livro? Eu estaria interessado em ler uma fonte autorizada que os Estados-la, não é mencionado emman nice
,man 2 nice
,man 2 setpriority
,info nice
ouinfo 'nice invocation'
tanto quanto eu posso dizer, o que é estranho, porque alguns deles ir para um pouco de detalhes sobre como asnice
obras de chamadas e o que faz.Se você possui vários arquivos em um único diretório, isso pode ser responsável por picos de E / S, pois muitos sistemas de arquivos não lidam bem com grandes árvores de arquivos em um único diretório. Dividi-lo em mais subdiretórios pode ajudar lá. Se você tiver mais de 10k arquivos em um único diretório e estiver causando problemas, provavelmente deverá dividi-lo.
Quanto ao rastreamento do uso do disco, primeiro você pode dar uma olhada
df
, se o valor de uso não subir rapidamente, os subdiretórios também não poderão e você poderá pulardu
completamente.Outra alternativa pode ser um sistema de cotas de disco que mantém controle contínuo do uso, se o seu sistema de arquivos suportar.
fonte
df
não funcionaria bem - o problema é que temos scripts de limpeza, para que possamos ver nenhuma alteração, mas perdemos um aviso prévio para um trabalho automático que está ocupando espaço em disco de forma agressiva. Usamos o zabbix para monitorar o uso geral do disco, mas é essencial conhecer os diretórios individuais em que as coisas estão ficando um pouco malucas.Além disso,
ionice
você pode tentar tornar os acessos ao disco mais eficientes. Isso pode ser tentado executandoprimeiro (talvez até
ionice
também). Não funcionará se houver muitos arquivos. Quantas são muitas depende da quantidade de RAM livre.fonte