Sintoma: Investigação de desempenho de IO lenta

Uma maneira de investigar o desempenho do CQ é verificando request.log. Se a maioria dos pedidos demorar muito tempo, qual é a causa?  

Uma das possíveis causas seria o desempenho do disco, bem como a aplicação geral.  

Alguns fatores bloqueiam o desempenho do disco, incluindo 'io-wait', que é a porcentagem de tempo que a CPU ou as CPUs aguardam pelo sistema de disco, porque o sistema tem uma solicitação de E/S de disco pendente. As informações de espera de io do log do sysstat tendem a causar mal-entendidos. No entanto, se você prestar atenção, não é difícil descobrir o desempenho do servidor.

Podemos obter io-wait por mpstat e iostat, no Linux. (Podemos obter as informações também no Windows, mas não é tão fácil de configurar para coletar as informações.) O io-wait é calculado apenas com o tempo de espera do dispositivo de armazenamento durante o período. Certifique-se de não ver o valor da espera io em "all" do mpstat. É um valor médio. Nós devemos somar os valores totais de io-wait de todas as CPUs.  

Por exemplo, durante o período de medição 1.0 segundos sob um sistema de disco somente acessado para CQ, se CPU0 espera por io-wait por 0.1sec, CPU1 por 0.2sec, CPU2 por 0.3 sec e CPU3 por 0.4sec, o sistema com todos os 4 CPUs aguarda ii-wait 1.0 seg, totalmente 100%. Isso significa que o sistema está bloqueado para executar qualquer processo que leia / grave dados de / para o armazenamento devido ao io-wait. Enquanto isso, o valor médio é mostrado em 25%. Parece que há recursos suficientes. Mas não use o valor porque o sistema inteiro não espera pelo io-wait 0.25sec. Se o processo CQ / AEM for bloqueado pelo baixo desempenho do disco, o valor médio máximo (mostrado na coluna '% iowait' na CPU 'all' do mpstat) é de cerca de 100% em uma CPU, 50% em duas CPUs, 25% em quatro CPUs e 12,5% em oito CPUs. O valor parece menor se o sistema tiver mais CPUs. Mas, na verdade, o total de io-wait é de 100%, porém muitos processadores tem o sistema.

---------------
# mpstat -P ALL 5
...
08:50:50 CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
08:50:55 all 3.26 0.00 4.86 24.04 0.98 3.05 0.00 63.81 2219.00
08:50:55 0 0.84 0.00 1.88 14.41 0.00 0.00 0.00 82.88 1011.27
08:50:55 1 0.21 0.00 1.45 17.63 3.53 0.00 0.00 77.18 759.08
08:50:55 2 9.55 0.00 14.84 56.91 0.41 11.99 0.00 6.30 445.93
08:50:55 3 2.08 0.00 1.04 6.25 0.00 0.00 0.00 90.62 2.71

...
Não confie em '24.04' na coluna'% iowait 'na linha CPU' all '! Resuma todos os valores de% iowait de cada CPU, 14.41 + 17.63 + 56.91 + 6.25.
(Se você usar '24.04 ', multiplique 24.04 por 4.)
---------------

Se o sistema usar vários dispositivos de armazenamento para outro aplicativo, o valor total de io-wait excederá mais de 100%. Nesse momento, verifique o iostat para verificar como a carga de cada fatia / armazenamento é consumida.

Considerações

Em geral, se exceder mais de 10%, considere que a falta de processo de E/S causaria resposta tardia. Quanto menos io-wait, melhor será o desempenho. Para reduzir o io-wait, a menos que alguns processos especificados causem muita espera io, verifique a configuração de armazenamento em disco existente e considere alterar o armazenamento em disco, como disco com alto desempenho, configuração RAID ou SSD.

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online