4 Febbraio 2022

Miglioramento delle prestazioni di NGINX con TLS del kernel e SSL_sendfile( )

Spostare l’implementazione crittografica da user space a kernel space.

NGINX Kernel TLS

Transport Layer Security (TLS) è un protocollo di crittografia estremamente popolare. L’implementazione di TLS nel kernel (kTLS) migliora le prestazioni riducendo significativamente la necessità di operazioni di copia tra lo spazio utente e il kernel.

La combinazione di kTLS e sendfile()significa che i dati vengono crittografati direttamente nello spazio del kernel, prima di essere passati allo stack di rete per la trasmissione. Ciò elimina la necessità di copiare i dati nello spazio utente per essere crittografati dalle librerie TLS e quindi di nuovo nello spazio del kernel per la trasmissione. kTLS consente anche l’offload dell’elaborazione TLS sull’hardware, incluso l’ offload dell’elaborazione crittografica simmetrica TLS sui dispositivi di rete .

I moderni kernel Linux e FreeBSD supportano l’offload di TLS nel kernel, e ora lo fa anche NGINX Open Source! NGINX 1.21.4 introduce il supporto per kTLS quando servono file statici con SSL_sendfile(), che può migliorare enormemente le prestazioni. Come descritto di seguito, sia il kernel che OpenSSL devono essere compilati con kTLS affinché NGINX possa utilizzare SSL_sendfile().

In questo blog descriviamo in dettaglio quale sistema operativo e versioni di OpenSSL supportano kTLS e mostriamo come costruire e configurare il kernel e NGINX per kTLS. Per darti un’idea del miglioramento delle prestazioni che puoi aspettarti da kTLS, condividiamo anche le specifiche ei risultati dei nostri test su FreeBSD e Ubuntu.

Nota: le implementazioni di kTLS sono piuttosto nuove e si evolvono rapidamente. Questo blog descrive il supporto per kTLS a partire da novembre 2021, ma tieni d’occhio gli annunci su nginx.org e il blog NGINX sulle modifiche alle informazioni e alle istruzioni fornite qui.

Requisiti generali

  • Sistema operativo – Uno dei seguenti:
    • FreeBSD 13.0+. A partire da novembre 2021, FreeBSD 13.0+ è l’unico sistema operativo che supporta kTLS in NGINX senza una build manuale di NGINX per incorporare OpenSSL 3.0.0+. Vedi Abilitare NGINX con kTLS su FreeBSD .
    • Una distribuzione Linux basata sul kernel Linux versione 4.17 o successiva, anche se consigliamo di utilizzare quelle basate sulla versione 5.2 o successiva, quando possibile. (Il supporto kTLS è effettivamente disponibile nella versione 4.13, ma OpenSSL 3.0.0 richiede la versione dell’intestazione del kernel 4.17 o successiva.)
  • OpenSSL – Versione 3.0.0 o successiva
  • NGINX – Versione 1.21.4 o successive

Miglioramento delle prestazioni con kTLS

Quando si servono file statici in condizioni di carico elevato, SSL_sendfile()è possibile aumentare la velocità effettiva fino a 2 volte rispetto al TLS dello spazio utente, ma la dimensione dell’aumento delle prestazioni dipende in modo significativo da vari fattori (prestazioni del disco, carico del sistema, ecc.). È anche possibile ridurre l’utilizzo della CPU se la scheda di rete supporta l’offload TLS.

Riepilogo

NGINX 1.21.4 introduce il supporto per kTLS quando servono file statici con SSL_sendfile(). I nostri test mostrano che le prestazioni migliorano tra l’8% e il 29%, a seconda del sistema operativo.

 

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Facebook, Inc. detiene i diritti su Facebook®; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Questo sito non è affiliato, sponsorizzato, o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello Europeo da MANAGED SERVER SRL Via Enzo Ferrari, 9 62012 Civitanova Marche (MC) Italia.

Torna in alto