CentOS 6 fazendo muito mais IO que CentOS 5

10

Estou comparando um aplicativo em dois servidores idênticos, um é o Centos 5.8 e o outro é o Centos 6.2. Meu aplicativo está sendo executado muito mais devagar (50% ou menos) na máquina Centos 6.2.

Na tentativa de diagnosticar o problema, acompanho CPU, RAM e IO durante a execução do benchmark. Vejo que as leituras de disco são significativamente maiores na caixa do Centos 6.2, conforme medido com o iostat.

Ambos os sistemas estão executando o XFS, onde meu benchmark está sendo executado. Ambos são servidores HP com controladores RAID de cache de 512 MB e SAS de 8 x 300 GB executando RAID 10.

Aqui está a saída de xfs_info para cada um:

centos5

meta-data=/dev/cciss/c0d0p5      isize=256    agcount=32, agsize=8034208 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=257094144, imaxpct=25
         =                       sunit=32     swidth=128 blks, unwritten=1
naming   =version 2              bsize=4096 
log      =internal               bsize=4096   blocks=32768, version=1
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0

centos6

meta-data=/dev/sda5              isize=256    agcount=4, agsize=57873856 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=231495424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=113034, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
tmcallaghan
fonte
Qual é a tua pergunta exatamente?
Tim Brigham
Você pode mostrar suas opções de criação de sistema de arquivos e montagem XFS? Você pode descrever o layout do hardware e do disco com mais detalhes?
ewwhite
A questão é que todas as coisas são iguais, pelo menos as que eu vejo, o Centos 6.2 está comparando 50% do Centos 5.8 para o meu aplicativo. A outra diferença que atualmente posso medir é que as leituras são MUITO mais altas.
tmcallaghan

Respostas:

10

Obrigado por atualizar a postagem com mais informações.

Você está rodando em sistemas ProLiant, por isso há uma certa quantidade de trabalho necessário para otimizar o seu controlador e situação I / O . Além disso, suas montagens XFS estão usando as opções padrão. Lembre-se de que você está usando um driver diferente entre esses sistemas operacionais. O servidor EL5 possui cciss, enquanto o sistema EL6 está usando o hpsamódulo. Há uma diferença , no entanto, o problema que você está enfrentando provavelmente está relacionado às diferenças do sistema operacional. Então, aqui está o que eu verificaria:

  • Mude seus XFS montagens para incluir noatimee barreiras gravação desativar com nobarrier. Aqui está uma sequência de montagem de amostra que eu uso com frequência .
  • O comportamento do elevador de E / S é diferente entre as versões do Linux. Experimente o deadlineou noopI elevador / S no CentOS 6 servidor. Você pode alterar isso rapidamente echo deadline > /sys/block/cciss\!c0d0/queue/schedulerou anexando elevator=deadlinea entrada de inicialização do grub.
  • Verifique se o cache de leitura / gravação é ideal para sua carga de trabalho. Eu costumo usar 75% de gravação e 25% de leitura.
  • Atualize o firmware nos componentes do servidor. Cada revisão do firmware do controlador RAID Smart Array tende a trazer novas funcionalidades. Isso soa como um controlador HP Smart Array P410, portanto, verifique se você está na versão 5.14 .

Edit :
Estou vendo a saída xfs_info para seus sistemas CentOS 5 e CentOS 6. Você formatou as partições XFS com parâmetros diferentes!

O sistema EL5 possui 32 grupos de alocação XFS, enquanto o sistema EL6 possui apenas 4. Grupos de alocação permitem que o XFS paralelize operações simultâneas do sistema de arquivos.

Dada a quantidade de espaço disponível e as especificações de CPU do seu servidor, a configuração existente do EL6 é limitada pela baixa agcount. Veja as notas da Red Hat sobre isso. Em um hardware como este, onde o armazenamento não está no intervalo de vários Terabytes , normalmente especifico um grupo de alocação por 4 GB de espaço na partição . No mínimo, vá para 32 para corresponder ao seu servidor EL5 ... Tente reformatar a partição EL6 com esses parâmetros para verificar se há uma diferença de desempenho ...

ewwhite
fonte
Tentei todas as quatro opções acima, nenhuma fez nenhuma diferença mensurável no desempenho dos meus benchmarks.
Tmcallaghan
Veja minha edição acima. As duas partições XFS no EL5 e EL6 foram formatadas com parâmetros muito diferentes.
ewwhite
Obrigado pela assistência contínua, vou reformatar meu XFS e ver se isso ajuda.
tmcallaghan
Por favor, publique os resultados.
ewwhite
3
Descobrimos que páginas grandes e transparentes eram o problema. Ao desativá-lo, o desempenho do nosso servidor Centos6 é semelhante ao Centos5. O comando foi "$ echo never> / sys / kernel / mm / redhad_transparent_hugepage / enabled". Outras distribuições fazem isso via / sys / kernel / mm / transparent_hugepage / enabled "
tmcallaghan
0

Quando você executa o iotop, o que está fazendo o disco lê na caixa 6.2?

Além disso, quais são as suas opções de montagem no dispositivo que você está lendo? Você pode querer olhar para noatime e relacionime

ckliborn
fonte
Estou comparando um aplicativo MySQL e não usando IO direta.
tmcallaghan
mount é idêntico nas duas máquinas, "/ dev / cciss / c0d0p5 / data xfs padrão 0 0"
tmcallaghan 10/12/12