WordPress chậm ở đâu? Cách khoanh vùng thủ phạm từ trình duyệt vào tới tận Database
Khoanh vùng chính xác điểm nghẽn làm WordPress chậm: tách bạch từ DNS Lookup, SSL Handshake, ảnh nặng, hàng đợi PHP-FPM cho tới MariaDB Slow Query.
Hướng dẫn gắn thêm ổ cứng Block Storage trên CloudFly cho VPS Linux: kiểm tra lsblk, định dạng ext4, khai báo UUID kèm cờ nofail trong /etc/fstab an toàn.
Tối ưu VPS // localhost.vn
Nâng cấp cả gói CPU/RAM chỉ vì hết chỗ chứa ảnh giống như đổi xe tải lớn hơn chỉ để chở thêm một chiếc vali. Hãy gắn thêm Block Storage và đừng bao giờ quên cờ nofail trong /etc/fstab nếu không muốn VPS treo boot.
Một kịch bản kinh điển mà bất kỳ ai nuôi website WordPress sau một năm đều từng trải qua: mở bảng theo dõi tài nguyên thấy CPU mới chạy nhàn nhã 15%, bộ nhớ RAM còn trống hơn một nửa, nhưng chiếc ổ cứng SSD 40 GB đã báo đỏ 99% làm dịch vụ cơ sở dữ liệu MariaDB tự động đình công và biên tập viên không thể tải thêm dù chỉ một tấm ảnh. Nếu lúc này bạn bấm nâng cấp (Resize) lên gói VPS cao hơn chỉ để lấy thêm vài chục GB ổ đĩa, bạn đang tự móc hầu bao trả tiền oan cho cả mớ CPU và RAM dư thừa mà website chẳng bao giờ động tới.
Giải pháp khôn ngoan và tiết kiệm hơn rất nhiều trên hệ sinh thái CloudFly là sử dụng Block Storage — dịch vụ ổ cứng đám mây rời cho phép bạn mua lẻ đúng số gigabyte cần thêm và cắm nóng (Attach) trực tiếp vào chiếc Cloud Server đang chạy. Bài viết này sẽ dẫn bạn đi từng bước chuẩn kỹ thuật hệ thống: từ khâu bắt bệnh xem ổ cứng đầy do ảnh thật hay do file log rác, quy trình 5 bước định dạng chuẩn ext4, khai báo UUID kèm lá bùa hộ mệnh nofail trong tệp /etc/fstab để máy chủ không bao giờ bị kẹt ở màn hình cứu hộ khi khởi động lại, cho đến cách dời thư mục ảnh WordPress sang ổ mới. Đọc thêm bài tổng quan CloudFly là gì và các dịch vụ hiện có nếu bạn muốn tra cứu toàn bộ danh mục hạ tầng.
Minh bạch liên kết: Bài viết có chứa liên kết giới thiệu đối tác của
localhost.vn. Khi bạn đăng ký dịch vụ qua liên kết, dự án có thể nhận hoa hồng từ CloudFly mà không làm thay đổi mức giá hay thông số kỹ thuật trên đơn hàng của bạn. Xem chi tiết tại nguyên tắc minh bạch.
Khoan vội rút thẻ thanh toán! Phản xạ đầu tiên của một kỹ sư Linux khi thấy báo đầy ổ cứng không phải là đi mua ổ mới, mà là kiểm tra xem thứ đang nuốt trọn ổ đĩa là dữ liệu kinh doanh thật hay chỉ là một đống rác quên dọn.

Trong thực tế cứu hộ máy chủ, chúng tôi từng gặp không ít chiếc VPS 40 GB bị lấp đầy 100% chỉ vì một tệp nhật ký lỗi error.log của PHP phình to tới 18 GB do lỗi vòng lặp plugin, hoặc do 6 tệp nén backup.zip từ năm ngoái nằm phủ bụi trong thư mục /root/. Hãy mở cửa sổ SSH và chạy ngay tổ hợp lệnh chẩn đoán an toàn dưới đây:
df -h
df -i
sudo du -xhd1 / | sort -h
Nếu thủ phạm là thư mục nhật ký hệ thống /var/log/journal hoặc những bản backup tạm đã lỗi thời, bạn chỉ mất 2 phút dọn dẹp là lấy lại ngay hàng chục GB trống hoàn toàn miễn phí. Hãy xem hướng dẫn dọn đĩa an toàn không xóa nhầm file hệ thống tại bài đĩa gần đầy: tìm nguyên nhân bằng df, du trước khi xóa.
Ngược lại, nếu kết quả trả về cho thấy thư mục /var/www/ và đặc biệt là thư mục ảnh wp-content/uploads đã chiếm tới 80% dung lượng ổ đĩa do sản phẩm và bài viết tăng trưởng thật sự, thì xin chúc mừng công việc kinh doanh của bạn — đây chính là lúc hoàn hảo để cắm thêm Block Storage.
Khi ổ cứng gốc chạm ngưỡng cảnh báo 85%, trên bảng điều khiển my.cloudfly.vn bạn có hai ngả rẽ. Hãy nhìn bảng so sánh dưới đây để chọn phương án tối ưu nhất cho túi tiền và kỹ năng của bạn:
| Tiêu chí so sánh | Phương án 1: Mua thêm ổ đĩa Block Storage rời | Phương án 2: Nâng cấp (Resize) lên gói Cloud Server cao hơn |
|---|---|---|
| Chi phí vận hành hàng tháng | Tiết kiệm hơn rõ rệt vì bạn chỉ trả tiền cho đúng số GB dung lượng lưu trữ mua thêm | Đắt hơn vì bạn phải trả tiền trọn gói cho cả lượng vCPU và RAM tăng thêm dù chưa cần dùng tới |
| Thao tác kỹ thuật cần làm | Gõ vài lệnh Linux cơ bản để định dạng (mkfs.ext4), mount thư mục và cấu hình /etc/fstab |
Không cần cấu hình điểm mount mới, nhưng bắt buộc phải khởi động lại VPS để nhận diện phần cứng mới |
| Độ linh hoạt của dữ liệu | Cực kỳ cơ động: có thể tháo (Detach) ổ đĩa phụ từ VPS A đem cắm (Attach) sang VPS B cùng Region chỉ trong vài giây | Toàn bộ dữ liệu nằm dính liền trên một khối ổ đĩa gốc duy nhất của máy chủ |
| Khi nào bạn nên chọn? | Khi CPU và RAM hiện tại vẫn còn dư dả (dưới 60%), chỉ thiếu không gian chứa ảnh, tài liệu tải lên hoặc dữ liệu tĩnh | Khi cả 3 thông số CPU, RAM và Disk I/O đều đã thường xuyên chạm ngưỡng 80%–90% vào giờ cao điểm |
Khi bạn khởi tạo một khối Block Storage mới trên giao diện web của CloudFly và bấm nút Gắn (Attach) vào chiếc VPS đang chạy, thao tác đó giống hệt như việc bạn vừa cắm một chiếc ổ cứng mới tinh vừa bóc hộp vào bo mạch chủ. Nhân Linux đã nhận diện được thiết bị phần cứng (thường mang tên /dev/vdb hoặc /dev/sdb), nhưng ổ đĩa này vẫn đang hoàn toàn trống trơn, chưa có định dạng hệ thống tệp và chưa được gắn vào bất kỳ thư mục nào.
Hãy làm tuần tự theo 5 bước dưới đây để đưa chiếc ổ cứng mới vào phục vụ WordPress một cách êm ái nhất:
lsblkChạy lệnh liệt kê danh sách thiết bị khối để nhìn tận mắt tên ổ đĩa mới vừa cắm vào dựa theo dung lượng bạn đã mua (ví dụ ổ mới mua là 50G, cột FSTYPE và MOUNTPOINTS đều đang trống):
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTS,UUID
ext4 (Chỉ làm với ổ đĩa mới tinh!)Giả sử kết quả ở Bước 1 xác nhận chiếc ổ mới mua có tên là /dev/vdb và cột FSTYPE chưa có gì. Bạn dùng lệnh dưới đây để định dạng ổ đĩa sang hệ thống tệp ext4 tiêu chuẩn của Linux (nhớ nhìn thật kỹ tên thiết bị, tuyệt đối không bao giờ gõ nhầm vào ổ hệ điều hành chính /dev/vda):
sudo mkfs.ext4 /dev/vdb
Cảnh báo đỏ: Nếu chiếc ổ Block Storage này không phải ổ mới mua, mà là ổ chứa dữ liệu bạn tháo từ một VPS cũ đem cắm sang máy mới, bắt buộc phải bỏ qua Bước 2! Chạy lệnh mkfs.ext4 lên ổ đang có dữ liệu sẽ xóa trắng toàn bộ gia tài bên trong ngay lập tức.
Tạo một thư mục đóng vai trò làm cửa ngõ truy cập ổ cứng mới (ví dụ /mnt/data), tiến hành mount và kiểm tra dung lượng thực tế:
sudo mkdir -p /mnt/data
sudo mount /dev/vdb /mnt/data
df -h /mnt/data
/etc/fstab kèm lá bùa hộ mệnh nofailLệnh mount ở Bước 3 chỉ có hiệu lực tạm thời — nếu đêm nay VPS tự khởi động lại sau khi cập nhật nhân, chiếc ổ /mnt/data sẽ biến mất cho tới khi bạn vào mount lại bằng tay. Để Linux tự động gắn ổ đĩa mỗi khi bật máy, bạn cần khai báo vào tệp /etc/fstab.
Tuy nhiên, đây chính là chỗ mà rất nhiều quản trị viên tự đào hố chôn mình: họ điền trực tiếp tên /dev/vdb với tùy chọn defaults đơn thuần vào /etc/fstab. Nửa năm sau, khi tháo ổ Block Storage đó ra trên web rồi bấm Reboot VPS, hệ điều hành Linux cứ đứng chờ mãi chiếc ổ không còn tồn tại rồi nhảy thẳng vào màn hình Emergency Mode — làm toàn bộ website và cả dịch vụ SSH chết đứng! Để không bao giờ dính bẫy này, bạn phải dùng mã định danh cố định UUID kết hợp với cờ nofail (cho phép hệ điều hành vẫn khởi động bình thường ngay cả khi ổ đĩa phụ vắng mặt):
sudo blkid /dev/vdb
Sau khi chép lại chuỗi UUID=... từ kết quả lệnh trên, bạn mở tệp /etc/fstab và thêm một dòng vào cuối tệp theo đúng khuôn mẫu:
UUID=chuoi-uuid-cua-ban /mnt/data ext4 defaults,nofail,discard 0 2
Trước khi yên tâm đóng cửa sổ SSH, hãy luôn chạy câu lệnh vàng dưới đây để bắt hệ thống đọc thử tệp /etc/fstab ngay lập tức:
sudo mount -a
Trong triết lý của Linux, “im lặng là vàng” — nếu lệnh sudo mount -a chạy xong mà không phàn nàn bất kỳ dòng lỗi nào, bạn có thể hoàn toàn yên tâm rằng lần khởi động máy tiếp theo sẽ mượt mà 100%.
wp-content/uploads của WordPress sang ổ cứng mớiĐể chuyển toàn bộ kho ảnh nặng nề của WordPress sang chiếc ổ /mnt/data vừa gắn mà không cần sửa một dòng code nào trong giao diện hay plugin, bạn chỉ cần dùng công cụ rsync -avP để đồng bộ nguyên vẹn dữ liệu kèm quyền sở hữu từ wp-content/uploads/ sang /mnt/data/uploads/. Sau khi dữ liệu đã khớp, bạn đổi tên thư mục uploads cũ thành uploads_bak để dự phòng, rồi tạo một liên kết mềm (Symlink ln -s) hoặc bind mount từ /mnt/data/uploads trỏ về đúng vị trí wp-content/uploads và cấp quyền cho user www-data (hoặc user chạy PHP-FPM).
Khi dự án kết thúc hoặc bạn đã chuyển ảnh sang Object Storage S3 và muốn hủy ổ Block Storage để ngừng tính cước, tuyệt đối đừng nhảy thẳng lên bảng điều khiển web bấm nút Detach / Delete cái rụp khi Linux vẫn đang mở tệp trên ổ đĩa đó (giống như rút phắt USB đang chép dở file vậy).
Hãy tuân thủ đúng quy trình tháo gỡ an toàn gồm 4 bước từ trong ra ngoài:
/mnt/data về lại ổ đĩa chính hoặc đẩy bản sao lưu ra nơi an toàn./etc/fstab, xóa bỏ (hoặc đặt dấu thăng # ở đầu dòng) dòng khai báo UUID của chiếc ổ cứng phụ đó rồi lưu lại.sudo umount /mnt/data trên SSH để ngắt kết nối ổ đĩa khỏi hệ điều hành một cách êm đẹp.my.cloudfly.vn, chọn ổ đĩa Block Storage đó, bấm Tháo (Detach) khỏi Cloud Server, rồi cuối cùng mới bấm Xóa (Delete) để dừng tính phí lưu trữ.Đây là một điểm mù kỹ thuật rất dễ gây mất dữ liệu nếu không để ý: trên hầu hết các kiến trúc đám mây, thao tác chụp Snapshot của một Instance mặc định chỉ chụp chiếc ổ đĩa gốc chứa hệ điều hành (Root Volume /dev/vda), còn các khối Block Storage gắn rời được quản lý độc lập. Do đó, nếu bạn đã dời thư mục wp-content/uploads hoặc cơ sở dữ liệu sang ổ Block Storage phụ, hãy đảm bảo bạn tạo Snapshot riêng cho khối Volume đó hoặc thiết lập kịch bản sao lưu hằng đêm nén đầy đủ cả dữ liệu trên /mnt/data đẩy ra ngoài.
Hoàn toàn không thể. Ổ cứng Block Storage giao tiếp với máy chủ ảo qua hạ tầng mạng lưu trữ nội bộ tốc độ cao đặt ngay trong cùng một trung tâm dữ liệu để đảm bảo độ trễ đọc ghi tính bằng mili-giây. Bạn không thể cắm một chiếc ổ cứng đặt ở Sài Gòn vào một chiếc máy chủ đang chạy ngoài Hà Nội. Nếu lỡ tay chọn nhầm Region lúc mua ổ mới, bạn chỉ cần xóa khối ổ trống đó đi và khởi tạo lại đúng Region với chiếc VPS của mình.