Mikä kirjoitus on oikein? Katso I / O-välimuistimenetelmät

Kirjoittaja: Laura McKinney
Luomispäivä: 1 Huhtikuu 2021
Päivityspäivä: 25 Kesäkuu 2024
Anonim
Mikä kirjoitus on oikein? Katso I / O-välimuistimenetelmät - Tekniikka
Mikä kirjoitus on oikein? Katso I / O-välimuistimenetelmät - Tekniikka

Sisältö


Lähde: Kgtoh / Dreamstime.com

Ottaa mukaan:

Sovellusten nopeus on suuresti riippuvainen välimuistin I / O-nopeudesta. Tässä verrataan erilaisia ​​välimuistin I / O-menetelmiä.

Sovellusten suorituskyky juurtuu nopeuteen - nopeuteen suorittamalla luku- ja kirjoituspyynnöt, joita sovelluksesi vaativat infrastruktuuristasi. Tallennus on vastuussa I / O (input / output) -pyyntöjen palauttamisen nopeudesta, ja menetelmä, joka valitaan kirjoittamaan ja toimittamaan lukemat, vaikuttaa voimakkaasti sovelluksen suorituskykyyn. Yleinen tapa nykypäivän teollisuudessa on käyttää SSD-levyjä välimuistiin tallentamiseen perinteisissä kehruulaitteissa, hybridi- tai kaikki flash-taulukkoissa. Suurin osa välimuistiratkaisuista on nopeuttanut sovellusten lukemista, mutta todellinen kysymys pysyy: ”Mikä kirjoitus on oikea?”

Katsotaanpa miksi kirjoituksen optimointi vaikuttaa sovelluksen suorituskykyyn niin rajusti. Kirjoita I / O tarkoittaa, että kyse on uudesta tiedosta, jota ei ole kirjoitettu alla olevaan tallennustilaan. Esimerkiksi perinteisessä SAN-tallennuksessa kirjoitukset kirjoitetaan suoraan alla olevaan tallennustilaan ja palautetaan sitten sovellukseen. Sovelluksissa, jotka kirjoittavat jatkuvasti uutta tietoa, lähinnä suurissa tietokantasovelluksissa (SQL jne.), Perinteiset kehruukiekot eivät voi pysyä ajan tasalla. Välimuistista SSD-levyistä tuli ratkaisu, joka salli kirjoittaa paikallisesti kirjoitetut ja välimuistiin tallennetut sovellusvaatimukset taajuuden perusteella. kirjoitusvälimuistin suhteeseen taustalla olevaan muistiin on kuitenkin olemassa useita menetelmiä, jotka aiheuttavat valtavia eroja suorituskyvyssä.


Nämä ovat I / O-kirjoituksen 3 muotoa:

  1. Kirjoittaminen (välimuistin ympärillä)
  2. Läpivienti (välimuistin kautta)
  3. Kirjoita takaisin (välimuistista)

Kaikilla kolmella lomakkeella on erilaisia ​​etuja, jotka perustuvat pääasiassa kirjoitettavan tiedon tyyppiin: peräkkäinen vs. satunnainen. Järjestys I / O on optimoitu parhaiten taustalla olevan levyn (esimerkiksi tiedostot tai videot) avulla, kun taas välimuisti optimoi satunnaiset I / O: t. Useimmissa välimuistilaitteissa ei ole dynaamista älykkyyttä muuttaa kirjoitustekniikan muotoa tietotyypin perusteella. Ymmärretään ero I / O-kirjoituksen kolmen muodon välillä.

Write-Around

Kirjoittaminen, joka tunnetaan myös nimellä vain luku -välimuisti, on hyödyllistä vain vapauttaa tilaa välimuistin lukemista varten. Saapuva I / O ei koskaan osu välimuistiin. I / O kirjoitetaan suoraan pysyvään tallennukseen ilman, että tietoja tallennetaan välimuistiin.


Mitä hyötyä välimuistista voi olla, jos sitä ei käytetä? Se auttaa vähentämään välimuistin tulvia kirjoitus I / O: lla, jota ei myöhemmin lueta uudelleen, mutta sen haittana on, että äskettäin kirjoitettujen tietojen lukupyyntö luo "välimuistin puutteen" ja on luettava hitaammasta massavarastoinnista ja kokea pidempi viive. Jos sovelluksesi on tapahtumavaiheessa, koska suurin osa kriittisistä sovelluksista on, sovelluksen nopeus hidastuu ja I / O-jonot kasvavat. Pohjimmiltaan tämän moodin arvo olisi harvinaisissa tapauksissa, koska se on aikaa vievä, hidas ja ei suorittava.

Läpikirjoitettavaa

Tätä menetelmää käytetään nykyään yleisesti välimuisti- ja hybridivarastointiratkaisuissa. Läpivienti tunnetaan lukuvälimuistitilana, mikä tarkoittaa, että kaikki tiedot kirjoitetaan välimuistiin ja alla olevaan tallennustilaan samanaikaisesti. Kirjoitusta pidetään VAIN täydellisenä, kun se on kirjoitettu varastoon. Kuulostaa melko turvalliselta tosiasiallisesti… mutta nopeuden haitoilla on.

Tässä on ongelma: Jokainen kirjoitustoimenpide tehdään kahdesti välimuistissa ja sitten pysyvässä tallennustilassa. Ennen kuin sovelluksia voidaan jatkaa, pysyvän tallennustilan on palautettava I / O-sitoutuminen takaisin välimuistiin ja sitten takaisin sovelluksiin. Tätä menetelmää käytetään yleisesti vikojen joustavuuden kannalta ja välttämään vika- tai HA-strategian toteuttaminen välimuistilla, koska data elää molemmissa paikoissa. Kirjoittamisella kuitenkin on viive, koska I / O-sitoutuminen määräytyy pysyvän tallennuksen nopeuden mukaan, mikä ei vastaa CPU: n ja verkottumisen nopeuksia. Olet vain yhtä nopea kuin hitain komponentti, ja kirjoittaminen voi kriittisesti haittaa sovelluksen nopeutta.

Ei vikoja, ei stressiä - vaiheittaiset ohjeet elämää muuttavien ohjelmistojen luomiseen tuhoamatta elämääsi

Et voi parantaa ohjelmointitaitojasi, kun kukaan ei välitä ohjelmiston laadusta.

Kirjoita takaisin

Kirjoittaminen parantaa järjestelmän tuloksia nopeuden suhteen - koska järjestelmän ei tarvitse odottaa kirjoitusten menemistä alla olevaan tallennustilaan.

Kun tiedot tulevat kirjoitettaviksi, Write-Back asettaa tiedot välimuistiin, ”kaikki valmis”, ja säilyttää tiedot kirjoitettaviksi tallennuslevylle myöhemmin.

Tämä ratkaisee paljon latenssiongelmia, koska järjestelmän ei tarvitse odottaa näitä syviä kirjoituksia.

Oikealla tuella kirjoittaminen voi olla paras tapa monivaiheiseen välimuistiin. Se auttaa, kun välimuistissa on paljon muistia (ts. Muisti mitattu teratavuina, ei gigatavua), jotta voidaan käsitellä suuria määriä toimintaa. Hienostuneet järjestelmät tarvitsevat myös useamman kuin yhden solid-state-aseman, mikä voi lisätä kustannuksia. On kriittisen tärkeää harkita skenaarioita, kuten sähkökatkos tai muita tilanteita, joissa kriittinen tieto voi kadota. Mutta oikealla ”välimuistisuojauksella” Write-Back voi todella nopeuttaa arkkitehtuuria muutamalla alaspäin. Esimerkiksi Write-Back-järjestelmät voivat käyttää RAID- tai redundant-malleja tietojen turvallisuuden varmistamiseksi.

Vielä yksityiskohtaisemmat järjestelmät auttavat välimuistia ja SAN: ää tai niiden alla olevaa tallennuslevyä toimimaan keskenään tarvittaessa, delegoimalla kirjoitukset joko syvälle tallennustilaan tai välimuistiin levyn työmäärän mukaan.

Write-Back -suunnitteluprofilosofia heijastaa ongelmanratkaisua, jonka nykypäivän edistyneet tiedonkäsittelyjärjestelmät tuovat suuriin tehtäviin. Luomalla monimutkaisempi arkkitehtuuri ja käyttämällä välimuistia monimutkaisella tavalla, Write-Back tuhoaa viiveongelmat, ja vaikka se saattaa vaatia enemmän yleiskustannuksia, se mahdollistaa järjestelmän paremman kasvun ja vähemmän kasvavia kipuja.