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. Bovendien zijn lees- en schrijfbewerkingen zonder de DMA-geheugenkopieën efficiënt vanuit het oogpunt 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 kiezen ze ervoor om gebruik te maken 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 meer inzicht wilt krijgen in de werking van de toepassing zelf (als de toepassing niet wordt gebruikt directio), moet u ook tests uitvoeren via de bestandssysteemcache.

Volgende stappen