Cài đặt Dragonfly cho WordPress qua Unix Socket trên Ubuntu/Debian

Dragonfly là một in-memory datastore tương thích giao thức Redis, được tối ưu cho hiệu năng cao và khả năng xử lý concurrent workload rất mạnh. Với WordPress, Dragonfly có thể hoạt động như một Redis Object Cache backend thông qua Unix Socket, giúp giảm latency kết nối TCP và tăng tốc độ truy xuất cache nội bộ.

Cài đặt Dragonfly cho WordPress qua Unix Socket trên Ubuntu/Debian

Trong bài viết này, chúng ta sẽ cài đặt Dragonfly từ repository chính thức, cấu hình Unix Socket chuẩn bằng systemd và kết nối trực tiếp với WordPress.

Bước 1: Cài đặt Dragonfly từ Repository chính thức

Mở terminal và chạy lần lượt các lệnh sau để thêm repository chính thức của Dragonfly vào hệ thống:

sudo apt update && sudo apt install -y curl
sudo curl -Lo /usr/share/keyrings/dragonfly-keyring.public https://packages.dragonflydb.io/pgp-key.public
sudo curl -Lo /etc/apt/sources.list.d/dragonfly.sources https://packages.dragonflydb.io/dragonfly.sources
sudo apt update && sudo apt install -y dragonfly

Sau khi hoàn tất, hệ thống sẽ tự động cài đặt service Dragonfly vào systemd.

Bước 2: Thiết lập Unix Socket cho Dragonfly

Thư mục /run sẽ bị xóa mỗi khi server reboot, vì vậy cách chuẩn nhất là sử dụng systemd RuntimeDirectory để hệ thống tự động tạo thư mục socket khi Dragonfly khởi động.

1. Tạo RuntimeDirectory bằng systemd

Chạy lệnh sau để chỉnh sửa service override:

sudo systemctl edit dragonfly

Dán nội dung sau vào editor:

[Service]
RuntimeDirectory=dragonfly
Group=www-data

Cấu hình này sẽ tự động tạo thư mục /run/dragonfly mỗi khi Dragonfly khởi động.

2. Khai báo Unix Socket trong cấu hình Dragonfly

Mở file cấu hình chính:

sudo nano /etc/dragonfly/dragonfly.conf

Thêm các dòng sau vào cuối file:

--unixsocket=/run/dragonfly/dragonfly.sock
--unixsocketperm=0770
--port=6380

Trong đó:

  • --unixsocket: tạo file socket cho Dragonfly.
  • --unixsocketperm=0770: cấp quyền đọc/ghi cho web server hoặc PHP-FPM.
  • --port=6380: tránh xung đột với Redis mặc định đang chạy ở cổng 6379.

Lưu file lại và thoát editor.

3. Reload và khởi động lại Dragonfly

sudo systemctl daemon-reload
sudo systemctl restart dragonfly
sudo systemctl enable dragonfly

Sau khi hoàn tất, Dragonfly sẽ tự động khởi động cùng hệ thống.

4. Tối ưu hiệu năng Dragonfly theo cấu hình VPS

Sau khi cấu hình Unix Socket, có thể tối ưu thêm Dragonfly tùy theo tài nguyên VPS để đạt hiệu năng tốt hơn cho WordPress Object Cache.

1. VPS nhỏ (1-2 vCPU, 1-2 GB RAM)

Với VPS nhỏ, mục tiêu chính là giảm overhead và tiết kiệm RAM. Dragonfly nên chạy theo hướng tối giản để giảm latency và tránh chiếm toàn bộ bộ nhớ hệ thống.

Thêm các dòng sau vào cuối file /etc/dragonfly/dragonfly.conf:

--cache_mode=true
--proactor_threads=1
--maxmemory=512mb
--dbnum=1

Trong đó:

  • --cache_mode=true: tối ưu Dragonfly cho workload dạng cache.
  • --proactor_threads=1: giảm overhead thread trên VPS ít CPU.
  • --maxmemory=512mb: giới hạn RAM để tránh OOM khi chạy cùng MariaDB, PHP-FPM hoặc Nginx.
  • --dbnum=1: giảm overhead database index không cần thiết.

Với VPS nhỏ, không nên bật persistence hoặc snapshot vì WordPress Object Cache không cần lưu dữ liệu lâu dài sau reboot.

2. VPS lớn (4+ vCPU, 4+ GB RAM)

Trên VPS hoặc dedicated server nhiều CPU core, Dragonfly bắt đầu phát huy sức mạnh multicore và concurrent workload.

Thêm hoặc chỉnh sửa cấu hình:

--cache_mode=true
--proactor_threads=4
--maxmemory=4gb
--dbnum=1

Có thể tăng giá trị --proactor_threads theo số lượng vCPU thực tế của server:

  • 4 vCPU → 4 threads
  • 8 vCPU → 8 threads
  • 16 vCPU → 16 threads

Dragonfly đặc biệt phù hợp với các website có:

  • traffic lớn
  • nhiều PHP workers
  • object cache dung lượng lớn
  • trending cache realtime
  • recommendation engine
  • live search hoặc personalized homepage

Sau khi chỉnh sửa cấu hình, khởi động lại Dragonfly để áp dụng thay đổi:

sudo systemctl restart dragonfly

Bước 3: Cấu hình WordPress sử dụng Dragonfly

Mở file wp-config.php của website và thêm hoặc chỉnh sửa lại phần Redis Object Cache:

/* Redis Object Cache — Dragonfly Unix Socket */
define( 'WP_REDIS_SCHEME', 'unix' );
define( 'WP_REDIS_PATH', '/run/dragonfly/dragonfly.sock' );

WordPress lúc này sẽ kết nối trực tiếp tới Dragonfly thông qua Unix Socket thay vì TCP.

Bước 4: Kiểm tra kết nối Dragonfly

Trước khi bật Object Cache trong WordPress, có thể kiểm tra nhanh socket bằng lệnh:

redis-cli -s /run/dragonfly/dragonfly.sock ping

Nếu terminal trả về:

PONG

thì Dragonfly đã hoạt động chính xác và sẵn sàng sử dụng cho WordPress.

Kết luận

Dragonfly là một lựa chọn rất đáng chú ý cho WordPress object cache nhờ khả năng tương thích Redis protocol, hiệu năng cao và kiến trúc tối ưu cho workload concurrent. Việc sử dụng Unix Socket giúp giảm thêm độ trễ kết nối nội bộ và đặc biệt phù hợp với các hệ thống WordPress traffic lớn hoặc có nhiều truy vấn cache realtime.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...