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

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 ...


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.