Các sản phẩm trong hệ sinh thái của OpenLiteSpeed luôn cho mình cảm giác hài lòng vì sự ưu việt về tốc độ. Từ khi sử dụng OpenLiteSpeed cùng các tiện ích mở rộng của nó thì trang WordPress của mình luôn chạy “vèo vèo” mặc dù được chạy trên một máy chủ VPS giá rẻ có cấu hình rất tầm thường.
̣(Mình đã có bài viết hướng dẫn cách xây dựng và cấu hình cho WordPress với OpenLiteSpeed, bạn có thể tham khảo thêm nếu cần)
Hôm nay mình sẽ hướng dẫn cài đặt thêm một tiện ích tuyệt vời khác của LiteSpeed có thể giúp tăng tốc cho WordPress hơn nữa với LiteSpeed Memcached.
1. Tại sao phải sử dụng LiteSpeed Memcached?
Có thể bạn sẽ có thắc mắc giống mình lúc đầu là đã có LiteSpeed Cache thì sao phải cần LiteSpeed Memcached? Thật ra, LiteSpeed Memcached là một tiện ích bổ sung vào LiteSpeed Cache đẻ hỗ trợ thêm bộ đệm cho các đối tượng dữ liệu (Object cache) được truy xuất từ cơ sở dữ liệu. Nói nôm na là LiteSpeed Cache giúp cache cả trang web để giảm tải cho PHP còn LiteSpeed Memcached giúp giảm tải cho database. Thực tế bạn chỉ có thể thực sự hưởng lợi tối đa từ Memcached nếu trang web của bạn thường phải truy xuất rất nhiều dữ liệu từ database, điều thường hay xảy ra trên các trang web bán hàng hơn là các trang blog có ít thay đổi.
Nói riêng về Object Cache (Bộ đệm cho đối tượng) hay còn gọi là bộ đệm cho cơ sở dữ liệu thì chắc không thể không nhắc đến hai hệ thống phổ biến nhất đó là Redis và Memcached. Cả hai hệ thống này đều đem lại hiệu quả rất cao trong việc làm bộ nhớ đệm cho cơ sở dữ liệu, Tuy nhiên cả hai hệ thống đều còn những hạn chế nhất định nên LiteSpeed đã tạo ra một sản phẩm nâng cấp từ Memcached, kết hợp được những điểm ưu việt của cả hai hệ thống trên, và đặt tên là LiteSpeed Memcached hay LSMCD. Đặc biệt hệ thống này được thiết kế để kết hợp hoàn hảo với plugin LiteSpeed Cache chạy trên nền OpenLiteSpeed.
2. Compile và cài đặt LiteSpeed Memcached
Trước khi cài đặt LiteSpeed Memcached cần phải chắc chắn rằng hệ thống của bạn hiện đang không sử dụng Memcached phiên bản gốc, điều này sẽ gây xung đột với LiteSpeed Memcached.
Bạn có thể kiểm tra bằng lệnh sau từ SSH:
# telnet 127.0.0.1 11211
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
Nếu hệ thống báo không thể kết nối như trên thì bạn có thể tiếp tục các bước kế tiếp.
LiteSpeed không cung cấp sẵn gói cài đặt cho LiteSpeed Memcached nên mình phải tự compile.
- Trước tiên, cài đặt các công cụ và thư viện cần thiết để có thể compile trên Ubuntu.
# apt install git build-essential zlib1g-dev libexpat1-dev openssl libssl-dev libsasl2-dev libpcre3-dev -y
- Tiến hành tải về bản LSMCD mới nhất từ GitHub
# cd /usr/src
# git clone https://github.com/litespeedtech/lsmcd.git
# cd lsmcd
- Chạy các script để bắt đầu compile.
# ./fixtimestamp.sh
# ./configure CFLAGS=" -O3" CXXFLAGS=" -O3"
# make
# make install
- Khởi tạo và kích hoạt dịch vụ LSMCD
# systemctl enable lsmcd
# systemctl start lsmcd
- Thử kết nối đến LSMCD
# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
// thực hiện lệnh
stats
quit
- Cài đặt extension Memcached cho PHP
# apt install -Y lsphp<PHP-VER>-memcached
// ví dụ nếu bạn sử dụng PHP 8.1
# apt install -Y lsphp81-memcached
- Khởi động lại OpenLiteSpeed và PHP
# systemctl restart lsws
# pkill lsphp
- (Khuyến cáo sử dụng) Chuyển qua sử dụng Unix socket
Mặc định thì LSMCD sử dụng giao thức TCP/IP. Nếu bạn sử dụng nhiều máy chủ khác nhau cho web, database, load balance… thì nên tiếp tục sử dụng giao thức này và tiến hành bước 2 bên dưới để cấu hình LiteSpeed Cache. Tuy nhiên điểm hạn chế khi sử dụng giao thức này là tốc độ sẽ chậm hơn nhiều so với Unix socket. Do mình chỉ xài một máy chủ cho tất cả nên mình chuyển qua giao thức Unix socket để được tốc độ nhanh hơn.
# nano /usr/local/lsmcd/conf/node.conf
// tìm
CACHED.ADDR=127.0.0.1:11211
// thay bằng
CACHED.ADDR=UDS:///tmp/lsmcd.sock
- Khởi động lại LSMCD
# systemctl restart lsmcd
- Kiểm tra kết nối đến Unix socket
# nc -U /tmp/lsmcd.sock -C
// thực hiện lệnh
stats
quit
3. Cấu hình LiteSpeed Cache để sử dụng LSMCD
- Từ WP Admin, bạn vào menu “LiteSpeed Cache” để cấu hình Object Cache.
Nếu ở bước 1 bạn chọn sử dụng Unix sock thì ở bước này bạn sẽ cần phải thay đổi mục “Host” thành “/tmp/lsmcd.sock” và “Port” là “0”.
Trường hợp bạn chọn giao thức TCP/IP mặc định thì phải khai báo phần “Host” là “127.0.0.1” với “Port” là “11211”.
Bạn nhờ nhấn nút “Lưu thay đổi” để hệ thống cập nhật lại cấu hình mới.
- Sau đó bạn quay trở lại SSH thực hiện tiếp lệnh sau để khởi động lại OpenLiteSpeed và PHP
# systemctl restart lsws
# pkill lsphp
Lúc này bạn có thể quay trở lại WP Admin và load lại trang LiteSpeed Cache.
Nếu phần “Kiểm tra kết nối” thông báo “Thông qua” tức là bạn đã tích hợp thành công LiteSpeed Memcached.