Oracle'i ettevõte tutvustas esmakordselt Unbreakable Enterprise Kernel 8 (UEK R8) stabiilset väljaannet, Linuxi tuuma varianti, mida arendatakse Oracle Linuxi jaotises kasutamiseks Red Hat Enterprise Linuxi vaikimisi tuumapaketile alternatiivina. Tuuma on saadaval ainult x86_64 ja ARM64 (aarch64) arhitektuuridel. Tuuma lähtekood, sealhulgas eraldi plaastrite jagamine, on avaldatud Oracle'i avalikus Git-repositooriumis.
Unbreakable Enterprise Kernel 8 pakett põhineb Linuxi tuumal 6.12 (UEK R7 versioon põhines tuumal 5.4 ja RHEL 10 beetaversioonis pakuti tuuma 6.11), millele on lisatud uusi funktsioone, optimeerimisi ja parandusfakte, ning see on kontrollitud ühilduvusest enamiku RHEL-is töötavate rakendustega, optimeerides Oracle'i tööstuslikku tarkvara ja riistvara. UEK R8 tuuma installimis- ja src-paketid on ette valmistatud Oracle Linux 9.5 jaoks (puuduvad takistused selle tuuma kasutamiseks sarnastes RHEL, CentOS, Alma Linux ja Rocky Linux versioonides).
Unbreakable Enterprise Kernel 8 peaeesmärgid:
- UEK-i tuumade komponentide jaotamine on muudetud eraldi paketideks. Tuuma moodulid on eraldatud aluseks olevast tuuma pildist ja viidud kogudesse, mida tarnitakse eraldi pakettidena: kernel-uek-modules-core (alumine minimaalne), kernel-uek-modules (taskudeks), kernel-uek-modules-desktop, kernel-uek-modules-extra-netfilter, kernel-uek-modules-usb ja kernel-uek-modules-wireless. Seotud utiliidid on eraldatud aluspakkumisest kernel-uek-core eraldi paketti kernel-uek-tools. Konfiguratsioonifailid, milles loetletakse laadimiskõlbmatud moodulid, on ümber nimetatud 'blacklist' - 'denylist', järgides kaasava terminoloogia kasutamise algatust. serveriteARM Ampere süsteemide jaoks, mida kasutatakse Oracle Cloudis, on kokku pandud eraldi tuuma kogumik kernel-uek64k, mille baasmälu lehe suurus on suurendatud 4 KB-st 64 KB-ni.
- On lisatud tugi Intel SGX2 (Software Guard Extensions) riistvaralise rakenduse jaoks EDMM (Enclave Dynamic Memory Management) mehhanismile, mis võimaldab hallata pääsu eraldi mälu lehtedele enclave'i ja dünaamiliselt lisada/ eemaldada lehti tsisternist.
- Intel Quick Assist Technology (QAT) seadmete toetav Intel QAT draiver on lisatud toetuse neljandas põlvkonnas Intel Xeoni protsessoritele.
- Intel Quick Assist Technology (QAT) draiverisse on lisatud tugi 4. põlvkonna Intel Xeon protsessoritele.
- Lisatud on 'split-lock' blokeeringute tuvastamise süsteem, mis tekivad juurdepääsul ühtimata andmetele mälus, kui atomaarse käsu täitmisel andmed ristuvad kahe CPU vahemälu joonega. Taolistest blokeeringutest tulenev jõudluse langus on ulatuslik (1000 tsüklit aeglasem kui atomaarne operatsioon andmetega, mis jäävad ühte vahemälu joone).
- Uus meetod Intel ja AMD CPU Retbleed haavatavuste kaitseks, kasutades sügavuse jälgimist, on rakendatud. See ei aeglusta tööd nii palju kui varasem staatiline kaitse Retbleedi vastu.
- x86 süsteemides on tagatud sekundaarsete CPU tuumade samaaegne aktiveerimine, mis on vähendanud tuuma laadimisaja pikka suurt tuumade arvuga süsteemidel.
- Kern komandireal on lisatud parameeter 'ia32_emulation', mis võimaldab laadimise etapis lülitada 32-bitise režiimi emulatsiooni toe sisse ja välja x86-64 arhitektuuriks kompileeritud tuumades.
- Vaikimisi kasutatakse CFS (Completely Fair Scheduler) asemel EEVDF (Earliest Eligible Virtual Deadline First) ülesande planeerijat. Uus planeerija arvestab järgmise protsessi valikul protsesse, mis ei ole saanud piisavalt protsessorivõimsust või on saanud ebaproportsionaalselt palju protsessoriaega. Esimeses juhul sunnitakse juhtimise andmine protsessile, samas kui teises juhul lükatakse see tagasi. Vana CFS planeerija kasutas erilise tähelepanu vajavate protsesside määramiseks heuristikat ja peeneid seadistusi, samas kui uus planeerija jälgib neid selgemalt ja ei vaja peenhäälestust. EEVDF vähendab viivitusi ülesannete täitmisel, millega CFS-il oli planeerimisega probleeme.
- DTrace 2.0 dünaamilise silumise süsteemi toetamine on jätkatud, mis on nüüd ümber lülitatud eBPF tuumapeal olevatele süsteemidele. DTrace 2.0 töötab eBPF peal, sarnaselt sellele, kuidas olemasolevad jälgimisriistad Linuxis töötavad.
- KVM hüperviisis on lubatud kasutada kuni 4096 virtuaalset CPU-d (VCPU).
- KTLS-i, kerneli taseme TLS-protokolli rakenduse kasutamine jätkub.
- Uuendatud RDRAND pseudojuhuslike arvude generaatori rakendus, mis vastutab seadme /dev/random toimimise eest, on muudetud kasutama BLAKE2s räsifunktsiooni SHA1 asemel entropia segamise operatsioonides. See muudatus on võimaldanud suurendada pseudojuhuslike arvude generaatori turvalisust. Juhuslikest numbritest kiiremini kätte saamiseks via getrandom() süsteemikutses on rakendatud vDSO (virtuaalne dünaamiline jagatud objekt) mehhanism, mis toob süsteemikutsumise töötleja kernelist kasutajaruumi, et vältida konteksti vahetust.
- Lisatud tugi BIG TCP laiendusele, mis võimaldab tõsta TCP-paketi maksimaalse suuruse 4 GB-ni, et optimeerida andmekeskuste kõrgkiiruslike sisevõrkude tööd. Selline paketi suuruse suurendamine 16-bitise pealkirja välja kaudu saavutatakse 'jumbo' paketide rakendamisega, mille suurus IP-pealkirjas on seatud 0 ja tegelik suurus edastatakse eraldi 32-bitises väljas eraldi külge lisatud pealkirjas.
- Võrgusoketeks on rakendatud SO_RESERVE_MEM valik, millega saab soketi jaoks reserveerida kindla hulga mälu, mis jääb alati soketile kaccessible ja ei ole eraldatud. Selle valiku kasutamine võimaldab suurendada jõudlust, vähendades võrgu protokollis mälutegevuste eraldamise ja tagastamise operatsioone, eriti süsteemi mälu puuduse tekkimise korral.
- Pakettide planeerija fq (Fair Queuing) jõudluse optimeerimine on suurendanud läbilaskevõimet 5% ulatuses suurte koormuste korral tcp_rr (TCP Request/Response) testis ja 13% piiramatu UDP-pakettide voogude korral.
- Süsteemi tuuma võrgu struktuuride reorganiseerimine, et parandada protsessori andmekäitlemise efektiivsust, on suurendanud TCP-protokolli jõudlust süsteemides, mis teenindavad suurt hulka paralleelseid päringuid.
- Oracle'i andmebaasi automaatseks salvestuse haldamiseks on lisatud ASMLib 3 teegi tugi.
- Tööd on tehtud io_uring asünkroonse sisendi/väljundi mehhanismi jõudluse optimeerimiseks ja turvalisuse parandamiseks. Lisatud io_uring baasil põhinevad optimeerimised failisüsteemidele XFS ja Ext4, mis võimaldavad paralleelset otsefailide kirjutamist mitmes lõimes.
- Parandatud on Btrfs failisüsteemi tuge. Trim/discard toega seadmetel on vaikimisi lubatud mäluvaliku 'discard=async' paigaldusvalik, mis võimaldab neid toiminguid kohe kõikidele FS-idele asünkroonses režiimis teostada. Lisatud on toetust tihendatud andmete saatmiseks ja vastuvõtmiseks ilma konversioonideta. Lisatud on toetust üle 64 KB plokkide kirjutamiseks. Lihtsustatud on kvotide arvestust. Tehtud on toimetamisse kuuluvate kloneeritud seadmete paigaldamise tugi. Parandatud on NOCOW režiimis kirjutamise kontrolle (läbilaskevõime kasvas 9%). Lisatud on paigaldamisvalikud 'ignoremetacsums' ja 'ignoresuperflags' vale metadatakontrollide ja superbloki lippude ignoreerimiseks. Tagatud on seadmete eemaldamise, tasakaalustamise ja plokkide ümberjaotamise ülesannete teostamine paralleelselt.
- FS XFS-s on lubatud kasutada plokisuurust, mis ületab mälu lehe suurust. Suured ulatusloendurid on lisatud väga suurtele virtuaalsetele ketastele. Failide sisu atomaarse püsivuse (commit) režiim on lisatud. Pakutakse eksperimentaalset implementeerimist kontrollimiseks (fsck) ja FS-i taastamiseks online-režiimis.
- NFS-is on vaikimisi aktiveeritud READ_PLUS-operatsioon, mis on määratletud NFS 4.2 spetsifikatsioonis ja mida rakendatakse selleks, et tõhusamalt lugeda andmeid failidest, mis sisaldavad tühikuid.
- Mälu haldamise süsteem on muudetud kasutama folio andmestruktuuri (mälulehed). Folio’d meenutavad ühendatud mälu lehti (compound pages), kuid nende semantika on paranenud ja töökorraldus selgem.
- Mälu kaardistamise operatsioonide jaoks on kasutusele võetud andmestruktuur "maple tree", mis on positsioneeritud efektiivsemana võrreldes "punase-musta puu" struktuuriga. Maple tree on B-puu variant, mis toetab indeksimist väärtuste vahemike alusel ja on projekteeritud efektiivseks vahemälute kasutamiseks. kaasaegsete protsessorite.
- Mmap-is on rakendatud blokeeringud individuaalsete VMA-de (Virtuaalne Mälupiirkond) tasemel, mis tõstavad multitehniliste rakenduste jõudlust.
- Lisatud on ptdesc andmestruktuur, mis optimeerib mälu lehtede tabelitega töötamist, eraldades metaandmete struktuurid ja andmed mälu lehtede jaoks.
Allikas: opennet.ru
