Este é, na verdade, um servidor em casa, mas eu senti que era complicado o suficiente para não tê-lo no SuperUser e poderia facilmente se aplicar a uma situação profissional.
Eu tenho um servidor de arquivos rodando Debian (Lenny 5.0.4), e ele tem um XFS LVM no topo de um RAID 5 com o drive OS separado do RAID. Ele também está executando o apache, o samba e o postgresql. Nota: antes que os críticos do RAID5 me crucificassem, eu estou usando o RAID5 porque recebo mais retorno do espaço em disco e ainda tenho alguma tolerância a falhas.
Quando a caixa é iniciada (por meio de desligamento ou reinicialização), a leitura / gravação do compartilhamento samba elimina a conexão de rede gigabit. Com o tempo, isso lentamente degrada, eventualmente, se tornando < 10MB / s; no entanto, quando reinicializado, a velocidade retorna ao máximo da conexão.
Por que isso está acontecendo, e há uma maneira de 'limpar' o que está causando isso sem derrubar o servidor?
Obrigado antecipadamente!
EDIT: Para responder à pergunta do @LapTop006, a saída de cat / proc / mdstat é a mesma depois que ela é reinicializada e quando está lenta:
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[0] sda[5] sdb[4] sdf[3] sdg1[2] sde1[1]
4883799680 blocks level 5, 64k chunk, algorithm 2 [6/6] [UUUUUU]
unused devices: <none>
De acordo com o comando frag do xfs_db:
actual 58969, ideal 23904, fragmentation factor 59.46%
EDIT 2: estou usando o kernel padrão do Debian. cat / etc / fstab gera isso para minha unidade do sistema operacional e raid:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/sda1 / ext3 errors=remount-ro 0 1
/dev/mapper/oomox-lvm /raid xfs defaults 0 2
Para ser honesto, não sou exatamente o maior guru do Linux e não fiz o raid ou lvm via linha de comando (ou seja, mkfs_xfs); Eu usei a configuração da instalação baseada em UI do RAID quando você instalou o sistema operacional pela primeira vez, e usei apenas a linha de comando quando precisei adicionar unidades à matriz.
Quando começar a desacelerar novamente, postarei a saída do iostat.
EDIT 3:
Quando lenta ou rápida, a saída do iostat mostra bytes lidos e escritos igualmente entre todas as unidades. Eu também tentei definir
socket options = TCP_NODELAY
na configuração do samba de acordo com o conselho do @Avery Payne, mas ainda era lento. No entanto, pelo menos o problema foi reduzido, uma vez que apenas reiniciar o samba resolveu o problema. Isso é bem estranho, já que eu nunca tive esse problema até recentemente.
EDIÇÃO FINAL: Eu tentei a sugestão do @David Spillett de correr
time dd if=/dev/sda of=/dev/null
Para cada unidade, quando demora a ver se há alguma diferença para quando é rápida e não há. Então, o problema é claramente com o Samba.
Eu estou concedendo a resposta correta para @Avery Payne. Embora a resposta de @David Spillett tenha um ótimo esquema de técnicas de solução de problemas, tecnicamente @Avery Payne me apontou na direção mais correta de resolver esse problema. Vou postar se eu encontrar a solução final para isso.
Obrigado a todos!