Práticas recomendadas de E/S direta do Linux para o Azure NetApp Files
Este artigo ajuda você a entender as práticas recomendadas de E/S direta para o Azure NetApp Files.
E/S Direta
O parâmetro mais comum usado na comparação de desempenho do armazenamento é a E/S direta. Ela é compatível com o FIO e o Vdbench. O DISKSPD oferece suporte para o constructo semelhante de E/S mapeada na memória. Com a E/S direta, o cache do sistema de arquivos é ignorado, as operações de cópia de acesso direto à memória são evitadas e os testes de armazenamento são feitos de maneira rápida e simples.
O uso do parâmetro de E/S direta facilita o teste de armazenamento. Não é lido nenhum do cache do sistema de arquivos no cliente. Assim, o teste está na verdade pressionando o protocolo de armazenamento e o próprio serviço, em vez da velocidade de acesso à memória. Além disso, sem as cópias de memória do DMA, as operações de leitura e gravação são eficientes da perspectiva do processamento.
Veja o comando do Linux dd
como uma carga de trabalho de exemplo. Sem o sinalizador odirect
opcional, toda a E/S gerada por dd
são recebidas do cache de buffer do Linux. As leituras com os blocos que já estão na memória não são recuperadas do armazenamento. As leituras que resultam em perda no cache de buffer acabam sendo lidas do armazenamento usando a leitura antecipada do NFS com resultados variados, dependendo de fatores como rsize
da montagem e ajustes de leitura antecipada do cliente. Quando as gravações são enviadas por meio do cache de buffer, elas usam um mecanismo de write-behind, que não tem ajuste e usa uma quantidade significativa de paralelismo para enviar os dados ao dispositivo de armazenamento. Você pode tentar executar dois fluxos independentes de E/S, um dd
para leituras e outro dd
para gravações. Mas, na verdade, o sistema operacional sem ajuste favorece as gravações em vez das leituras e usa mais paralelismo.
Além do banco de dados, poucos aplicativos usam a E/S direta. Geralmente, eles optam por aproveitar as vantagens de um cache de memória grande para leituras repetidas e um cache com write-behind para gravações assíncronas. Em resumo, o uso de E/S direta transformará o teste em um microparâmetro de comparação se o aplicativo que está sendo sintetizado usar o cache do sistema de arquivos.
Veja a seguir alguns bancos de dados que dão suporte à E/S direta:
- Oracle
- SAP HANA
- MySQL (mecanismo de armazenamento InnoDB)
- RocksDB
- PostgreSQL
- Teradata
Práticas recomendadas
O teste com directio
é uma excelente maneira de entender os limites do serviço de armazenamento e do cliente. Para entender melhor como o aplicativo em si se comportará (se ele não usar directio
), execute também alguns testes por meio do cache do sistema de arquivos.
Próximas etapas
- Práticas recomendadas de cache do sistema de arquivos do Linux para o Azure NetApp Files
- Melhores práticas de opções de montagem do NFS no Linux para o Azure NetApp Files
- Melhores práticas de simultaneidade do Linux para o Azure NetApp Files
- Práticas recomendadas de leitura antecipada do Linux NFS
- Práticas recomendadas de SKUs de máquina virtual do Azure
- Parâmetros de comparação de desempenho para o Linux