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
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
Erinomainen artikkeli ja selitys ei voisi olla parempi. Kippis
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.
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
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ä.
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
Upea artikkeli, minulla ei ollut aavistustakaan mitä ytimen matala viive tarkoitti (vaikka olen liittänyt sen ram-moduulien viiveisiin)
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.
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 .
Erinomainen artikkeli, hyvin selitetty.
Kiitos.
Erinomainen selitys, kiitos paljon, se on auttanut minua paljon 🙂
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
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