
Bạn đang chạy 1-2 site WordPress trên shared hosting, mỗi tháng vài chục nghìn đồng, mọi thứ vẫn ổn. Bỗng dưng load chậm, hay bị "503 Service Unavailable", admin báo "đã vượt CPU limit", hosting provider gửi mail mời upgrade. Đây là dấu hiệu rõ ràng: bạn đang hit trần shared hosting. Bài này tôi nói thẳng khi nào nên chuyển sang VPS, chuyển có khó không, chi phí thật ra sao và quy trình migrate chuẩn để không downtime.
1. Shared hosting là gì - và limit cứng ở đâu
Shared hosting nghĩa là 1 máy chủ vật lý (hoặc 1 VPS lớn) được chia ra cho hàng trăm khách hàng cùng dùng. Mỗi user có 1 account cPanel/DirectAdmin/Plesk, vài GB disk, vài chục GB bandwidth, dùng PHP-FPM share, MySQL share. Provider áp các giới hạn:
- CPU/process limit: mỗi account thường giới hạn 1-2 core, 100% CPU trong vài giây sẽ bị throttle.
- RAM: mỗi PHP process bị cap (256-512MB), tổng concurrent process bị giới hạn.
- I/O: số IOPS bị throttle để không ảnh hưởng tenant khác.
- Không có root: không thể cài extension PHP custom, không sửa được nginx/apache config global, không cài Redis/Memcached server-level.
- 1 IP share với hàng trăm site khác: nếu hàng xóm gửi spam, IP có thể bị blacklist - ảnh hưởng email và SEO của bạn.
- Không cron job dài hạn / worker process: nhiều shared hosting kill process chạy quá vài giây.
Đây không phải shared hosting "xấu" - đây là design tradeoff. Bạn trả rẻ thì phải chấp nhận resource share và limit.
2. 8 dấu hiệu cần upgrade lên VPS
- Site load > 3s khi có ~50 user online cùng lúc. Đây là threshold tâm lý: chậm hơn user bounce, Google tụt rank.
- Lỗi 503 / 508 (Resource Limit Reached) xuất hiện trong cPanel. Provider đang throttle bạn.
- Email từ provider: "Account của bạn vượt CPU quota, vui lòng upgrade hoặc giảm tải".
- Bạn cần cài extension PHP custom (imagick, mcrypt, swoole, redis client) mà host không cho.
- Bạn cần chạy worker / queue / cron > vài phút (Laravel queue worker, n8n background, scrape job).
- Traffic ổn định > 10.000 visit/ngày với content WordPress + WooCommerce hoặc forum / membership site.
- Bạn muốn dùng stack hiện đại: Node.js, Python, Go, Rust, Docker - shared hosting đa số chỉ PHP/MySQL.
- Bạn cần dedicated IP cho SSL legacy, gửi email marketing, hoặc tránh bị "hàng xóm xấu" làm ảnh hưởng SEO.
Nếu hit từ 2-3 dấu hiệu trở lên, thật sự đến lúc chuyển. Cố ngồi shared nữa sẽ mất traffic, mất conversion, lỗ nhiều hơn tiền tiết kiệm.
3. Chi phí thật: VPS có đắt hơn shared bao nhiêu
Nhiều người sợ VPS đắt. Thực tế giờ giá VPS rất sát với shared hosting cao cấp:
| Loại | Giá VND/tháng (tham khảo) | Phù hợp với |
|---|---|---|
| Shared hosting cơ bản | 30.000 - 80.000 | Site giới thiệu, blog cá nhân < 1000 visit/ngày |
| Shared hosting business / pro | 150.000 - 350.000 | Site SME, blog 3-10k visit/ngày |
| VPS entry (2 vCPU, 2GB RAM) | ~199.000 (TND VPS 20) | Site 5-30k visit/ngày, full control |
| VPS phổ thông (4 vCPU, 4GB RAM) | ~299.000 (TND VPS 30) | Site 30-100k visit/ngày, WooCommerce |
| VPS mạnh (4 vCPU, 8GB RAM) | ~639.000 (TND VPS 50) | Site 100-300k visit/ngày, multi-site |
So sánh: 1 gói shared "pro" 350k/tháng (cấu hình 4GB RAM dùng chung, 2 CPU dùng chung) thì lên thẳng VPS 30 của TND giá 299.000đ/tháng đã được 4 vCPU + 4GB RAM RIÊNG, Ceph SSD NVMe, IPv4 sạch dedicated, root access. Tức là VPS thực tế còn rẻ hơn shared "cao cấp" mà chất lượng vượt trội.
4. Cost ẩn của VPS mà nhiều người không tính
Trung thực: VPS không chỉ có giá thuê. Bạn cần tính thêm:
- Thời gian setup ban đầu: 2-4 tiếng nếu chưa quen Linux. Cài web server, PHP, MySQL, SSL, firewall, backup script.
- Thời gian maintain: ~30 phút/tháng cho update OS, monitoring, security patch.
- Backup: phải tự setup. VPS không tự backup như shared (trừ khi provider có dịch vụ backup add-on).
- Monitoring: phải tự cài Uptime Kuma, healthcheck, hoặc dùng dịch vụ free (UptimeRobot).
Hai cách giảm pain:
- Dùng control panel: cài aaPanel (free) hoặc CyberPanel (free, OpenLiteSpeed) lên VPS - được giao diện cPanel-like, click cài WordPress, SSL, backup trong 2 phút.
- Chọn provider có support tiếng Việt 24/7: khi sự cố, support fix trong vài phút thay vì bạn loay hoay vài tiếng.
5. Cost diff giữa VPS quản lý và self-managed
| Loại | Bạn làm | Provider làm | Phù hợp với |
|---|---|---|---|
| Self-managed VPS | Toàn bộ (cài stack, security, backup) | Hardware + network | Dev biết Linux |
| VPS + control panel free | Vận hành thông qua panel | Hardware + network | SME có chút technical |
| Managed VPS | Chỉ deploy code | OS, security, backup, monitor | Người không muốn touch server, chấp nhận trả nhiều hơn |
6. Quy trình migrate từ shared sang VPS - không downtime
Đây là playbook chuẩn, áp dụng cho WordPress (phổ biến nhất). Site khác (Laravel, Joomla, Drupal) tương tự.
Bước 1: Chuẩn bị VPS
# SSH vào VPS Ubuntu 24.04 mới mua
ssh root@your-vps-ip
# Update OS
apt update && apt upgrade -y
# Cách nhanh nhất: cài aaPanel (free, giao diện đẹp)
URL=https://www.aapanel.com/script/install_7.0_en.sh
wget -O install.sh $URL && bash install.sh aapanel
# aaPanel sẽ in URL + user + pass. Mở browser, login.
# Trong panel: cài LNMP stack (Nginx + MySQL + PHP 8.3) bằng 1 click.Bước 2: Tạo site mới trên VPS
Trong aaPanel: Websites -> Add Site -> nhập domain (vẫn dùng domain cũ), tạo database trống, set PHP 8.3. Panel tự gen Nginx vhost.
Bước 3: Migrate data từ shared
# Trên shared hosting: backup
# Cách 1: dùng plugin All-in-One WP Migration (đơn giản)
# Cách 2: backup thủ công qua cPanel File Manager
# Trên cPanel:
# 1. zip toàn bộ public_html
# 2. export database từ phpMyAdmin (file .sql)
# 3. download cả 2 về local
# Trên VPS, upload và extract:
cd /www/wwwroot/yourdomain.com
# Upload zip qua aaPanel File Manager
unzip backup.zip
chown -R www:www .
# Import database
mysql -u root -p yourdb < /tmp/backup.sqlBước 4: Test với hosts file (KHÔNG đổi DNS vội)
# Trên máy LOCAL của bạn, sửa /etc/hosts (Linux/Mac) hoặc
# C:\Windows\System32\drivers\etc\hosts (Windows)
# Thêm dòng:
your-vps-ip yourdomain.com www.yourdomain.com
# Mở browser, vào yourdomain.com - bạn sẽ thấy site chạy trên VPS mới
# trong khi user khác vẫn thấy site trên shared cũTest mọi trang chính, admin, form liên hệ, checkout (nếu có Woo). Tìm và fix lỗi (thiếu plugin, sai file path, sai constant trong wp-config.php).
Bước 5: Cài SSL trên VPS trước khi đổi DNS
Trong aaPanel: Website -> chọn site -> SSL -> Let's Encrypt -> Apply. Cần DNS đã point tạm bằng A record phụ hoặc dùng DNS-01 challenge. Hoặc dùng Cloudflare flexible SSL tạm thời.
Bước 6: Đổi DNS
# Vào trang quản lý DNS (Cloudflare, GoDaddy, Namecheap, hoặc nhà reg)
# Sửa A record của domain:
# Cũ: A record -> IP shared hosting
# Mới: A record -> IP VPS mới
# Set TTL thấp (300s = 5 phút) để propagation nhanh
# Sau 1-24h DNS sẽ propagate toàn cầu
# Check propagation
dig yourdomain.com +short
nslookup yourdomain.comBước 7: Quan sát + giữ shared 1 tuần
Đừng huỷ shared hosting ngay. Giữ thêm 1 tuần để:
- Đảm bảo DNS đã propagate hết.
- Có backup phòng khi cần rollback.
- Tránh mất data từ DB transaction xảy ra trong window switch.
7. Sau khi lên VPS - tận dụng tối đa
Lên VPS mà vẫn chạy stack y như shared thì phí. Vài nâng cấp gần như free, perf bay cao:
- Object cache Redis: cài Redis server, cài plugin Redis Object Cache. Giảm 40-80% DB query.
- OPcache PHP: bật max - giảm CPU per request đáng kể.
- Page cache server-level: Nginx FastCGI cache hoặc LiteSpeed Cache. Serve hàng nghìn req/s không qua PHP.
- CDN Cloudflare: free plan đủ dùng. Cache static, hide origin IP, anti-DDoS.
- Image WebP/AVIF: plugin Imagify hoặc ShortPixel. Giảm bandwidth 50-70%.
- HTTP/3 + Brotli compression: aaPanel/LiteSpeed bật được dễ.
8. Khi nào VPS chưa phải đáp án
Trung thực: không phải ai cũng cần VPS. Bạn vẫn nên ở shared nếu:
- Site < 500 visit/tháng và bạn không biết Linux, không muốn học.
- Site landing page tĩnh, không có form/login, hosting nào cũng được.
- Budget < 100k/tháng và shared đang chạy ổn.
Còn lại, nếu bạn nghiêm túc với site (kinh doanh, SEO, traffic ổn định), VPS là step đúng. Đặc biệt khi giá entry VPS giờ rẻ ngang shared business class, lý do không upgrade chỉ còn là "ngại học". Mà học Linux + Nginx 2-3 buổi là xong, kiến thức dùng suốt đời.
9. Kết luận
Shared hosting tốt cho khởi đầu. Nhưng khi site bắt đầu có traffic, có business, có yêu cầu performance - VPS là nâng cấp bắt buộc, không phải nice-to-have. Chi phí chênh lệch giờ rất ít, performance gấp 3-5 lần, freedom thì gấp 100 lần. Cứ thử 1 tháng, nếu thấy không hợp thì hạ lại, mất có 200-300k.
Bài viết liên quan
Sẵn sàng upgrade từ shared lên VPS?
TND có dải Cloud VPS từ 199.000đ/tháng (VPS 20: 2 vCPU + 2GB RAM + 40GB Ceph SSD NVMe). IPv4 sạch dedicated, RAM ECC, datacenter VN/US, khởi tạo 60 giây. Support tiếng Việt 24/7 giúp bạn migrate nhanh.
Xem bảng giá Cloud VPS- Colocation vs Dedicated vs Cloud: so sánh chi phí + control 2026
- Code-server VS Code trên VPS: workflow remote dev cho freelancer
- Vibe code stack hoàn chỉnh trên VPS dưới 500k/tháng: tổng kết 2026
- Docker Compose dev environment: 5 dev share 1 VPS không đụng nhau
- DigitalOcean droplet 6 USD vs TND Cloud VPS 199k cho dev VN
- Setup Ubuntu Server VPS chuẩn cho dev: Docker, code-server, security



