Oracle lance Unbreakable Enterprise Kernel 8

Oracle a publié la première version stable d'Unbreakable Enterprise Kernel 8 (UEK R8), une variante du noyau Linux en cours de développement pour être utilisée dans la distribution Oracle Linux comme alternative au package de noyau standard de Red Hat Enterprise Linux. Le noyau est uniquement disponible pour les architectures x86_64 et ARM64 (aarch64). Le code source du noyau, y compris la répartition en correctifs individuels, est publié dans le référentiel Git public d'Oracle.

Unbreakable Enterprise Kernel 8 est basé sur le noyau Linux 6.12 (UEK R7 était basé sur le noyau 5.4 et RHEL 10 beta était basé sur le noyau 6.11), qui est amélioré avec de nouvelles fonctionnalités, optimisations et correctifs, testé pour la compatibilité avec la plupart des applications exécutées sur RHEL et optimisé pour une utilisation avec les logiciels et le matériel d'entreprise Oracle. Les packages d'installation et src avec le noyau UEK R8 sont préparés pour Oracle Linux 9.5 (il n'y a aucun obstacle à l'utilisation de ce noyau dans des versions similaires de RHEL, CentOS, Alma Linux et Rocky Linux).

Principales nouvelles fonctionnalités d'Unbreakable Enterprise Kernel 8 :

  • La répartition des composants du noyau UEK en paquets distincts a été modifiée. Les modules du noyau ont été séparés de l'image du noyau de base et placés dans des collections fournies dans des paquets séparés : kernel-uek-modules-core (le minimum de base), kernel-uek-modules (pour les serveursLes modules kernel-uek-modules-desktop, kernel-uek-modules-extra-netfilter, kernel-uek-modules-usb et kernel-uek-modules-wireless ont été déplacés du paquet principal kernel-uek-core vers un paquet distinct, kernel-uek-tools. Les fichiers de configuration contenant la liste des modules interdits ont été renommés « denylist » au lieu de « blacklist », dans le cadre d'une démarche visant à utiliser une terminologie plus inclusive.
  • Pour les systèmes ARM Ampere utilisés dans Oracle Cloud, une version de noyau distincte, kernel-uek64k, a été créée, dans laquelle la taille de la page de mémoire de base a été augmentée de 4 à 64 Ko.
  • Prise en charge ajoutée pour l'implémentation matérielle du mécanisme EDMM (Enclave Dynamic Memory Management) fourni par Intel SGX2 (Software Guard Extensions), qui vous permet de contrôler l'accès aux pages de mémoire d'enclave individuelles et d'ajouter/supprimer dynamiquement des pages de mémoire pour l'enclave.
  • Le pilote Intel QAT avec prise en charge des périphériques Intel Quick Assist Technology (QAT) a été mis à jour pour prendre en charge les processeurs Intel Xeon de 4e génération.
  • Ajout d'un système de détection des verrous fractionnés qui se produisent lors de l'accès à des données non alignées en mémoire en raison du fait que lors de l'exécution d'une instruction atomique, les données traversent deux lignes du cache du processeur. De tels verrous entraînent une baisse significative des performances (1000 XNUMX cycles plus lents qu’une opération atomique sur des données qui tombent dans une seule ligne de cache).
  • Une nouvelle méthode d'atténuation de la vulnérabilité Retbleed dans les processeurs Intel et AMD a été implémentée. Elle utilise le suivi de la profondeur des appels, ce qui ne ralentit pas les performances autant que l'atténuation Retbleed précédemment présente.
  • Sur les systèmes x86, les cœurs de processeur secondaires peuvent être activés simultanément, ce qui réduit le temps de démarrage du noyau sur les systèmes dotés de nombreux cœurs.
  • Ajout du paramètre de ligne de commande du noyau « ia32_emulation » pour activer ou désactiver la prise en charge de l'émulation 32 bits dans les noyaux créés pour l'architecture x86-64 au démarrage.
  • Par défaut, le planificateur de tâches EEVDF (Earliest Eligible Virtual Deadline First) est utilisé à la place du CFS (Completely Fair Scheduler). Lors du choix du prochain processus vers lequel transférer l'exécution, le nouveau planificateur prend en compte les processus qui ont reçu des ressources CPU insuffisantes ou qui ont reçu une quantité injuste de temps CPU. Dans le premier cas, le transfert du contrôle au processus est forcé, tandis que dans le second, au contraire, il est reporté. L'ancien planificateur CFS utilisait des heuristiques et des réglages fins pour déterminer quels processus nécessitaient une attention particulière, tandis que le nouveau planificateur les suit de manière plus explicite et ne nécessite pas de réglages fins. EEVDF réduira la latence dans les tâches que CFS avait du mal à planifier.
  • La livraison du système de débogage dynamique DTrace 2.0 s'est poursuivie, qui a été basculée vers l'utilisation du sous-système du noyau eBPF. DTrace 2.0 s'exécute sur eBPF, de la même manière que les outils de traçage Linux existants fonctionnent sur eBPF.
  • L'hyperviseur KVM autorise jusqu'à 4096 CPU virtuels (VCPU).
  • Utilisation continue de KTLS, une implémentation au niveau du noyau du protocole TLS.
  • L'implémentation du générateur de nombres pseudo-aléatoires RDRAND responsable du périphérique /dev/random a été mise à jour pour utiliser la fonction de hachage BLAKE2 au lieu de SHA1 pour les opérations de mélange d'entropie. Le changement a amélioré la sécurité du générateur de nombres pseudo-aléatoires. Pour accélérer la génération de nombres aléatoires via l'appel système getrandom(), le mécanisme vDSO (objet partagé dynamique virtuel) est utilisé, qui déplace le gestionnaire d'appels système du noyau vers l'espace utilisateur afin d'éviter les changements de contexte.
  • Ajout de la prise en charge de l'extension BIG TCP, qui permet d'augmenter la taille maximale du paquet TCP à 4 Go pour optimiser le fonctionnement des réseaux de centres de données internes à haut débit. Cette augmentation de la taille des paquets avec une taille de champ d'en-tête de 16 bits est obtenue grâce à la mise en œuvre de paquets « jumbo », dont la taille dans l'en-tête IP est définie sur 0, et la taille réelle est transmise dans un champ 32 bits séparé dans un en-tête joint séparé.
  • Pour les sockets réseau, l'option SO_RESERVE_MEM est implémentée, avec laquelle vous pouvez réserver une certaine quantité de mémoire pour un socket, qui restera toujours disponible pour le socket et ne sera pas supprimée. L'utilisation de cette option vous permet d'obtenir des performances accrues en réduisant le nombre d'opérations d'allocation de mémoire et de retour dans la pile réseau, en particulier lorsque des conditions de faible mémoire se produisent dans le système.
  • Les performances du planificateur de paquets fq (Fair Queuing) ont été optimisées, ce qui a augmenté le débit de 5 % sous de lourdes charges dans le test tcp_rr (TCP Request/Response) et de 13 % sous un flux illimité de paquets UDP.
  • Les structures du réseau du noyau ont été réorganisées pour améliorer l'efficacité de la mise en cache des données du processeur, ce qui a augmenté les performances de la pile TCP sur les systèmes traitant un grand nombre de requêtes parallèles.
  • Ajout de la prise en charge de la bibliothèque ASMLib 3 pour la gestion automatique du stockage dans Oracle DBMS.
  • Des travaux ont été menés pour optimiser les performances et améliorer la sécurité du mécanisme d'entrée/sortie asynchrone io_uring. Ajout d'optimisations basées sur io_uring pour XFS et Ext4 FS, permettant l'écriture directe parallèle dans un fichier dans plusieurs threads.
  • Prise en charge améliorée du système de fichiers Btrfs. Pour les périphériques avec prise en charge de trim/discard, l'option de montage « discard=async » est activée par défaut, ce qui permet d'effectuer ces opérations pour tous les FS à la fois en mode asynchrone. Ajout de la prise en charge de l'envoi et de la réception de données compressées sans transformations. Ajout de la prise en charge de l'écriture dans des blocs de plus de 64 Ko. La comptabilité des quotas a été simplifiée. Prise en charge implémentée pour le montage de périphériques clonés. Vérifications d'écriture améliorées en mode NOCOW (débit augmenté de 9 %). Ajout des options de montage « ignoremetacsums » et « ignoresuperflags » pour ignorer les sommes de contrôle des métadonnées non valides et les indicateurs de superbloc. Les tâches de suppression des périphériques, d'équilibrage et de redistribution des blocs sont effectuées en mode parallèle.
  • XFS permet l'utilisation d'une taille de bloc supérieure à la taille de la page mémoire. Ajout de compteurs d'étendue importants pour les disques virtuels très volumineux. Mode de validation atomique ajouté pour le contenu du fichier. Une implémentation expérimentale de la vérification (fsck) et de la restauration du système de fichiers en mode en ligne est proposée.
  • NFS permet par défaut l'utilisation de l'opération READ_PLUS, définie dans la spécification NFS 4.2, qui permet de lire plus efficacement les données des fichiers contenant des espaces vides.
  • Le système de gestion de la mémoire a été basculé vers l'utilisation de la structure de données folios (folios de pages mémoire). Les folios sont similaires aux pages composées, mais ont une sémantique améliorée et une organisation du travail plus claire.
  • Les opérations de mappage mémoire utilisent la structure de données de l'arbre Maple, considérée comme une alternative plus efficace à la structure d'arbre rouge-noir. L'arbre Maple est une variante de l'arbre B qui prend en charge l'indexation par plage et est conçue pour une utilisation optimale du cache. processeurs modernes.
  • mmap implémente des verrous au niveau de chaque VMA (Virtual Memory Area), ce qui permet d'augmenter les performances des applications multithread.
  • Ajout de la structure de données ptdesc, qui optimise le travail avec les tables de pages mémoire en séparant les structures avec des métadonnées et des données pour les pages mémoire.

Source: opennet.ru

Ajouter un commentaire