Bảng so sánh gói hosting nào cũng in to nhất hai con số: dung lượng ổ cứng và băng thông. Đó lại là hai thứ ít khi làm một website WordPress gặp chuyện. Một website doanh nghiệp vài trăm bài thường chỉ chiếm vài GB, kể cả ảnh. Thứ làm website chậm, báo lỗi 503 hay bị nhà cung cấp tạm khoá nằm ở những dòng nhỏ hơn bên dưới, hoặc không có trong bảng mà nằm trong điều khoản sử dụng.
Bài này đi qua từng thông số, giải thích nó đo cái gì và ảnh hưởng ra sao tới WordPress cụ thể.
Vì sao WordPress nhạy với tài nguyên máy chủ
Mỗi lần có người mở một trang chưa được lưu bộ nhớ đệm, máy chủ phải chạy PHP để nạp lõi WordPress, giao diện, toàn bộ tiện ích đang bật, rồi gửi hàng chục tới hàng trăm câu truy vấn tới cơ sở dữ liệu, ghép kết quả thành HTML. Một trang tĩnh thì máy chủ chỉ việc đọc tệp và gửi đi. Khác biệt có thể là vài mili giây so với vài trăm mili giây, cho mỗi lượt xem.
Vì vậy, với WordPress, câu hỏi đúng không phải là “gói này chứa được bao nhiêu dữ liệu” mà là “gói này xử lý được bao nhiêu lượt chạy PHP cùng lúc, và mỗi lượt được bao nhiêu sức”.
CPU: tính theo lõi, nhưng thường bị chia sẻ
Hosting chia sẻ thường ghi CPU theo số lõi, ví dụ 1 lõi hoặc 2 lõi, hoặc theo phần trăm, ví dụ 100% tương đương một lõi. Đây là mức trần tài khoản của bạn được dùng, không phải tài nguyên dành riêng. Máy chủ vật lý có thể đang chạy hàng trăm tài khoản khác.
Ảnh hưởng thực tế: khi tài khoản chạm trần CPU, các yêu cầu bị xếp hàng chờ. Người xem thấy trang tải chậm dần, rồi có thể nhận lỗi 503 hoặc 508. Thời điểm hay chạm trần:
- Bot dò mật khẩu đánh vào trang đăng nhập và tệp xmlrpc.php.
- Trang quản trị mở trình soạn thảo, nhập sản phẩm hàng loạt, chạy sao lưu.
- Một bài được chia sẻ mạnh trong khi bộ nhớ đệm chưa bật hoặc bị bỏ qua.
Nếu nhà cung cấp có bảng theo dõi tài nguyên (nhiều bảng điều khiển hosting có mục thống kê CPU, RAM, tiến trình theo giờ), hãy xem nó trước khi kết luận website “bị chậm vì giao diện”. Nhiều lần thủ phạm là một đợt chạm trần lúc ba giờ sáng do tác vụ sao lưu.
RAM và giới hạn bộ nhớ của PHP
Có hai con số dễ lẫn:
- RAM của gói: tổng bộ nhớ mà mọi tiến trình của tài khoản được dùng cùng lúc.
- memory_limit của PHP: mức tối đa một lượt chạy PHP được dùng. WordPress mặc định đặt mức 40MB cho trang ngoài và 256MB cho trang quản trị nếu máy chủ cho phép; nhiều tiện ích lớn khuyến nghị 256MB.
Hai con số này nhân với nhau theo cách người ta hay quên: gói có 1GB RAM, mỗi lượt PHP dùng khoảng 100MB, thì chỉ chừng mười lượt chạy cùng lúc là chạm trần. Website bán hàng nhiều tiện ích có thể dùng 150–200MB cho mỗi lượt trong trang quản trị. Lỗi điển hình khi thiếu bộ nhớ là màn hình trắng hoặc thông báo Allowed memory size exhausted.
Tiến trình đồng thời: con số quan trọng nhất ít ai đọc
Nhiều hosting chia sẻ giới hạn số tiến trình vào cùng lúc (thường gọi là entry processes, viết tắt EP) và tổng số tiến trình (NPROC). Tiến trình vào cùng lúc là số yêu cầu PHP đang được xử lý đồng thời. Nếu giới hạn là 20 và có yêu cầu thứ 21 tới khi 20 cái kia chưa xong, yêu cầu đó nhận lỗi ngay.
Con số này không phải số người xem cùng lúc. Một người mở một trang có thể tạo vài yêu cầu PHP: trang chính, một hai yêu cầu nền qua admin-ajax.php, có khi thêm một yêu cầu của tác vụ định kỳ. Còn người xem trang đã được lưu bộ nhớ đệm thì gần như không tốn tiến trình PHP nào.
Với máy chủ riêng ảo (VPS) hoặc hosting chuyên WordPress, khái niệm tương ứng là số tiến trình PHP (PHP workers). Gói ghi 2 tiến trình PHP nghĩa là chỉ hai yêu cầu không có bộ nhớ đệm được xử lý song song; yêu cầu thứ ba phải chờ. Với website bán hàng, nơi giỏ hàng và thanh toán không lưu bộ nhớ đệm được, đây là con số quyết định.
Inode: giới hạn số tệp
Inode là số tệp và thư mục tài khoản được phép có. Một bản cài WordPress sạch đã có vài nghìn tệp. Thêm giao diện, tiện ích, mỗi ảnh tải lên được WordPress cắt thành năm bảy cỡ khác nhau, cộng các tệp bộ nhớ đệm, và các bản sao lưu nằm trên chính hosting — con số có thể lên hàng trăm nghìn mà dung lượng vẫn còn trống nhiều.
Khi chạm trần inode, triệu chứng rất khó hiểu: không tải ảnh lên được, cập nhật tiện ích thất bại, email không nhận được, trong khi ổ cứng báo còn trống. Những nơi hay ngốn inode:
- Thư mục bộ nhớ đệm của tiện ích tăng tốc, nhất là khi cấu hình lưu riêng cho từng thiết bị hoặc từng tham số trên đường dẫn.
- Các bản sao lưu tự động lưu ngay trên hosting, không bao giờ được xoá.
- Hộp thư email trên cùng tài khoản hosting, mỗi thư là một tệp.
- Các kích thước ảnh do giao diện cũ đăng ký, vẫn được sinh ra dù giao diện đã thay.
Phiên bản PHP và cơ sở dữ liệu
Hãy kiểm tra gói cho phép chọn những phiên bản PHP nào. WordPress chạy được trên nhiều phiên bản, nhưng phiên bản PHP mới hơn thường nhanh hơn rõ rệt và vẫn còn được vá bảo mật. Một gói chỉ có PHP đã hết vòng đời hỗ trợ là dấu hiệu nhà cung cấp không đầu tư bảo trì máy chủ. Xem khuyến nghị phiên bản tối thiểu trên trang chính thức của WordPress ở thời điểm bạn mua.
Với cơ sở dữ liệu, để ý hai thứ: dung lượng tối đa của một cơ sở dữ liệu và giới hạn số kết nối đồng thời. Website bán hàng có bảng đơn hàng và bảng nhật ký phình rất nhanh.
Những dòng quảng cáo cần đọc kỹ
| Dòng quảng cáo | Câu hỏi nên đặt ra |
|---|---|
| Băng thông không giới hạn | Điều khoản sử dụng hợp lý quy định gì? Có giới hạn CPU, tiến trình kèm theo không? |
| Dung lượng không giới hạn | Có giới hạn inode không? Có cấm lưu sao lưu, tệp phương tiện lớn không? |
| Không giới hạn website | Mọi website dùng chung một trần CPU, RAM, tiến trình. Mười website trên một gói nhỏ là mười website cùng chậm. |
| Ổ cứng tốc độ cao | Tốt, nhưng không bù được việc thiếu tiến trình hay thiếu RAM. |
| Cam kết thời gian hoạt động 99,9% | Đo thế nào, bồi thường ra sao, có tính thời gian bảo trì không? |
Cách tự kiểm một gói đang dùng
Không cần công cụ phức tạp. Làm ba việc:
- Xem mục thống kê tài nguyên trong bảng điều khiển hosting, lọc theo 24 giờ và 7 ngày. Tìm các vạch chạm trần CPU, RAM, tiến trình và giờ xảy ra.
- Mở Công cụ → Tình trạng website trong WordPress, tab Thông tin. Ở đó có phiên bản PHP, memory_limit thực tế, thời gian chạy tối đa, giới hạn kích thước tệp tải lên.
- Đếm số tệp bằng thông tin inode trong bảng điều khiển. Nếu đã quá nửa giới hạn, tìm thư mục bộ nhớ đệm và sao lưu cũ để dọn trước.
Nếu website chạm trần thường xuyên dù đã bật bộ nhớ đệm và chặn bot, đó là lúc cân nhắc nâng gói. Còn nếu chạm trần vào giờ cố định, hãy tìm tác vụ định kỳ đang chạy giờ đó trước khi trả thêm tiền.
Bảng hỏi nhanh trước khi ký hợp đồng hosting
Nếu bảng thông số trên trang bán hàng không ghi rõ, hãy hỏi thẳng bộ phận hỗ trợ trước khi trả tiền. Câu trả lời mập mờ cũng là một thông tin.
- Giới hạn CPU, RAM, số tiến trình vào cùng lúc và inode của gói là bao nhiêu?
- Khi chạm giới hạn thì chuyện gì xảy ra: bị chậm lại, báo lỗi, hay tài khoản bị tạm khoá?
- Có chọn được phiên bản PHP không, và tự đổi được trong bảng điều khiển không?
- Sao lưu do hosting làm giữ được mấy bản, lưu ở máy chủ khác hay cùng máy, khôi phục có mất phí không?
- Có bảng thống kê tài nguyên theo giờ cho khách tự xem không?
- Máy chủ đặt ở đâu? Với khách hàng chủ yếu ở Việt Nam, máy chủ gần về địa lý thường cho thời gian phản hồi đầu tiên ngắn hơn.
Ghi lại câu trả lời vào hồ sơ website. Khi có sự cố, bạn biết ngay giới hạn nào đang bị chạm thay vì đoán.
Câu hỏi thường gặp
Gói hosting 1GB RAM có đủ cho WordPress không?
Đủ cho website giới thiệu nhỏ có bộ nhớ đệm tốt. Website bán hàng hoặc nhiều tiện ích nặng thường cần nhiều hơn vì mỗi lượt chạy PHP ở trang quản trị có thể dùng tới vài trăm MB.
Tiến trình đồng thời có phải là số người xem cùng lúc không?
Không. Đó là số yêu cầu PHP được xử lý cùng lúc. Người xem trang đã lưu bộ nhớ đệm gần như không tốn tiến trình, còn một thao tác trong trang quản trị có thể tạo vài yêu cầu.
Vì sao ổ cứng còn trống mà vẫn không tải ảnh lên được?
Rất có thể tài khoản đã chạm giới hạn inode, tức số tệp tối đa. Dọn thư mục bộ nhớ đệm, sao lưu cũ và hộp thư trên hosting thường giải quyết được.
Băng thông không giới hạn có thật không?
Thường đi kèm điều khoản sử dụng hợp lý và các giới hạn CPU, RAM, tiến trình. Website sẽ chạm những giới hạn đó trước khi băng thông thành vấn đề.
Xem phiên bản PHP và memory_limit ở đâu trong WordPress?
Vào Công cụ, chọn Tình trạng website, mở tab Thông tin rồi xem mục Máy chủ. Ở đó ghi phiên bản PHP, giới hạn bộ nhớ và các giới hạn tải tệp.