Khi tìm thuê VPS để chạy website cho doanh nghiệp, câu hỏi đầu tiên mọi người thường đặt ra là: "Website có khoảng 50.000 lượt xem mỗi tháng thì cần thuê gói VPS mấy Core, mấy GB RAM?".
Nhiều nhà cung cấp hosting thường đưa ra các bảng quy đổi rất hấp dẫn kiểu: gói 1 GB RAM chịu được 20.000 truy cập/tháng, gói 2 GB RAM chịu được 50.000 truy cập/tháng. Những con số này rất dễ gây hiểu lầm. Trong thực tế vận hành, số lượt xem tích lũy cả tháng gần như không có nhiều ý nghĩa khi tính toán năng lực máy chủ.
Một website tin tức có 100.000 lượt xem/tháng nhưng bài viết được lưu đệm (cache) tĩnh trên Cloudflare có thể chạy mượt mà trên gói VPS 1 vCPU và 1 GB RAM. Nhưng một website bán hàng cũng có 100.000 lượt xem/tháng, trong đó 80% khách dồn vào 2 tiếng livestream buổi tối để đăng nhập, tìm kiếm sản phẩm và bấm thanh toán thì ngay cả gói 4 vCPU và 8 GB RAM vẫn có thể bị nghẽn nếu không được tối ưu đúng cách.
Chọn cấu hình VPS không bắt đầu từ con số tổng lượt xem trong tháng. Nó bắt đầu từ việc hiểu rõ người dùng làm gì vào giờ cao điểm, ứng dụng tiêu tốn tài nguyên ra sao và thành phần nào sẽ chạm trần đầu tiên.
Bảng cấu hình khởi đầu tham khảo theo từng loại website
Nếu bạn đang chuẩn bị dựng một website mới và chưa có số liệu lịch sử để đo lường, đây là các mốc cấu hình khởi đầu hợp lý để triển khai và chạy thử nghiệm:
| Loại hình website | Cấu hình đề xuất ban đầu | Đặc điểm vận hành cần lưu ý |
|---|---|---|
| Website tĩnh, trang giới thiệu công ty đơn giản | 1 vCPU / 1–2 GB RAM / 25–40 GB SSD | Ít xử lý logic động; phần lớn nội dung có thể cache qua CDN; log hệ thống cần có cơ chế xoay vòng. |
| CMS tin tức, blog doanh nghiệp (WordPress cơ bản) | 2 vCPU / 2–4 GB RAM / 40–60 GB SSD | Database chạy chung trên VPS; cần cài plugin cache (Redis/WP Rocket); theo dõi kỹ các plugin bên thứ ba. |
| Website thương mại điện tử, cổng bán hàng nhỏ | 2–4 vCPU / 4–8 GB RAM / 80–100 GB SSD | Nhiều tác vụ không thể cache (giỏ hàng, thanh toán, tìm kiếm); database đọc ghi liên tục; cần dự phòng tài nguyên cho giờ cao điểm. |
| Cụm nhiều container Docker (App + Database + Worker) | Từ 4 vCPU / 8 GB RAM / từ 100 GB SSD | Cần phân bổ hạn mức bộ nhớ (memory limit) cho từng container để tránh việc một service ngốn hết RAM của cả hệ thống. |
Hãy xem các con số trong bảng trên là điểm xuất phát để cài đặt và thu thập dữ liệu trong vài tuần đầu, không phải là một cam kết tuyệt đối rằng hệ thống sẽ không bao giờ quá tải.
Vì sao không thể chọn cấu hình chỉ dựa vào lượt xem mỗi tháng?
Cùng một con số 100.000 pageview/tháng, tải thực tế đặt lên máy chủ có thể chênh nhau gấp 10 lần vì 4 yếu tố sau:
- Lượng truy cập đồng thời vào giờ cao điểm (Peak Concurrency): 100.000 lượt chia đều suốt 30 ngày chỉ tương đương hơn 2 lượt truy cập mỗi phút — quá nhẹ nhàng. Nhưng nếu 5.000 khách cùng đổ dồn vào xem hàng trong vòng 15 phút, máy chủ sẽ phải xử lý hàng trăm request mỗi giây.
- Tỷ lệ trúng bộ nhớ đệm (Cache Hit Ratio): Một request mở bài viết tin tức đã được Nginx hoặc Cloudflare lưu cache sẽ trả về chỉ trong 20 ms và tốn chưa đầy 0.1% CPU. Ngược lại, một request lọc sản phẩm theo giá và danh mục bắt buộc ứng dụng phải kết nối vào database quét hàng chục nghìn dòng dữ liệu, tiêu tốn cả trăm megabyte RAM và nhiều chu kỳ CPU.
- Các tác vụ chạy ngầm định kỳ (Background Jobs): Lệnh đồng bộ tồn kho từ phần mềm bán hàng, script sao lưu dữ liệu lúc 2h sáng hay việc nén ảnh khi upload có thể nuốt trọn CPU nếu chạy trùng vào lúc khách đang đông.
- Vị trí của cơ sở dữ liệu: Database chạy chung trên cùng một VPS với mã nguồn web hay được tách ra một cụm máy chủ cơ sở dữ liệu riêng biệt.
Tính toán CPU: Đừng chỉ nhìn vào số lượng nhân (vCPU)
CPU là bộ não xử lý các dòng code PHP/Node.js, nén dữ liệu và thực thi các câu lệnh SQL.
Khi chọn CPU, bạn cần lưu ý hai điểm kỹ thuật rất quan trọng:
- Bẫy CPU chia sẻ và cơ chế Burstable (Credit CPU): Trên nhiều dịch vụ VPS giá rẻ hoặc dòng máy ảo T-series của AWS, CPU hoạt động theo cơ chế tích lũy điểm (Credit). Khi máy chủ rảnh rỗi, bạn tích điểm; khi có đợt tăng tải ngắn hạn, máy dùng điểm đó để chạy hết tốc lực. Nhưng nếu website có chiến dịch chạy quảng cáo khiến CPU duy trì 90% liên tục trong 1 tiếng, lượng credit sẽ cạn sạch và nhà cung cấp sẽ tự động bóp nghẹt hiệu năng CPU xuống mức tối thiểu (ví dụ chỉ còn 20%), khiến website bị treo đơ đúng lúc đang đông khách nhất.
- Thời lượng tăng tải: CPU chạm 100% trong 5 giây khi khởi động lại ứng dụng là chuyện bình thường. Nhưng nếu CPU duy trì trên 85% liên tục 15 phút và hàng đợi xử lý bắt đầu ứ đọng, đó mới là tín hiệu bạn cần tối ưu code hoặc nâng cấp gói máy chủ.
Quy trình tìm đúng tiến trình gây nghẽn chip được phân tích tại bài VPS CPU 100%: Cách tìm tiến trình gây tải mà không vội reboot.
Tính toán RAM: Lập bảng phân bổ bộ nhớ cho cả hệ thống
RAM là tài nguyên nhạy cảm nhất trên máy chủ Linux. Nếu CPU bị nghẽn, website chỉ chạy chậm đi; nhưng nếu RAM bị cạn kiệt, hệ điều hành sẽ kích hoạt OOM Killer và thẳng tay tắt mất database hoặc web server, khiến website sập ngay lập tức.
Một sai lầm rất phổ biến là chỉ cộng RAM tối thiểu theo tài liệu của phần mềm. Ví dụ: tài liệu ghi MySQL cần 512 MB, WordPress cần 256 MB, nên chọn gói 1 GB RAM là đủ. Trong thực tế, hệ điều hành Linux cũng cần khoảng 300–400 MB để chạy các tiến trình nền; mỗi worker xử lý request PHP-FPM khi chạy có thể ngốn từ 40 đến 80 MB RAM. Nếu có 20 khách cùng truy cập một lúc, riêng PHP-FPM đã có thể nuốt trọn hơn 1 GB RAM.
Bạn nên lập một bảng phân bổ bộ nhớ (Memory Budget) dự tính:
- Hệ điều hành và agent giám sát: Dành sẵn khoảng 400 MB – 500 MB.
- Cơ sở dữ liệu (MySQL/MariaDB): Phân bổ buffer pool chiếm khoảng 40% – 50% tổng RAM của máy chủ.
- Web Server & Xử lý ứng dụng: Giới hạn số lượng worker tối đa tương ứng với phần RAM còn lại.
- Bộ đệm dự phòng (Headroom): Luôn để dư ít nhất 20%–25% RAM khả dụng (
MemAvailable) để máy chủ không bị rơi vào tình trạng tràn bộ nhớ khi có biến động traffic.
Chi tiết cách theo dõi bộ nhớ khả dụng và cấu hình Swap cứu nguy được hướng dẫn tại bài VPS hết RAM và OOM Killer: Dấu hiệu, kiểm tra và phòng ngừa.
Tính toán Dung lượng Ổ đĩa: Mã nguồn chỉ chiếm một phần rất nhỏ
Nhiều người nghĩ mã nguồn website chỉ nặng 500 MB thì mua gói VPS 20 GB là thừa thãi. Nhưng trên thực tế, ổ đĩa của một máy chủ sản xuất bị lấp đầy bởi những thành phần hoàn toàn khác:
- Hệ điều hành và các gói cài đặt: Chiếm khoảng 4–8 GB.
- Dữ liệu database tăng trưởng: Mỗi tháng database có thể tăng thêm vài trăm megabyte hoặc vài gigabyte đơn hàng và bài viết.
- File upload của người dùng: Ảnh sản phẩm, tài liệu PDF, hóa đơn... là phần phình to nhanh nhất. Với các website có lượng upload lớn, giải pháp tốt nhất là đẩy thẳng file sang dịch vụ Object Storage (như Cloudflare R2 hoặc S3) thay vì lưu trên ổ cứng VPS.
- File Log và Nhật ký nhị phân (Binlogs): Access log của Nginx và binlog của MySQL có thể nuốt trọn 10–20 GB chỉ sau vài tuần nếu không được cấu hình xoay vòng tự động.
- Vùng nhớ tạm cho Sao lưu và Cập nhật: Khi script backup nén database hoặc khi tải image Docker mới về, hệ thống cần một khoảng trống dung lượng ít nhất gấp đôi kích thước dữ liệu hiện tại để thao tác.
Nếu website của bạn đang có 10 GB dữ liệu thật, bạn nên chọn gói ổ đĩa từ 40 GB đến 60 GB để có đủ không gian vận hành an toàn. Hướng dẫn khoanh vùng và dọn dẹp khi ổ đĩa bị đầy có tại bài VPS đầy ổ đĩa: Nguyên nhân, dấu hiệu và cách phòng ngừa.
Khi nào nên nâng cấp gói VPS và khi nào nên tối ưu ứng dụng?
Khi thấy website có dấu hiệu chậm chạp, việc nâng cấp ngay lên gói VPS đắt tiền hơn chưa chắc đã mang lại hiệu quả nếu nguyên nhân thực sự nằm ở mã nguồn ứng dụng hoặc câu truy vấn cơ sở dữ liệu chưa được tối ưu.
- Nên nâng cấp gói VPS ngay khi: Bạn thấy tài nguyên phần cứng thực sự bị bão hòa diện rộng: RAM khả dụng liên tục dưới 15% dù đã tối ưu cấu hình pool, CPU duy trì 90% trong suốt giờ cao điểm dù code đã tối ưu, hoặc dung lượng ổ đĩa sắp cạn kiệt mà không còn dữ liệu rác để xóa.
- Nên tối ưu ứng dụng trước khi chi tiền khi: Website phản hồi chậm nhưng CPU chỉ có 20% và RAM vẫn còn thừa (thủ phạm thường do thiếu index trong database hoặc nghẽn I/O ổ đĩa), website không cài bất kỳ plugin cache nào, hoặc đang có hàng chục plugin rác không dùng đến chạy ngầm.
Bài viết Khi nào nên nâng cấp VPS và khi nào nên tối ưu ứng dụng? sẽ giúp bạn có cái nhìn chi tiết để đưa ra quyết định đầu tư chính xác nhất. Sau khi chọn được cấu hình phù hợp và đưa máy chủ vào hoạt động, bạn nên theo dõi tài nguyên định kỳ theo Quản trị VPS gồm những việc gì trong một tháng vận hành?.
Checklist tính toán cấu hình trước khi thuê VPS
- ☐ Đã liệt kê toàn bộ các phần mềm sẽ chạy trên VPS (Web server, App runtime, Database, Redis, Docker).
- ☐ Đã ước tính lượng người dùng đồng thời vào khung giờ cao điểm nhất, không chỉ nhìn con số tổng lượt xem trong tháng.
- ☐ Đã kiểm tra loại CPU của gói dịch vụ: là CPU cam kết hiệu năng liên tục (Dedicated) hay CPU chia sẻ có giới hạn điểm burst.
- ☐ Đã lập bảng phân bổ RAM thực tế cho OS, Database và số lượng worker xử lý ứng dụng.
- ☐ Đã tính dung lượng ổ đĩa bao gồm: OS, code, database, file upload, file log xoay vòng và khoảng trống tạm để chạy backup.
- ☐ Không lưu bản sao lưu duy nhất trên cùng ổ đĩa với website; có kế hoạch đẩy backup ra ngoài máy chủ.
- ☐ Nhà cung cấp có hỗ trợ nâng cấp (resize) linh hoạt dung lượng RAM, CPU khi nhu cầu tăng trưởng trong tương lai.



