Cách PM2 giúp server Node.js của bạn "bất tử" và chạy mượt 24/7

Lý Hữu Trí
Lý Hữu Trí·5 phút đọc·21 tháng 4, 2026
Cách PM2 giúp server Node.js của bạn "bất tử" và chạy mượt 24/7

Đang ngủ ngon lúc 2 giờ sáng thì khách hàng gọi cháy máy vì trang web "bay màu". Bạn lật đật dậy kiểm tra thì hóa ra server Node.js bị lỗi vặt rồi tự thoát từ đời nào. Nếu bạn đã từng trải qua cái cảm giác "đau thương" này thì PM2 chính là vị cứu tinh mà bạn đang tìm kiếm để quản lý ứng dụng của mình chuyên nghiệp hơn.

Trong giới lập trình phía máy chủ (backend), việc giữ cho ứng dụng chạy liên tục là ưu tiên hàng đầu. PM2 không chỉ là một công cụ giúp chạy code, mà nó giống như một người bảo vệ tận tụy, sẵn sàng vực dậy server của bạn ngay khi có biến cố xảy ra.

1. Tự động hồi sinh mỗi khi server "hắt hơi sổ mũi"

Bình thường, khi bạn chạy ứng dụng Node.js bằng lệnh node app.js, chỉ cần một lỗi nhỏ (crash) hoặc bạn lỡ tay tắt cửa sổ dòng lệnh là ứng dụng sẽ dừng lại ngay lập tức. Điều này cực kỳ nguy hiểm khi bạn đưa sản phẩm lên thực tế.

Với PM2, khi ứng dụng gặp lỗi và tự thoát, nó sẽ ngay lập tức được khởi động lại chỉ trong vài mili giây. Người dùng thậm chí còn chưa kịp nhận ra có sự cố thì mọi thứ đã hoạt động bình thường trở lại. Điều này giúp bạn "ngủ ngon" hơn hẳn khi biết rằng hệ thống luôn có cơ chế tự chữa lành.

Mẹo: Bạn có thể cài đặt PM2 cực nhanh qua npm với lệnh npm install pm2 -g để dùng ở bất cứ đâu trên máy tính nhé.

Nhưng khả năng của nó không chỉ dừng lại ở việc "hồi sinh" ứng dụng, mà còn giúp bạn tận dụng tối đa sức mạnh phần cứng nữa đấy.

2. Chế độ Cluster: X-tăng sức mạnh cho CPU

Hầu hết các máy chủ hiện nay đều có nhiều nhân (core), nhưng Node.js mặc định chỉ chạy trên một nhân duy nhất. Điều này giống như bạn có một đội quân nhưng chỉ để một ông làm việc, còn mấy ông khác thì ngồi chơi xơi nước.

Chế độ cụm (Cluster Mode) của PM2 cho phép bạn chạy nhiều bản sao của ứng dụng trên tất cả các nhân CPU có sẵn mà không cần sửa một dòng code nào. Nó tự động phân chia lượng truy cập đến các bản sao này, giúp ứng dụng chịu tải tốt hơn gấp nhiều lần. Bạn có thể tham khảo thêm Cách GitHub Actions để tự động hóa việc đẩy code và khởi động lại PM2 mỗi khi có cập nhật mới.

// Chạy ứng dụng với tối đa số nhân CPU hiện có
pm2 start app.js -i max

Khi đã có sức mạnh, việc tiếp theo là làm sao để biết "sức khỏe" của hệ thống đang ra sao mà không cần phải mò mẫm trong đống file log khô khan.

3. Theo dõi sức khỏe server trong lòng bàn tay

Thay vì phải dùng các câu lệnh kiểm tra tài nguyên hệ thống phức tạp, PM2 cung cấp một giao diện bảng điều khiển (dashboard) cực kỳ trực quan ngay trên màn hình đen (terminal). Bạn có thể thấy ngay ứng dụng đang chiếm bao nhiêu dung lượng bộ nhớ (RAM), CPU đang hoạt động bao nhiêu phần trăm và số lần server đã tự khởi động lại.

Ngoài ra, hệ thống quản lý nhật ký (logs) của nó cũng cực kỳ thông minh. Bạn có thể xem log theo thời gian thực của tất cả các tiến trình cùng một lúc, giúp việc tìm lỗi (debug) nhanh hơn nhiều so với cách làm thủ công. Giống như cách bạn dùng Postman để bắt thóp lỗi giao diện lập trình ứng dụng (API), PM2 giúp bạn kiểm soát toàn bộ dòng chảy dữ liệu trên server.

Để xem bảng điều khiển "xịn xò" này, bạn chỉ cần gõ lệnh pm2 monit là xong.

Mọi thứ nghe có vẻ hoàn hảo, nhưng liệu khi máy chủ vật lý bị khởi động lại (restart server), PM2 có tự chạy lại được không? Câu trả lời nằm ở cơ chế khởi động cùng hệ thống mà bạn nên tìm hiểu ngay sau đây.

Việc làm chủ các công cụ quản lý như PM2 là bước đệm quan trọng để bạn tiến xa hơn trên con đường trở thành một kỹ sư phía máy chủ chuyên nghiệp. Bạn đã bao giờ thắc mắc làm thế nào để kết nối các tiến trình này với một tên miền thực thụ thông qua Nginx chưa?

Tìm hiểu thêm tại tài liệu chính thức của PM2 Documentation.

Khám phá các khóa học thực chiến tại DIA DEMY.

/Thảo luận

Bình luận

0