RT-ytimen käyttäminen (matala viive)

Tämän blogin suuri seuraaja ja kommentaattori Miguel Mayol suositteli artikkelia, joka julkaistiin Hänen vapaamuurari RT-ytimien käytöstä, jonka olemme päättäneet julkaista ja laajentaa joissakin sen osissa.

Los RT-ytimet salli a optimaalinen suorituskyky Joissakin tietyissä tilanteissaEsimerkiksi äänen muokkaus tai virtuaalisten soittimien käyttö.

Monitoiminen ydin

Linux-ydin, kuten useimpien nykyaikaisten käyttöjärjestelmien, on moniajo. Tämä tarkoittaa, että useita ohjelmia on käynnissä samanaikaisesti.

Todellisuudessa näin ei ole. Se, mitä teet, on asettaa ohjelmat jonoon ja yksitellen mikroprosessori suorittaa ne tietyn ajan. Kun tämä on käytetty loppuun, mikroprosessori keskeyttää tehtävän jättäen sen puoliväliin ja antaa tien seuraavalle. Tätä aikaa kutsutaan kvantiksi tai aikaleikkeeksi, eikä sen tarvitse olla vakio.

Hyvä analogia voisi olla kokki baarissa, joka valmistaa useita ruokia samanaikaisesti: selän voileipä, maustevoileipä, sekoitettu salaatti ... Nyt murran leivän, kytken pannun päälle, kun se kuumenee, pestään salaattia jne.

Jos kvantti on riittävän pieni, subjektiivinen vaikutelma hitaalle tarkkailijalle, kuten ihmiselle, on, että nopean prosessorin sijasta vuorotellen tehtäviä meillä on jokaiselle heikko prosessori (useat kokit samassa keittiössä tekevät hitaasti kutakin yksi yksittäinen levy).

Tehtävänvaihto maksaa

Moniajo ei ole ilmainen: siihen liittyy prosessorin yleiskustannuksia. Yhden tehtävän poistaminen ja seuraavan lataaminen on todellakin ylimääräistä työtä. Tätä toimintoa kutsutaan "kontekstinvaihdoksi" tai "tehtävänvaihdoksi". CPU: n kannalta olisi kustannustehokkaampaa suorittaa ohjelmat kokonaan yksi kerrallaan kuin leikata ne "viipaleiksi" ja siirtyä toisistaan. Järjestelmä kuitenkin menettäisi vuorovaikutteisuuden, emme voineet olla useita ikkunoita auki tai palvelimen tapauksessa osallistua useaan pyyntöön samanaikaisesti.

Viive ja suorituskyky

Oletetaan, että kokin on kuorittava 20 kiloa katkarapuja ja kuoppaan 20 kiloa oliiveja. Kuinka työ suunnitellaan?

Äärimmäisissä tapauksissa hän kuori ensin kaikki katkaravut, pesi kätensä makujen sekoittumisen välttämiseksi ja kuopasi sitten kaikki oliivit. Edustamme sitä näin:

GGGGGGGGGGGGGGGGGGGGG… C AAAAAAAAAAAAAAAAAAAAAAAA ...

Päinvastaisessa ääripäässä hän kuori katkaravun, pesi kätensä, kuopasi oliivin, pesi kätensä ... katkarapu, oliivi, katkarapu, oliivi ... Me edustamme sitä näin:

GCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCAC…

'C' tarkoittaa muutosta kontekstissa: pese kädet, vaihda astiat ...

Samanaikaisesti tarjoilija kerää asiakkaiden pyynnöt: "yksi katkarapuilla!" ... "yksi oliiveilla!" ... ja siirtää ne keittiöön.

Ensimmäisessä tapauksessa oletetaan, että asiakas tulee sisään ja pyytää osan katkarapuja. Ei hätää, se tarjoillaan välittömästi. Mutta entä jos hän pyytää oliiveja? Tarjoilija ei voinut palvella sitä ennen kuin kaikki katkaravut oli kuorittu. Tässä tapauksessa viive, joka on aika, joka kuluu pyynnön esittämisestä siihen vastaamiseen, olisi erittäin korkea.

Toisessa tapauksessa, mitä asiakas pyytää, se on käytettävissä lyhyessä ajassa, myös käytännössä sama molemmissa tapauksissa. Viive on pieni, mutta kustannuksella: kontekstimuutosten takia suorituskyky heikkenee, mikä ymmärretään osaksi aikaa, jonka aikana keskusyksikkö suorittaa suoraan tuottavia tehtäviä tukitehtävien sijaan.

Ilmeisesti tässä tapauksessa ihanteellinen ratkaisu olisi keskitie, joka riippuu annosten koosta ja pyyntöjen tilastollisesta jakaumasta. Jonoteoria on matematiikan haara, joka on vastuussa näiden tilanteiden tutkimisesta ja optimaalisten ratkaisujen tarjoamisesta.

Kuten näette, latenssi ja suorituskyky ovat vastakohtia. Tästä syystä ei ole oikein sanoa, että RT-ytimet antavat enemmän suorituskykyä. Päinvastoin, latenssin alentaminen vähentää koneen suorituskykyä ja on siksi huono valinta järjestelmille, jotka eivät vaadi huippunopeita vastauksia, kuten verkko- tai tietokantapalvelimet.

Päinvastoin, matalaviiveiset ytimet ovat ihanteellisia tilanteissa, joissa tarvitaan maksimaalista nopeutta reagoida ulkoisiin ärsykkeisiin, kuten teollisuuden ohjausjärjestelmät tai interaktiiviset multimediasovellukset, tietäen, että uhraamme osan koneen voimasta taataksemme nopean reaktion .

Prioriteetit

Mielenkiintoinen vaihtoehto monitoimijärjestelmissä on antaa tehtäville erilaiset prioriteetit siten, että tärkeimmät saavat enemmän aikaa prosessorilta ja vähemmän tärkeät vähemmän. Normaalissa ytimessä tämä tehdään 'nice' -komennolla. Jos kokkimme odottaa tarjoavansa enemmän annoksia katkarapuja kuin oliiveja, hän tekisi tietysti viettää enemmän aikaa entisiin.

Ytimen RT (tai matala viive)

Normaalien ytimien ongelma on, että tehtäviä ei voida keskeyttää missään, sinun on odotettava, että ne saavuttavat tietyt suorituspisteet, joissa ne voidaan pysäyttää siirtyäkseen toiseen. Tämä esittelee sen, mitä kutsumme latenssiksi.

Yksinkertaistetusti RT-ytimet sallivat tehtävien keskeyttämisen useammissa paikoissa kuin tavalliset ytimet. He voivat tehdä niin sanotusti ohuempia viipaleita aikaa, joten nykyinen tehtävä häädetään nopeammin ja ensisijainen tehtävämme pääsee nopeammin suorittimeen. Siksi latenssi on pienempi.

Sanotaan, että RT-ytimen avulla voimme jättää puoliksi kuoritut katkaravut, jos tuohon aikaan tarvitaan kiireellisesti oliivin kuoppa mahdollisimman pian, kun taas normaalissa ytimessä katkarapujen kuoriminen on tarpeen.

Sen lisäksi, että viipaleista tehdään ohuempia, RT-ytimissä on paljon tiukempi prioriteettijärjestelmä, jossa ensisijaiset tehtävät pilkkovat armottomasti toisiaan (ennaltaehkäisevät) saadakseen CPU: n hallinnan hidastamalla muita ohjelmia, mikä on tarpeen vaatimusten täyttämiseksi.

Milloin on tärkeää käyttää RT-ydintä?

Kahdessa tapauksessa:

1) Kun tarvitsemme hyvin pieniä viiveitä, toisin sanoen koneen erittäin nopeita reaktioita. Selkein esimerkki on virtuaalisten instrumenttien suorituskyky, jossa tarvitset laitteen soimaan heti, kun painat MIDI-näppäimistön näppäintä.

2) Kun tarvitsemme hyvin tiukkoja prioriteetteja, toisin sanoen, että mikään maailmassa ei keskeytä tärkeätä tehtäväämme (ellei katastrofaalisessa tapauksessa CPU ole niin ylikuormitettu, että se ylittää 100%: n käyttöasteen). Tallennamme esimerkiksi ääniistuntoa Ardorin kanssa ja seuraamme, että fader-ilmaisimet nousevat ja laskevat. Ei ole väliä, menetämmekö faderien päivityskehyksen, kunhan äänensiirto mikrofonista kiintolevylle ei keskeydy. RT-ydin hidastaa faderin päivitystä niin paljon kuin on tarpeen niin kauan kuin yhtään ääninäytettä ei menetetä.

Tästä huolimatta uudemmat ei-RT-ytimet ovat parantaneet huomattavasti aikataulujärjestelmäänsä ja prioriteettiensa hallintaa. Jos sinulla ei ole CPU: ta mahdollisuuksiensa rajoissa (esimerkiksi alle 50%: n käyttöaste) tai jos et välitä, että ajoittain äänessä (paljon pelättyjä xruns) on pieni mikroleikkaus (napsautus), normaalin ytimen suorituskyky on täysin hyväksyttävä.

Mikä viive on suositeltavaa?

Henkilökohtaisesti kaikki alle 10 ms: n kohdat sopivat minulle ja 20 ms: n jälkeen aloin jo huomata viiveen selvästi. Vaativampia ihmisiä on enemmän.

Asennus

Ubuntussa ja johdannaisissa:

sudo apt-get install linux-headers-lowlatency
sudo apt-get install linux-lowlatency
sudo update-grub

Käynnistyksen yhteydessä sinulla on molemmat vaihtoehdot (normaali ydin ja matala viive).

Archissa ja johdannaisissa:

yaourt -S linux -rt
sudo update-grub

lähde: Hänen vapaamuurari


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Jordi Fdez dijo

    erittäin täydellinen ja hyvä
    selitti. kyllä, käytän Linuxia musiikkituotantoon
    tavallinen distro ja minulla ei ole viiveongelmia,
    vastaus on välitön toistettaessa ääntä. Minulla ei ole paljon
    tietoa, mutta mielestäni Linuxin äänen ohjaimet ovat
    melko hyvä, en edes tarvitse liitintä saadaksesi hyvän
    suorituskyky

  2.   Carlos dijo

    Erinomainen artikkeli ja selitys ei voisi olla parempi. Kippis

  3.   carlesa25 dijo

    Hei: Erittäin mielenkiintoista, testaan ​​sen CPU + GPU: n intensiivisissä laskentatehtävissä.

    Kun voit poistua Ubuntu 12.0 -käyttöjärjestelmästä kuten aiemmin, eli poista "linux-headers-lowlatency". Terveiset.

  4.   Th3Gh057 dijo

    Paljon kiitoksia artikkelista. On todella mielenkiintoista tietää, kuinka matalan viiveen ytimet toimivat. Olen ollut kiinnostunut tietämään enemmän siitä ja sen hyödyllisyydestä. Kippis

  5.   Oliver dijo

    Upea artikkeli! kerran kuulin, että matalaviiveinen ydin vaadittiin reagoivamman näppäimistön suorittamiseksi, mutta minulla ei ollut aavistustakaan miksi ja miten se tehdään. Vastaavuus on hyvin selvä.

  6.   Rohkeus dijo

    Kyllä, sir, täysin totta.

    Se on jotain elintärkeää myös musiikkituotannossa, kuten sanotaan VST: n käytössä, esimerkiksi live-esityksessä, jossa käytetään MIDI-ohjainta, meidän on mentävä samaan aikaan muiden instrumenttien kanssa ja korkea viive voi soittaa temppu meille.

    Tai ei välttämättä virtuaalisten instrumenttien käytössä, mutta tallennuksessa tapahtuu rajapinnan kautta viive, joka voi hämmentää meitä tulkittaessa instrumentteja

  7.   Sävyinen dijo

    Upea artikkeli, minulla ei ollut aavistustakaan mitä ytimen matala viive tarkoitti (vaikka olen liittänyt sen ram-moduulien viiveisiin)

  8.   Gerardo Azonos dijo

    Erittäin hyvä ... Pidin siitä todella.
    vaihtaa aihetta, joku tietää kuinka ratkaista wifi (langattoman sylissäni) ongelma, joka ei salli minun työskennellä julkisissa tiloissa, signaali on hyvin heikko.
    Minulla on ubuntu 11.10 ja sylissäni on: Dell inspiron n4110.
    Kiitän sinua etukäteen.

  9.   Miquel Mayol ja Tur dijo

    Kiitos, lisää, että Sabayon kantaa tätä ydintä, joka on käännetty oletuksena 1000 Hz: n taajuudella, mikä on ihanteellinen myös FPS-pelipalvelimille ja itse FPS-peleille ja kaikille vaativille, paitsi kenties tietokantoja käyttäville, vaikka minulle Sabayonin freeciv puhalsi minut pois ..

    Työpöydällä se priorisoi yleensä päätehtävän, joten voi olla kätevää käyttää sitä, vaikka se olisi vähemmän tehokas muille tehtäville, mitä teemme tällä hetkellä, se menee nopeammin, ja nykyisissä nykyaikaisissa tietokoneissa se voi olla varsin mielenkiintoinen.

    Kyse on niiden asentamisesta, testaamisesta viikon ajan, palaamisesta ytimeen - normaaliin - ja näkemiseen, miten se on sujunut ja mitä pidämme parempana, sekä käyttää sitä erityistehtäviin, joista kukin on parempi .

  10.   Gustavo Trepat dijo

    Erinomainen artikkeli, hyvin selitetty.
    Kiitos.

  11.   Esteban dijo

    Erinomainen selitys, kiitos paljon, se on auttanut minua paljon 🙂

  12.   Carlos Martinez dijo

    Erittäin mielenkiintoinen artikkeli, se on ollut minulle hieman selkeämpi, vaikka epäilen edelleen, sopiiko matalatasoinen ydin minulle. Mistä tiedän ytimen viiveen? Kippis

  13.   JULIO dijo

    Asensin äskettäin ubuntu-studion distron ja tajusin, että viive on pieni ja tutkin tulin sivullesi. Olen hyvin selvä käyttöjärjestelmien peruskäsitteistä ja selityksesi oli täydellinen. Teit sen. Onnittelut