Aanbevolen procedures voor directe I/O voor Linux voor Azure NetApp Files
Dit artikel helpt u inzicht te hebben in directe I/O-best practices voor Azure NetApp Files.
Directe I/O
De meest voorkomende parameter die wordt gebruikt in benchmarking voor opslagprestaties is directe I/O. Het wordt ondersteund door FIO en Vdbench. DISKSPD biedt ondersteuning voor de vergelijkbare constructie van geheugen-toegewezen I/O. Met directe I/O wordt de bestandssysteemcache overgeslagen, bewerkingen voor het kopiëren van directe geheugentoegang worden vermeden en worden opslagtests snel en eenvoudig gemaakt.
Met de directe I/O-parameter kunt u eenvoudig opslagtests uitvoeren. Er worden geen gegevens gelezen uit de bestandssysteemcache op de client. Daarom is de test echt stress voor het opslagprotocol en de service zelf, in plaats van de snelheid van geheugentoegang. Zonder de DMA-geheugenkopieën zijn lees- en schrijfbewerkingen efficiënt vanuit het perspectief van verwerking.
Gebruik de Linux-opdracht dd
als voorbeeldworkload. Zonder de optionele odirect
vlag wordt alle door I/O gegenereerd door dd
de Linux-buffercache geleverd. Leesbewerkingen met de blokken die al in het geheugen aanwezig zijn, worden niet opgehaald uit de opslag. Leesbewerkingen die tot gevolg hebben dat een buffercache niet meer wordt gelezen uit de opslag met behulp van NFS read-ahead met verschillende resultaten, afhankelijk van factoren als koppel rsize
- en clientleesbewerkingen. Wanneer schrijfbewerkingen via de buffercache worden verzonden, gebruiken ze een mechanisme voor write-behind, dat niet is afgestemd en een aanzienlijke hoeveelheid parallelle uitvoering gebruikt om de gegevens naar het opslagapparaat te verzenden. U kunt proberen twee onafhankelijke I/O-stromen uit te voeren, één dd
voor leesbewerkingen en één dd
voor schrijfbewerkingen. Maar in feite, het besturingssysteem, niet afgestemd, bevordert schrijfbewerkingen over leesbewerkingen en gebruikt meer parallelle uitvoering ervan.
Naast de database maken weinig toepassingen gebruik van directe I/O. In plaats daarvan maken ze gebruik van de voordelen van een grote geheugencache voor herhaalde leesbewerkingen en een schrijf achter cache voor asynchrone schrijfbewerkingen. Kortom, met behulp van directe I/O wordt de test omgezet in een microbenchmark als de toepassing die wordt gesynthetiseerd gebruikmaakt van de bestandssysteemcache.
Hier volgen enkele databases die directe I/O ondersteunen:
- Oracle
- SAP HANA
- MySQL (InnoDB-opslagengine)
- RocksDB
- PostgreSQL
- Teradata
Aanbevolen procedures
Testen met directio
is een uitstekende manier om inzicht te hebben in de limieten van de opslagservice en client. Als u beter wilt weten hoe de toepassing zich gedraagt (als de toepassing niet gebruikt directio
), moet u ook tests uitvoeren via de bestandssysteemcache.
Volgende stappen
- Aanbevolen procedures voor cache van Linux-bestandssysteem voor Azure NetApp Files
- Aanbevolen procedures voor koppelen in Linux NFS voor Azure NetApp Files
- Best practices voor gelijktijdigheid van Linux voor Azure NetApp Files
- Aanbevolen procedures voor lezen in Linux NFS
- Best practices voor virtuele Azure-machine-SKU's
- Prestatiebenchmarks voor Linux