Estou tendo alguns problemas de E / S em alguns sistemas Linux que administro. Eles se manifestam no fato de que os processos geralmente bloqueiam por vários segundos em chamadas simples como abrir (), desvincular () ou fechar () nos arquivos (o que é um problema porque alguns dos programas envolvidos precisam de latência de E / S bastante baixa para operar). devidamente). É verdade que os sistemas em questão experimentam uma carga moderada de E / S, mas mal posso pensar que seria suficiente para justificar tempos de latência tão enormes. Às vezes, as chamadas podem levar mais de 15 segundos para serem concluídas (embora, com mais freqüência, elas possam demorar 1 ou 2 ou 3 segundos).
Minha pergunta é: Como posso descobrir por que isso acontece? O que eu gostaria é de uma ferramenta que possa me dizer por que os processos em questão estão bloqueados no kernel e por que o que eles dormem está ocupado, o que está acontecendo com ele e essas coisas. Existe essa ferramenta ou existe outra maneira de tentar depurar o que acontece?
Como alternativa, é claro, se você tem alguma idéia do que realmente está acontecendo, como isso pode ser evitado?
Para o registro, o sistema de arquivos que eu uso é o XFS.