Компания Oracle ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ядро Unbreakable Enterprise Kernel 8

Компания Oracle прСдставила ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ выпуск Unbreakable Enterprise Kernel 8 (UEK R8), Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ядра Linux, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ для использования Π² дистрибутивС Oracle Linux Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ с ядром ΠΈΠ· Red Hat Enterprise Linux. Π―Π΄Ρ€ΠΎ доступно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ x86_64 ΠΈ ARM64 (aarch64). Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ядра, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·Π±ΠΈΠ²ΠΊΡƒ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‡ΠΈ, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Oracle.

ΠŸΠ°ΠΊΠ΅Ρ‚ Unbreakable Enterprise Kernel 8 основан Π½Π° ядрС Linux 6.12 (выпуск UEK R7 базировался Π½Π° ядрС 5.4, Π° Π² Π±Π΅Ρ‚Π°-вСрсии RHEL 10 ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»ΠΎΡΡŒ ядро 6.11), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΌΠΈ возмоТностями, оптимизациями ΠΈ исправлСниями, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² RHEL, ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм ΠΈ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Oracle. УстановочныС ΠΈ src-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с ядром UEK R8 ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ для Oracle Linux 9.5 (Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… прСпятствий ΠΏΠΎ использованию Π΄Π°Π½Π½ΠΎΠ³ΠΎ ядра Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… вСрсиях RHEL, CentOS, Alma Linux ΠΈ Rocky Linux).

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° Unbreakable Enterprise Kernel 8:

  • ИзмСнСно Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ядра UEK Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. ΠœΠΎΠ΄ΡƒΠ»ΠΈ ядра ΠΎΡ‚Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° ядра ΠΈ вынСсСны Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, поставляСмыС Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…: kernel-uek-modules-core (Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ), kernel-uek-modules (для сСрвСров), kernel-uek-modules-desktop, kernel-uek-modules-extra-netfilter, kernel-uek-modules-usb ΠΈ kernel-uek-modules-wireless. Π‘ΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ вынСсСны ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° kernel-uek-core Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ kernel-uek-tools. Π€Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ со списком Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½Π½Ρ‹Ρ… для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ‹ ΠΈΠ· ‘blacklist’ Π² ‘denylist’ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρ‹ ΠΏΠΎ использованию инклюзивной Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
  • Для систСм ARM Ampere, примСняСмых Π² Oracle Cloud, сформирована ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ сборка ядра kernel-uek64k, Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ страниц памяти Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ с 4 Π΄ΠΎ 64 ΠšΠ‘.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° прСдоставляСмой Π² Intel SGX2 (Software Guard Extensions) Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° EDMM (Enclave Dynamic Memory Management), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ доступом ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ страницам памяти Π°Π½ΠΊΠ»Π°Π²Π° ΠΈ динамичСски Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ страницы памяти для Π°Π½ΠΊΠ»Π°Π²Π°.
  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Intel QAT с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ устройств Intel Quick Assist Technology (QAT) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 4 поколСния процСссоров Intel Xeon.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° систСма выявлСния расщСплённых Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ («split-lock»), Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ доступС ΠΊ Π½Π΅Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π² памяти ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠΉ инструкции Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ Π΄Π²Π΅ Π»ΠΈΠ½ΠΈΠΈ кСша CPU. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ приводят ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (Π½Π° 1000 Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ атомарная опСрация с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ Π² ΠΎΠ΄Π½Ρƒ линию кСша).
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ уязвимости Retbleed Π² CPU Intel ΠΈ AMD, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ отслСТиваниС Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Ρ‡Ρ‚ΠΎ Π½Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΊΠ°ΠΊ Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Retbleed.
  • На систСмах x86 обСспСчСна одноврСмСнная Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹Ρ… ядСр CPU, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ядра Π½Π° систСмах с большим количСством ядСр.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ строки ядра «ia32_emulation», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π½Π° стадии Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ эмуляции 32-разрядного Ρ€Π΅ΠΆΠΈΠΌΠ° Π² ядрах, собранных для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86-64.
  • По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ вмСсто CFS (Completely Fair Scheduler) задСйствован ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π·Π°Π΄Π°Ρ‡ EEVDF (Earliest Eligible Virtual Deadline First). ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ процСсса для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ выполнСния Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ процСссы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π΄ΠΎΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ процСссорных рСсурсов ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ нСзаслуТСнно ΠΌΠ½ΠΎΠ³ΠΎ процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС форсируСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° управлСния процСссу, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, откладываСтся. Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ CFS использовал для опрСдСлСния процСссов, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ внимания, эвристику ΠΈ Ρ‚ΠΎΠ½ΠΊΠΈΠ΅ настройки, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ отслСТиваСт ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ явно ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ½ΠΊΠΎΠΉ настройки. EEVDF ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρƒ CFS Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
  • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° поставка систСмы динамичСской ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ DTrace 2.0, которая ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° Π½Π° использованиС подсистСмы ядра eBPF. DTrace 2.0 Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ… eBPF, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Ρ€Ρ… eBPF Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² Linux инструмСнты трассировки.
  • Π’ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π΅ KVM Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ 4096 Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… CPU (VCPU).
  • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ использованиС KTLS, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра.
  • ОбновлСна рСализация Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° псСвдослучайных чисСл RDRAND, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ устройства /dev/random, которая ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° Π½Π° использованиС Ρ…Π΅Ρˆ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ BLAKE2s вмСсто SHA1 для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ смСшивания энтропии. ИзмСнСниС ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° псСвдослучайных чисСл. Для ускорСния получСния случайных чисСл Ρ‡Π΅Ρ€Π΅Π· систСмный Π²Ρ‹Π·ΠΎΠ² getrandom() задСйствован ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ vDSO (virtual dynamic shared object), пСрСносящий ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ систСмного Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠ· ядра Π² пространство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ контСкста.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ BIG TCP, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ TCP-ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΄ΠΎ 4Π“Π‘ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ высокоскоростных Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… сСтСй Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ². ПодобноС ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΡ€ΠΈ 16-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ поля Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ достигаСтся Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ «jumbo»-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² IP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выставляСтся Π² 0, Π° фактичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ пСрСдаётся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ 32-разрядном ΠΏΠΎΠ»Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Ρ‘Π½Π½ΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅.
  • Для сСтСвых сокСтов Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° опция SO_RESERVE_MEM, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для сокСта ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΡ‘ΠΌ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всСгда останСтся доступным для сокСта ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΡŠΡΡ‚. ИспользованиС Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π° счёт сокращСния Π² сСтСвом стСкС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ выдСлСния ΠΈ возвращСния памяти, особСнно ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ условий Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти Π² систСмС.
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° оптимизация ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² fq (Fair Queuing), позволившая ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π½Π° 5% ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ… Π² тСстС tcp_rr (TCP Request/Response) ΠΈ Π½Π° 13% ΠΏΡ€ΠΈ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ UDP-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° рСорганизация сСтСвых структур ядра для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… процСссором, позволившая ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ TCP-стСка Π½Π° систСмах, ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… большоС число ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… запросов.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ASMLib 3 для автоматичСского управлСния Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ Π² Π‘Π£Π‘Π” Oracle.
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ бСзопасности ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° асинхронного Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° io_uring. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ основанныС Π½Π° io_uring ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ для Π€Π‘ XFS ΠΈ Ext4, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ прямой записи Π² Ρ„Π°ΠΉΠ» Π² нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Btrfs. Для устройств с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ trim/discard Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ опция монтирования «discard=async», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сразу для всСх Π€Π‘ Π² асинхронном Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ получСния сТатых Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° записи Π±Π»ΠΎΠΊΠ°ΠΌΠΈ большС 64 ΠšΠ‘. Π£ΠΏΡ€ΠΎΡ‰Ρ‘Π½ ΡƒΡ‡Ρ‘Ρ‚ ΠΊΠ²ΠΎΡ‚. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° монтирования ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… устройств. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ записи Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ NOCOW (пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ возросла Π½Π° 9%). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ монтирования «ignoremetacsums» ΠΈ «ignoresuperflags» для игнорирования Π½Π΅Π²Π΅Ρ€Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„Π»Π°Π³ΠΎΠ² супСрблока. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ устройств, балансировкС ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π±Π»ΠΎΠΊΠΎΠ² Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.
  • Π’ Π€Π‘ XFS Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ использованиС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π±Π»ΠΎΠΊΠ°, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ страницы памяти. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ большиС счётчики экстСнтов для ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… дисков. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠΉ фиксации (commit) содСрТимого Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ рСализация ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ (fsck) ΠΈ восстановлСния Π€Π‘ Π² online-Ρ€Π΅ΠΆΠΈΠΌΠ΅.
  • Π’ NFS Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ READ_PLUS, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π² спСцификации NFS 4.2 ΠΈ примСняСмой для Π±ΠΎΠ»Π΅Π΅ эффСктивного чтСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ², содСрТащих пустоты.
  • БистСма управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° Π½Π° использованиС структуры Π΄Π°Π½Π½Ρ‹Ρ… folios (Ρ„ΠΎΠ»ΠΈΠ°Π½Ρ‚Ρ‹ страниц памяти). Π€ΠΎΠ»ΠΈΠ°Π½Ρ‚Ρ‹ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹Π΅ страницы памяти (compound pages), Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ сСмантикой ΠΈ Π±ΠΎΠ»Π΅Π΅ понятной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.
  • Для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° памяти задСйствована структура Π΄Π°Π½Π½Ρ‹Ρ… «maple tree», которая позиционируСтся ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ эффСктивная Π·Π°ΠΌΠ΅Π½Π° структурС «red-black tree». Maple tree прСдставляСт собой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ B-tree, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ спроСктированный для эффСктивного использования кэша соврСмСнных процСссоров.
  • Π’ mmap Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… VMA (Virtual Memory Area), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° структура Π΄Π°Π½Π½Ρ‹Ρ… ptdesc, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ страниц памяти Π·Π° счёт раздСлСния структур с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для страниц памяти.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ