
Trả lời nhanh: Cần phân biệt hai giai đoạn. Lúc build tiêu tốn nhiều RAM và CPU, dự án nhiều trang tĩnh có thể cần 4 tới 8GB RAM chỉ để build xong. Lúc chạy thì nhẹ hơn nhiều, một ứng dụng vừa chạy tốt với 2GB. Vì vậy cấu hình phải chọn theo lúc build, hoặc tách máy build riêng. Ổ NVMe giúp nhiều nhất ở khâu cài thư viện và ghi kết quả build, hai khâu đọc ghi hàng chục nghìn file nhỏ.
Ứng dụng chạy êm với 2GB RAM, nhưng mỗi lần build là máy đơ rồi tiến trình bị tắt. Đó là vì bạn chọn cấu hình theo lúc chạy chứ không theo lúc build.
- Lúc build ngốn tài nguyên gấp nhiều lần lúc chạy.
- Chọn cấu hình theo lúc build, hoặc tách máy build riêng.
- Nhiều trang tĩnh nghĩa là build lâu và tốn RAM hơn.
- Ổ NVMe rút ngắn rõ nhất ở khâu cài thư viện và ghi kết quả build.
Hai giai đoạn, hai nhu cầu khác nhau
| Giai đoạn | RAM | CPU | Ổ đĩa |
|---|---|---|---|
| Cài thư viện | vừa | thấp | rất nặng |
| Build | rất nặng | nặng | nặng |
| Chạy phục vụ khách | nhẹ tới vừa | vừa | nhẹ |
Chính vì lệch pha này mà nhiều người chọn sai. Cách xử lý gọn nhất: build ở nơi khác rồi chỉ đưa kết quả lên máy chạy thật.
Cấu hình gợi ý
| Quy mô | RAM | Nhân | Ổ |
|---|---|---|---|
| Landing, blog dưới 100 trang | 2 tới 4GB | 2 | NVMe 40GB |
| Ứng dụng vừa, vài trăm trang | 4 tới 8GB | 2 tới 4 | NVMe 80GB |
| Nhiều nghìn trang tĩnh | 8 tới 16GB | 4 trở lên | NVMe 80GB trở lên |
Khi build bị tắt giữa chừng
Triệu chứng: build chạy được một lúc rồi dừng, thông báo lỗi không rõ ràng hoặc bị kết thúc đột ngột. Kiểm tra:
dmesg | grep -i "killed process"Thấy dòng nào nghĩa là hệ thống đã tắt tiến trình vì hết RAM. Ba cách xử lý theo thứ tự ưu tiên: tăng RAM, bật swap làm đệm, hoặc giảm số tiến trình build chạy song song.
Giảm thời gian build
- Giữ bộ nhớ đệm build giữa các lần chạy, đây là thứ hiệu quả nhất.
- Chỉ cài thư viện cần cho môi trường chạy thật.
- Cân nhắc dựng trang theo yêu cầu thay vì dựng sẵn toàn bộ khi số trang quá lớn.
- Đặt thư mục làm việc trên ổ nhanh nhất.
- Dọn kho bộ nhớ đệm định kỳ, phình to thì chính nó làm chậm.
Cấu hình theo quy mô, và vì sao dựng khác chạy
| Quy mô dự án | Bộ nhớ cần khi dựng | Bộ nhớ cần khi chạy | Ghi chú |
|---|---|---|---|
| Trang giới thiệu, dưới 20 trang | 2 GB | 512 MB | Dựng là phần nặng hơn hẳn |
| Trang tin, 100 tới 500 trang | 4 GB | 1 GB | Dựng trước toàn bộ trang tốn bộ nhớ |
| Thương mại điện tử, hàng nghìn trang | 8 GB | 2 GB | Cân nhắc dựng dần thay vì dựng hết |
| Ứng dụng lớn, nhiều thư viện | 8 tới 16 GB | 2 GB | Dựng ở nơi khác rồi đẩy kết quả sang |
Điểm mấu chốt: bước dựng cần nhiều bộ nhớ hơn bước chạy vài lần. Đây là lý do rất nhiều người thuê máy vừa đủ để chạy rồi phát hiện không dựng nổi.
Khi bước dựng bị tắt giữa chừng
# 1. Xac nhan dung la het bo nho dmesg | tail -30 | grep -i "out of memory\|killed process" # 2. Cach nhanh nhat: them vung nho tam fallocate -l 4G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile echo '/swapfile none swap sw 0 0' >> /etc/fstab # 3. Gioi han bo nho cho tien trinh dung export NODE_OPTIONS="--max-old-space-size=3072" # 4. Theo doi trong luc dung watch -n2 'free -h' # 5. Cach ben hon: dung o may khac roi day ket qua sang # May chay chi can du de phuc vu, khong can du de dung
Giảm thời gian dựng
- Giữ lại bộ nhớ đệm giữa các lần dựng. Đây là thay đổi cho hiệu quả lớn nhất và thường bị bỏ qua khi dựng trong container.
- Chỉ dựng lại phần thay đổi thay vì dựng lại toàn bộ, với dự án có nhiều trang tĩnh.
- Ổ NVMe tạo khác biệt rõ ở bước này, vì dựng là thao tác đọc ghi hàng chục nghìn tệp nhỏ.
- Bỏ bớt thư viện không dùng. Rà lại danh sách phụ thuộc mỗi vài tháng, thường có thứ để bỏ.
- Đừng dựng trên máy đang phục vụ khách nếu máy nhỏ: bước dựng ăn hết tài nguyên và làm trang chậm hẳn trong lúc đó.
Câu hỏi thường gặp
Next.js cần bao nhiêu RAM để build?
Dự án vừa khoảng 4GB, dự án nhiều nghìn trang tĩnh có thể cần 8GB trở lên. Lúc chạy thì nhẹ hơn nhiều.
Vì sao build bị tắt giữa chừng?
Gần như luôn là hết RAM. Kiểm tra bằng lệnh dmesg tìm dòng killed process, rồi tăng RAM hoặc bật swap.
Có nên build trên máy chạy thật không?
Không nên nếu máy đang phục vụ khách, vì build ngốn tài nguyên và làm chậm website. Tách máy build riêng hoặc build vào giờ vắng.
Ổ NVMe rút ngắn build bao nhiêu?
Rõ nhất ở khâu cài thư viện và ghi kết quả, hai khâu xử lý hàng chục nghìn file nhỏ. Phần biên dịch phụ thuộc CPU nên ít đổi.
Bài viết liên quan
- OpenClaw + Discord: build bot AI có ngữ cảnh nhớ cho community
- Setup Gitea + Drone CI trên VPS: self-host CI/CD đầy đủ
- Tối ưu Next.js production trên VPS: cache, ISR và ổ đĩa
- OpenClaw là gì? Nền tảng AI Agent mã nguồn mở đáng chú ý cho cá nhân và doanh nghiệp
- SSO cho startup nội bộ: Authelia self-host trên VPS
- Tailscale không kết nối được: chẩn đoán direct, relay, DNS



