Kompania Oracle prezantoi versionin e parë stabil të Unbreakable Enterprise Kernel 8 (UEK R8), një variant i kernel-it Linux i zhvilluar për përdorim në distribucionin Oracle Linux si një alternativë ndaj paketës standarde me kernel nga Red Hat Enterprise Linux. Kernel-i është i disponueshëm vetëm për arkitekturën x86_64 dhe ARM64 (aarch64). Kodi burimor i kernel-it, duke përfshirë shpërndarjen në patch-e të veçanta, është publikuar në një depo të hapur Git të Oracle.
Paketa Unbreakable Enterprise Kernel 8 është e bazuar në kernel-in Linux 6.12 (veprimi UEK R7 ishte i bazuar në kernel-in 5.4, dhe në versionin beta të RHEL 10 ofrohej kernel-i 6.11), i cili plotësohet me funksionalitete të reja, optimizime dhe rregullime, si dhe është testuar për shkallëzueshmërinë me shumicën e aplikacioneve që funksionojnë në RHEL, dhe është optimizuar për përdorim me softuer dhe harduer të industrisë Oracle. Paketa e instalimit dhe paketat src për kernel-in UEK R8 janë përgatitur për Oracle Linux 9.5 (nuk ka pengesa për përdorimin e këtij kernel-i në versionet e ngjashme të RHEL, CentOS, Alma Linux dhe Rocky Linux).
Novitet kryesor në Unbreakable Enterprise Kernel 8:
- Ndryshimi i shpërndarjes së komponentëve të kernel-it UEK në paketa të veçanta. Module të kernel-it janë ndarë nga imazhi bazë i kernel-it dhe janë vendosur në koleksione, të siguruara në paketa të veçanta: kernel-uek-modules-core (minimumi bazë), kernel-uek-modules (për servera), kernel-uek-modules-desktop, kernel-uek-modules-extra-netfilter, kernel-uek-modules-usb, dhe kernel-uek-modules-wireless. Veglat përkatëse janë nxjerrë nga paketa themelore kernel-uek-core në një paketë të veçantë kernel-uek-tools. Dosjet e konfigurimit me listën e moduleve të pamundësuara për ngarkim janë rinovuar nga 'blacklist' në 'denylist' në kuadër të iniciativës për përdorimin e terminologjisë përfshirëse.
- Për sistemet ARM Ampere, të përdorura në Oracle Cloud, është formuar një ndërtim të veçantë të kernel-it kernel-uek64k, me madhësinë bazë të faqeve të memories që është rritur nga 4 në 64 KB.
- Shtuar mbështetje për implementimin hardueror të Intel SGX2 (Software Guard Extensions) të mekanizmit EDMM (Enclave Dynamic Memory Management), duke lejuar menaxhimin e qasjes në faqe të veçanta të memories së enklavës dhe duke e lejuar shtimin/zhbllokimin dinamik të faqeve të memories për enklavën.
- Në driverin Intel QAT me mbështetje për pajisjet Intel Quick Assist Technology (QAT), është shtuar mbështetje për brezin e katërt të procesorëve Intel Xeon.
- Shtuar një sistem të identifikimit të bllokimeve të ndara ('split-lock'), që shfaqen kur aksesohet të dhëna të paorientuara në memory për shkak se, gjatë ekzekutimit të një instruksioni atomik, të dhënat kalojnë përmes dy linjave të caches të CPU. Këto bllokime çojnë në rënie të konsiderueshme të performancës (në 1000 cikle më ngadalë se një operacion atomik me të dhëna që bien në një linjë cache).
- Krijuar një metodë të re për mbrojtjen nga cenueshmëria Retbleed në CPU-të Intel dhe AMD, që përdor ndjekjen e thellësisë së thirrjeve dhe që nuk ngadalëson kaq shumë sa mbrojtja e mëparshme nga Retbleed.
- Në sistemet x86 është lejuar aktivizimi i përbashkët i bërthamave të dyta të CPU-së, çka ka reduktuar kohën e ngarkesës së kernel-it në sistemet me një numër të madh bërthamash.
- Shtuar një parametrin e komandës së kernel-it 'ia32_emulation', që lejon activizimin dhe çactivizimin e mbështetjes për emulacionin e modit 32-bit gjatë ngarkesës në kernel-at e ndërtuar për arkitekturën x86-64.
- Si standard, është aktivizuar planifikuesi i detyrave EEVDF (Earliest Eligible Virtual Deadline First) në vend të CFS (Completely Fair Scheduler). Kur zgjidhet procesi tjetër për të përçuar ekzekutimin, planifikuesi i ri merr parasysh proceset që nuk kanë marrë burime procesorike ose që kanë marrë tepër shumë kohë procesori. Në rastin e parë, detyrohet transferimi i kontrollit te procesi, ndërsa në rastin e dytë, përkundrazi, shtyhet. Planifikuesi i vjetër CFS përdorte heuristika dhe ndjeshmëri të hollë për përcaktimin e proceseve që kërkonin vëmendje të veçantë, ndërsa plani i ri i ndjek ato më qartë dhe nuk kërkon ndjeshmëri të hollë. EEVDF do të zvogëlojë vonesat në ekzekutimin e detyrave, me të cilat CFS kishte probleme me planifikimin.
- Vazhdon ofrimi i sistemit të depërtimit dinamik DTrace 2.0, i cili është kaluar në përdorimin e nën-sistemit të kernelit eBPF. DTrace 2.0 funksionon mbi eBPF, siç funksionojnë instrumentet ekzistuese të gjurmimit në Linux.
- Në hipervizorin KVM, është lejuar përdorimi deri në 4096 CPU virtuale (VCPU).
- Vazhdon përdorimi i KTLS, implementimi i protokollit TLS në nivelin e kernel-it.
- Implementimi i gjeneratorit të numrave të rastësishëm RDRAND është përditësuar, përgjegjës për funksionimin e pajisjes /dev/random, e cila është transferuar për të përdorur funksionin hash BLAKE2s në vend të SHA1 për operacionet e përzierjes së entropy. Ky ndryshim ka rritur sigurinë e gjeneratorit të numrave të rastësishëm. Për të përshpejtuar marrjen e numrave të rastësishëm përmes thirrjes së sistemit getrandom(), është angazhuar mekanizmi vDSO (virtual dynamic shared object), që ngarkon trajtuesin e thirrjes së sistemit nga kernel-i në hapësirën e përdoruesit për të shmangur ndërrimet e kontekstit.
- Shtesa e mbështetjes për zgjerimin BIG TCP është shtuar, e cila lejon rritjen e madhësisë maksimale të paketës TCP deri në 4GB për optimizimin e funksionimit të rrjeteve të brendshme me shpejtësi të lartë të qendrave të të dhënave. Ky rritje e madhësisë së paketës me madhësinë 16-bit të fushës në titull arrihet përmes realizimit të paketave "jumbo", e cila madhësia në titullin IP është vendosur në 0, ndërsa madhësia reale është transmituar në një fushë të veçantë 32-bit në një titull të veçantë të lidhur.
- Për soketat e rrjetit është implementuar opsioni SO_RESERVE_MEM, duke lejuar që një sasi e caktuar memorie të rezervohet për soketin, e cila gjithmonë do të mbetet e disponibilizuar për soketin dhe nuk do të merren. Përdorimi i këtij opsioni siguron rritjen e performancës duke reduktuar operacionet e alokimit dhe kthimit të memories në stakun e rrjetit, veçanërisht në rastet e mungesës së memories në sistem.
- Kryer optimizimi i performancës së planifikuesit të paketave fq (Fair Queuing) ka lejuar rritjen e kapacitetit me 5% në ngarkesa të larta gjatë testit tcp_rr (TCP Request/Response) dhe me 13% në një flux të pakufizuar të paketave UDP.
- Kryer reorganizimi i strukturave rrjetore tĂ« bĂ«rthamĂ«s pĂ«r tĂ« rritur eficiencĂ«n e ruajtjes sĂ« tĂ« dhĂ«nave nga procesori, duke rritur performancĂ«n e stakut TCP nĂ« sistemet qĂ« shĂ«rbejnĂ« njĂ« numĂ«r tĂ« madh kĂ«rkesash паŃаleale.
- Shtesa e mbështetjes për bibliotekën ASMLib 3 për menaxhimin automatik të ruajtjes në DBMS Oracle.
- Kryer optimizimi i performancës dhe rritja e sigurisë së mekanizmit të inputit/tedhjes asinkrone io_uring. Shtuar optimizimet bazuar në io_uring për FS XFS dhe Ext4, që sigurojnë mundësinë e shkruarjes direkte në skedar në disa thjeshtësira.
- Përmirësuar mbështetje e sistemit të skedarëve Btrfs. Për pajisjet me mbështetje trim/discard, opsioni i montimit "discard=async" është aktivizuar për të gjithë FS në modin asinkron. Shtuar mbështetje për dërgimin dhe marrjen e të dhënave të kompresuara pa transformim. Shtuar mbështetje për shkruarje në blloqe më të mëdha se 64 KB. Thjeshtuar mbikëqyrja e kuotave. Implementuar mbështetje për montimin e pajisjeve të klonuara. Përmirësuar verifikimet e shkruarjes në modin NOCOW (kapaciteti është rritur me 9%). Shtuar opsionet e montimit "ignoremetacsums" dhe "ignoresuperflags" për të injoruar kontrollet e gabuara të metadathës dhe flamujve të superblokut. Siguruar realizimin e detyrave për heqjen e pajisjeve, balancimin dhe ri-shpërndarjen e blloqeve në një mod asinkron.
- Në FS XFS është lejuar përdorimi i madhësisë së bllokut që e tejkalon madhësinë e faqes së memories. Shtuar numra të mëdhenj të ekstentëve për disqe virtuale shumë të mëdhenj. Shtuar një mod eksperimentues të konfirmimit (commit) të përmbajtjes së skedarëve. Propozuar implementim eksperimental të kontrollit (fsck) dhe rikuperimit të FS në modin online.
- Në NFS është aktivizuar me default përdorimi i operacionit READ_PLUS, i caktuar në specifikimin NFS 4.2 dhe aplikuar për leximin më efikas të të dhënave nga skedarët që përmbajnë boshllëqe.
- Sistemi i menaxhimit të memories është bërë me strukturën e të dhënave folios (faqet e fletëve të memories). Folios duken si faqet e memories të bashkuara (compound pages), por dallohen për semantikën e përmirësuar dhe organizimin më të qartë të funksionimit.
- Për operacionet e mapimit të memories është angazhuar struktura e të dhënave "maple tree", e cila pozicionohet si një zëvendësim më efikas për strukturën "red-black tree". Maple tree është një variant i B-tree, që mbështet indeksimin sipas diapazoneve të vlerave dhe është projektuar për përdorimin eficient të caches. procesorëve modernë.
- Në mmap janë implementuar bllokime në nivelin e VMA-ve individuale (Virtual Memory Area), duke lejuar rritjen e performancës së aplikacioneve multitread.
- Shtuar struktura e të dhënave ptdesc, që optimizon punën me tabelat e faqes së memories duke ndarë strukturat me metadathë dhe të dhënat për faqet e memories.
Burimi: opennet.ru
