PowerScale OneFS: Solucionando problemas de desempenho
Summary: Solucione problemas de baixo desempenho do PowerScale OneFS com nosso guia abrangente sobre configuração de rede, cargas de processamento e monitoramento com o InsightIQ para melhorar a eficiência do cluster. ...
Symptoms
Os computadores client estão lentos. Trabalhos específicos, especialmente aqueles executados no cluster, falham ou demoram mais do que o esperado.
Cause
Os problemas de desempenho geralmente ocorrem devido a tráfego de rede, problemas de configuração de rede, carga de processamento do client ou cluster ou uma combinação deles. Este artigo descreve várias maneiras eficazes de solucionar problemas de desempenho.
Resolution
Solução de problemas com o InsightIQ
Sumário:
- Usando o Isilon InsightIQ
- Solução de problemas sem o InsightIQ
- Throughput de rede
- Distribuição de conexões de client
- SmartConnect
- Throughput de cluster
- Processamento de cluster
- Operações em fila
- CPU
Usando o Isilon InsightIQ
Usar o Isilon InsightIQ é a melhor maneira de monitorar e solucionar problemas de desempenho.
O equipamento virtual Isilon InsightIQ permite monitorar e analisar a atividade do cluster do Isilon por meio de visualizações de gráficos flexíveis e personalizáveis no aplicativo baseado na Web do InsightIQ. Esses gráficos apresentam informações detalhadas sobre hardware, software e operações de protocolo e file system do cluster. O InsightIQ transforma dados em informações visuais que enfatizam quaisquer outliers de desempenho, permitindo o diagnóstico rápido de gargalos ou a otimização de fluxos de trabalho.
Para obter detalhes sobre como usar o InsightIQ, consulte o Guia do usuário do InsightIQ.
Solução de problemas sem o InsightIQ
Se você não estiver usando o InsightIQ, poderá executar vários comandos para investigar problemas de desempenho. Primeiro, solucione problemas de desempenho examinando o throughput da rede e do cluster, em seguida, examinando o processamento do cluster e, por fim, examinando as taxas de CPU de nós individuais.
Throughput de rede
Use uma ferramenta de teste de rede, como Iperf para determinar os recursos de throughput do cluster e dos computadores cliente em sua rede.
Usando Iperf, execute os seguintes comandos no cluster e no client. Esses comandos definem um tamanho de janela grande o suficiente para revelar se o link de rede é uma possível causa de problemas de latência.
- Cluster:
iperf -s -w 262144
- Client:
iperf -c <cluster IP> -w 262144
Distribuição de conexões de client
Verifique quantos clients NFS e SMB estão conectados ao cluster para garantir que eles não estejam favorecendo um nó.
- Abra uma conexão SSH em qualquer nó do cluster e faça log-in usando a conta "root".
- Execute o seguinte comando para verificar os clients NFS:
isi statistics query - nodes=all --stats=node.clientstats.connected.nfs,node.clientstats.active.nfs
O resultado exibe o número de clients conectados por nó e quantos desses clients estão ativos em cada nó. - Execute o seguinte comando para verificar os clients SMB:
isi statistics query - nodes=all --stats=node.clientstats.connected.smb, node.clientstats.active.smb1,node.clientstats.active.smb2
O resultado exibe o número de clients conectados por nó e quantos desses clients estão ativos em cada nó.
SmartConnect
Verifique se o nó em que o SmartConnect está em execução não está sobrecarregado com o tráfego de rede.
- Abra uma conexão SSH em qualquer nó do cluster e faça log-in usando a conta "root".
- Execute o seguinte comando:
isi_for_array -sq 'ifconfig|grep em -A3'
O resultado exibe uma lista de todos os endereços IP vinculados à interface externa. - Verifique se há nós que tenham um endereço IP a mais do que o restante.
- Verifique o status dos nós que você observou na etapa 3 executando o seguinte comando:
isi status
Verifique a coluna de throughput da saída para determinar a carga dos nós observada na etapa 3.
Throughput de cluster
Avalie o throughput do cluster realizando testes de gravação e leitura que medem o tempo necessário para ler e gravar em um arquivo. Realize pelo menos um teste de gravação e um teste de leitura, da seguinte forma.
Teste de gravação
- Abra uma conexão SSH em qualquer nó do cluster e faça log-in usando a conta "root".
- Mude para o diretório /ifs :
cd /ifs
- Na interface de linha de comando (CLI) do cluster ou de um computador client UNIX ou Linux, use o comando
ddpara gravar um novo arquivo no cluster. Execute o seguinte comando:dd if=/dev/zero of=1GBfile bs=1024k count=1024
Esse comando cria um arquivo de amostra de 1 GB e informa o tempo que levou para gravá-lo no disco. - A partir da saída desse comando, extrapole quantos MB por segundo podem ser gravados no disco em fluxos de trabalho de fluxo único.
- Se você tiver um cliente MAC e quiser realizar análises adicionais,
- Inicie o Monitor de atividade.
- Execute o seguinte comando, em que
pathToFileé o caminho do arquivo de destino:cat /dev/zero > /pathToFile
Esse comando ajuda a medir o throughput das operações de gravação no cluster do Isilon. (Embora seja possível executar o comandoddde um client MAC, os resultados podem ser inconsistentes.) - Monitore os resultados do comando na guia Rede do Monitor de atividade.
Teste de
leituraAo medir o throughput das operações de leitura, certifique-se de não realizar testes de leitura no arquivo que você criou durante o teste de gravação. Como esse arquivo foi armazenado em cache, os resultados de seus testes de leitura seriam imprecisos. Em vez disso, teste uma operação de leitura de um arquivo que não foi armazenado em cache. Localize um arquivo no cluster maior que 1 GB e faça referência a esse arquivo no teste de leitura.
- Abra uma conexão SSH em qualquer nó do cluster e faça log-in usando a conta "root".
- Na CLI do cluster ou em um computador client UNIX ou Linux, use o comando
ddpara ler um arquivo no cluster. Execute o seguinte comando, em quepathToFileé o caminho do arquivo de destino:dd if=/pathToLargeFile of=/dev/null bs=1024k
Esse comando lê o arquivo de destino e relata o tempo que levou para lê-lo. - Se você tiver um cliente MAC e quiser realizar análises adicionais,
- Inicie o Monitor de atividade.
- Execute o seguinte comando, em que
pathToFileé o caminho do arquivo de destino:time cp /pathToLargeFile > /dev/null
Esse comando ajuda a medir o throughput das operações de leitura no cluster do Isilon. (Embora seja possível executar o comandoddde um client MAC, os resultados podem ser inconsistentes.) - Monitore os resultados do comando na guia Rede do Monitor de atividade.
Processamento de cluster
Trabalhos
de redistribuiçãoAntes de examinar as operações de entrada/saída (E/S) (IOPS) do cluster:
- Determine quais trabalhos estão em execução no cluster. Se trabalhos de redistribuição, como Auto-Balance, Collect ou Multi-Scan, estiverem em execução, considere por que esses trabalhos estão em execução e se eles devem continuar a ser executados.
- Considere o tipo de dados que está sendo consumido. Se os computadores cliente estiverem trabalhando com grandes arquivos de vídeo ou máquinas virtuais (VMs), o trabalho redistribuído exigirá uma quantidade maior de IOPS de disco do que o normal.
- Considere pausar temporariamente um trabalho de redistribuição. Isso pode melhorar significativamente o desempenho e pode ser uma solução viável de curto prazo para um problema de desempenho.
E/S
do discoExaminar a E/S do disco pode ajudar a determinar se determinados discos estão sendo superutilizados.
Por cluster
- Abra uma conexão SSH em qualquer nó do cluster e faça log-in usando a conta "root".
- Execute o seguinte comando para verificar a E/S do disco:
isi statistics pstat
- Na saída desse comando, divida a IOPS do disco pelo número total de discos no cluster. Por exemplo, para um cluster de 8 nós que usa nós IQ 12000x do Isilon, que hospeda 12 unidades por nó, você divide a IOPS do disco em 96.
Para nós da Série X e da Série NL, você deve esperar ver IOPS de disco de 70 ou menos para 100% de fluxos de trabalho aleatórios ou IOPS de disco de 140 ou menos para 100% de fluxos de trabalho sequenciais. Como os nós da Série NL têm menos RAM e velocidades de CPU menores do que os nós da Série X, esses últimos podem lidar com IOPS de disco mais alto.
Por nó e por disco
- Abra uma conexão SSH em qualquer nó do cluster e faça log-in usando a conta "root".
- Execute o seguinte comando para determinar a IOPS do disco por nó, o que pode ajudar a detectar discos que são usados em excesso:
isi statistics query --nodes=all --stats=node.disk.xfers.rate.sum --top
- Execute o seguinte comando para determinar como consultar estatísticas por disco:
isi statistics describe --stats=all | grep disk
Operações em fila
Outra maneira de determinar se os discos estão sendo utilizados em excesso é determinar quantas operações são enfileiradas para cada disco no cluster. Para um fluxo de trabalho baseado em SMB de fluxo único, uma fila de quatro pode indicar um problema, enquanto para operações de namespace NFS de alta simultaneidade, a fila é maior.
- Abra uma conexão SSH em qualquer nó do cluster e faça log-in usando a conta "root".
- Execute o seguinte comando para determinar quantas operações são enfileiradas para cada disco no cluster:
isi_for_array -s sysctl hw.iosched | grep total_inqueue
- Determine a latência causada pelas operações de fila:
sysctl -aN hw.iosched|grep bios_inqueue|xargs sysctl -D
CPU
Problemas de CPU são rastreados com frequência para as operações que os clients executam no cluster. Usando o comando isi statistics , você pode determinar as operações executadas no cluster, catalogadas por protocolo de rede ou computador cliente.
- Abra uma conexão SSH em qualquer nó do cluster e faça log-in usando a conta "root".
- Execute o seguinte comando para determinar quais operações estão sendo executadas em toda a rede e avaliar qual dessas operações está levando mais tempo:
isi statistics protocol --orderby=TimeAvg --top
Esse resultado de comando fornece estatísticas detalhadas para todos os protocolos de rede, organizadas por quanto tempo o cluster leva para responder aos clients. Embora os resultados desse comando possam não identificar qual operação é a mais lenta, ele pode apontar na direção certa. - Execute o seguinte comando para obter mais informações sobre o processamento da CPU, como quais CPUs dos nós são as mais usadas:
isi statistics system --top
- Execute o seguinte comando para obter os quatro processos em cada nó que estão consumindo a maioria dos recursos da CPU:
isi_for_array -sq 'top -d1|grep PID -A4'
Additional Information
relacionadosAqui estão os recursos recomendados relacionados a este tópico que podem ser de interesse: