1. Kiểm tra tốc độ I/O hiện tại của VPS
Bước đầu tiên là đo tốc độ đọc ghi thực tế để biết VPS của bạn đang ở mức nào. Bạn có thể dùng lệnh:
dd if=/dev/zero of=testfile bs=1G count=1 oflag=dsync
Hoặc cài đặt fio để benchmark chuyên sâu:
sudo apt install fio
fio --name=seqwrite --ioengine=libaio --rw=write --bs=1m --size=512m --numjobs=1 --runtime=60 --group_reporting
2. Sử dụng hệ thống tập tin phù hợp
Với SSD, hệ thống tập tin hiện đại như ext4, XFS hoặc Btrfs sẽ hoạt động tốt hơn. Đảm bảo bạn đang sử dụng ext4 với các tùy chọn mount như sau:
UUID=xxx / ext4 noatime,errors=remount-ro 0 1
noatime giúp giảm ghi đĩa không cần thiết khi truy cập file.
3. Giảm ghi đĩa không cần thiết
- Tắt ghi nhật ký truy cập trong Nginx nếu không cần:
access_log off;
- Giới hạn ghi log hệ thống bằng cách cấu hình logrotate hoặc rsyslog.
4. Dùng RAM thay vì ghi đĩa khi có thể
Bạn có thể dùng RAM Disk để lưu cache hoặc file tạm:
sudo mkdir /mnt/ramdisk
sudo mount -t tmpfs -o size=512M tmpfs /mnt/ramdisk
Hoặc cấu hình Redis/Memcached để cache dữ liệu động như truy vấn MySQL, nội dung trang, session,…
5. Bật write-back caching (nếu được hỗ trợ)
Bạn có thể kiểm tra và bật write cache trên thiết bị SSD bằng lệnh:
sudo hdparm -W /dev/sda
Nếu được hỗ trợ, write-back caching giúp tăng tốc ghi nhưng nên kết hợp với UPS hoặc snapshot định kỳ vì có nguy cơ mất dữ liệu khi mất điện đột ngột.
6. Tránh swap quá mức
Swap ghi lên đĩa nên chỉ là phương án cuối cùng. Tối ưu lại cấu hình swappiness:
sudo sysctl vm.swappiness=10
Thêm vào file /etc/sysctl.conf để áp dụng vĩnh viễn:
vm.swappiness = 10
7. Dùng bộ nhớ đệm (pagecache) thông minh
Bạn có thể chủ động dọn cache khi cần (ví dụ trong cron):
sync; echo 3 > /proc/sys/vm/drop_caches
Tuy nhiên không nên làm quá thường xuyên vì cache cũng giúp tăng tốc hệ thống.
8. Sử dụng queue scheduler phù hợp
SSD hoạt động tốt nhất với scheduler kiểu noop hoặc deadline. Kiểm tra và đổi scheduler với:
cat /sys/block/sda/queue/scheduler
echo deadline | sudo tee /sys/block/sda/queue/scheduler
9. Tổng kết
Hiệu suất I/O ảnh hưởng trực tiếp đến tốc độ phản hồi web. Bằng cách tối ưu từ hệ thống tập tin, giảm ghi đĩa không cần thiết, dùng RAM cache và quản lý swap thông minh, bạn có thể giúp VPS chạy nhanh hơn mà không cần nâng cấp phần cứng. Những thủ thuật trong bài đều có thể áp dụng ngay cho VPS chạy SSD nhỏ như trên Vultr, Linode hay DigitalOcean.
Bình luận