News

CloudLinux: snapshot CRIU per Node.js, riavvii più veloci dopo l'inattività

Beta per cPanel su CloudLinux: Passenger riparte da uno snapshot invece di un cold start, -15/-60% sul primo request dopo l'idle.

Redazione UptimeMag · 5 novembre 2026 · 2 minuti di lettura

CloudLinux: snapshot CRIU per Node.js, riavvii più veloci dopo l'inattività

CloudLinux ha messo in beta una funzione che accorcia il tempo di risposta del primo visitatore quando un'applicazione Node.js viene svegliata dopo un periodo di inattività. Riguarda i server cPanel con CloudLinux 7, 8, 9 e 10 che usano Node.js Selector con Phusion Passenger sotto Apache.

Il problema che risolve

Node.js Selector gestisce queste applicazioni tramite Phusion Passenger, un application server che ferma un'applicazione non visitata da un po' e la riavvia alla richiesta successiva. Finora ogni riavvio era un cold start completo di Node.js. Con la nuova funzione, Passenger ripristina una copia salvata del processo appena avviato, poi carica l'applicazione come al solito.

Nei test interni di CloudLinux il guadagno va dal 15% al 60% sul tempo della prima richiesta dopo lo stop per inattività, a seconda di quanto lavoro fa l'applicazione in fase di avvio. È un dato dichiarato dal produttore, non misurato dal nostro laboratorio.

Come funziona

Alla prima partenza con la funzione attiva, Passenger mette in pausa il nuovo processo Node.js subito prima che carichi il codice dell'applicazione e salva su disco il processo congelato: è lo snapshot. Quando l'applicazione è stata fermata per inattività e arriva una richiesta, Passenger ripristina lo snapshot invece di avviare un nuovo processo Node.js. Il codice dell'app viene caricato dopo il ripristino, quindi le modifiche al codice vanno online come senza snapshot.

La tecnologia sottostante è CRIU (Checkpoint/Restore In Userspace), che CloudLinux già usa per PHP in mod_lsapi. Portarla a Node.js ha richiesto modifiche alla build CRIU di CloudLinux, per ripristinare i processi multi-thread di Node.js dentro CageFS. Il supporto CRIU per PHP in mod_lsapi non è una novità: CloudLinux lo ha introdotto nel changelog ufficiale di mod_lsapi PRO già nel 2021.

Requisiti e attivazione

Ogni snapshot occupa circa 14 MB in /var/cache/passenger-criu, directory root-only, fuori da quota account e backup. Una pulizia giornaliera rimuove gli snapshot inutilizzati da 30 giorni, ma non c'è un tetto al totale occupato.

Per attivarla servono ea-apache24-mod-passenger 6.2.1-1.cloudlinux.3 o successivo (CloudLinux 9 e 10) oppure ea-ruby27-mod_passenger 6.2.1-1.cloudlinux.2 o successivo (CloudLinux 7 e 8), più criu-lve 4.2-6 o successivo (3.13-12 su CloudLinux 7), dai repository beta cl-ea4-testing e cloudlinux-updates-testing. La direttiva è PassengerCriuEnabled on, impostabile per server o per singola app anche in .htaccess. passenger-status mostra una riga come CRIU: 4 restored, 1 fell back (no image 1).

Non è compatibile con Passenger su NGINX, Standalone o LiteSpeed. CloudLinux chiede feedback sulla beta tramite il modulo collegato al post ufficiale.

Testo redatto con il supporto dell'intelligenza artificiale e verificato dalla redazione (AI Act, art. 50).