News

CloudLinux: CRIU snapshots speed up Node.js restarts after idle

Beta for cPanel on CloudLinux: Passenger resumes from a snapshot instead of a cold start, saving 15–60% on first request after idle.

UptimeMag editorial team · 5 November 2026 · 2 min read

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

CloudLinux has beta-released a feature that cuts the response time for the first visitor when a Node.js application wakes up after a period of inactivity. It applies to cPanel servers running CloudLinux 7, 8, 9 and 10 that use Node.js Selector with Phusion Passenger under Apache.

The problem it solves

Node.js Selector manages these applications via Phusion Passenger, an application server that stops an application that hasn't been visited for a while and restarts it on the next request. Until now, every restart was a full cold start of Node.js. With the new feature, Passenger restores a saved copy of the just-booted process and then loads the application as usual.

In CloudLinux's internal testing, the gain ranges from 15% to 60% on the first request time after inactivity shutdown, depending on how much work the application does during startup. This is a figure claimed by the vendor, not measured by our lab.

How it works

On first startup with the feature enabled, Passenger pauses the new Node.js process just before it loads the application code and saves the frozen process to disk: this is the snapshot. When the application has been stopped due to inactivity and a request arrives, Passenger restores the snapshot instead of launching a new Node.js process. The app code is loaded after the restore, so code changes go live just as they would without snapshots.

The underlying technology is CRIU (Checkpoint/Restore In Userspace), which CloudLinux already uses for PHP in mod_lsapi. Bringing it to Node.js required changes to CloudLinux's CRIU build to restore Node.js multi-threaded processes inside CageFS. CRIU support for PHP in mod_lsapi is not new: CloudLinux introduced it in the mod_lsapi PRO official changelog as early as 2021.

Requirements and activation

Each snapshot takes up roughly 14 MB in /var/cache/passenger-criu, a root-only directory outside account quotas and backups. Daily cleanup removes snapshots unused for 30 days, but there's no cap on total space used.

To enable it you need ea-apache24-mod-passenger 6.2.1-1.cloudlinux.3 or later (CloudLinux 9 and 10) or ea-ruby27-mod_passenger 6.2.1-1.cloudlinux.2 or later (CloudLinux 7 and 8), plus criu-lve 4.2-6 or later (3.13-12 on CloudLinux 7), from the beta repositories cl-ea4-testing and cloudlinux-updates-testing. The directive is PassengerCriuEnabled on, configurable per server or per application, also in .htaccess. passenger-status shows a line like CRIU: 4 restored, 1 fell back (no image 1).

It is not compatible with Passenger on NGINX, Standalone or LiteSpeed. CloudLinux is soliciting beta feedback via the module linked to the official post.

Written with the help of artificial intelligence and checked by the editors (EU AI Act, art. 50).