Cài đặt Releem MySQL Optimization trên Docker LCMP Multisite

Releem là công cụ tự động tối ưu hóa cấu hình MySQL/MariaDB, nó thu thập số liệu từ database, phân tích và đưa ra cấu hình tối ưu theo khối lượng công việc thực tế của trang. Về mặt lý thuyết, nó sẽ tối ưu hơn nhiều so với cách bạn dùng 1 số cấu hình MySQL/MariaDB mẫu có trên mạng theo RAM, CPU …. đặc biệt hiệu quả với các trang có lượng truy cập đột biến

Tham khảo bài viết giới thiệu Releem tại đây, so với cài đặt tự động trên VPS, cài đặt qua docker rất dễ nhầm, ở bài này, mình sẽ demo trên domain bibica.net theo hướng dẫn cụ thể của tác giả tại đây

Để bạn dễ hình dung, docker releem-agent cài đặt bên dưới, chỉ dùng để đọc các log database, sau đó đưa ra đề xuất, còn để áp dụng đề xuất, sẽ phải sửa thủ công và khởi động lại container

Installation

Thời điểm bạn đọc bài viết này, releem-agent đã hỗ trợ amd64 và arm64

  • Mở file /home/bibica.net/config/bibica.net.env

Sẽ thấy mật khẩu root của MySQL, ví dụ XJqL7Wy2gMx0c0tw

  • Kết nối vào MariaDB container (thay XJqL7Wy2gMx0c0tw bằng mật khẩu root của bạn, thay database.bibica.net bằng container_name của bạn)
docker exec -it database.bibica.net mysql -u root -pXJqL7Wy2gMx0c0tw

Chạy các lệnh như bên dưới

DROP USER IF EXISTS 'releem'@'%';
CREATE USER 'releem'@'%' identified by '[Password]';
GRANT PROCESS, REPLICATION CLIENT, SHOW VIEW ON *.* TO 'releem'@'%';
GRANT SELECT ON performance_schema.events_statements_summary_by_digest TO 'releem'@'%';
GRANT SELECT ON performance_schema.table_io_waits_summary_by_index_usage TO 'releem'@'%';
GRANT SELECT ON performance_schema.file_summary_by_instance TO 'releem'@'%';
GRANT SUPER ON *.* TO 'releem'@'%';
FLUSH PRIVILEGES;
exit

[Password] là mật khẩu dùng cho user releem (thay bằng mật khẩu khác cho an toàn)

  • Mở file cấu hình /home/bibica.net/compose.yml
services:
  database.bibica.net:
    image: mariadb:10.11.13
    container_name: database.bibica.net
    restart: always
    env_file: ./config/bibica.net.env
    networks:
      - reverse_proxy
    volumes:
      - ./database:/var/lib/mysql
      - ./config/mariadb/mariadb-bibica.net.cnf:/etc/mysql/mariadb.conf.d/mariadb-bibica.net.cnf  

  releem-agent:
    image: releem/releem-agent
    container_name: releem-agent-database-bibica-net
    restart: always
    env_file: ./config/bibica.net.env
    depends_on:
      - database.bibica.net
    networks:
      - reverse_proxy
    volumes:
      - ./config/mariadb/tmp/.mysqlconfigurer/:/tmp/.mysqlconfigurer/
      - ./config/mariadb/releem.conf.d/:/etc/mysql/releem.conf.d/

Thêm vào bên dưới MariaDB container cấu hình releem-agent

  • Mở file /home/bibica.net/config/bibica.net.env
######################### Releem #########################################
# Tên hostname hiển thị trong Releem Dashboard
RELEEM_HOSTNAME=bibica.net

# Tên container MariaDB để kết nối
DB_HOST=database.bibica.net

# Port MariaDB (mặc định 3306)
DB_PORT=3306

# Username đã tạo trong MariaDB cho Releem
DB_USER=releem

# Password của user releem
DB_PASSWORD=[Password]

# API key từ Releem Dashboard
RELEEM_API_KEY=c734e1de-3b21-4c29-96c4-26f1cdaf902f
######################### Releem #########################################

Điều chỉnh lại thông số cho phù hợp với tài khoản của bạn

  • Mở file /home/bibica.net/config/mariadb/mariadb-bibica.net.cnf

Thêm vào cuối trang nội dung

# Include Releem additional configuration files
performance_schema = 1
slow_query_log = 1

Cài đặt Releem MySQL Optimization trên Docker LCMP Multisite

Chọn MySQL on Linux Server: Manual Installation in Docker, sau đó ấn Continue

Cài đặt Releem MySQL Optimization trên Docker LCMP Multisite

Ấn tiếp vào Done

Cài đặt Releem MySQL Optimization trên Docker LCMP Multisite

Nó sẽ hiện ra màn hình Waiting for server response

  • Quay lại server, cập nhập docker
cd /home/bibica.net
docker compose down
docker compose pull
docker compose up -d
  • Lúc này việc cài đặt cơ bản đã xong, trên Releem Dashboard sẽ hiện ra kết nối như thông thường

Cài đặt Releem MySQL Optimization trên Docker LCMP Multisite

Apply Configuration

Sau 24h sẽ được đề xuất thay đổi các giá trị, tương tự như chạy tự động, dù theo tác giả, là có thể tự thay đổi trực tiếp cấu hình, mà khi mình thử thì không thấy tác dụng? chưa kể các cấu hình MariaDB, khi thay đổi, phải restart lại container mới có tác dụng, container releem-agent cấu hình ở bài này. chỉ dùng để thu thập dữ liệu log, nên kiểu gì cũng phải làm thủ công

Cài đặt Releem MySQL Optimization trên Docker LCMP Multisite

Ấn vào Configuration, sẽ thấy các cấu hình Releem đề xuất, mặc định Docker LCMP Multisite cũng đang dùng cấu hình Releem đề xuất sẵn, thường chỉ phải điều chỉnh 1-2 giá trị, mở file /home/bibica.net/config/mariadb/mariadb-bibica.net.cnf, sửa lại các giá trị này

Sửa xong thì khởi động lại container MariaDB và releem-agent

docker restart database.bibica.net
docker restart releem-agent-database-bibica-net

Hiệu quả?

Kiểm tra cấu hình Releem đề xuất có hiệu quả hay không? nhìn vào thứ trực quan nhất, khi admin viết bài, ấn save, update, publish, xóa bài viết …. thấy thời gian so với trước khi Releem đề xuất là như thế nào, bản thân Releem cũng có log CPU, RAM …. để bạn quan sát thêm

Trên 1 trang đồ sộ, có nhiều tương tác, cài nhiều plugin lung tung, dùng cấu hình database mặc định, sẽ thấy các giá trị Releem đề xuất nó hiệu quả tới cỡ nào, tất nhiên, Releem chỉ đề xuất các giá trị, mà nó nghĩ là sẽ tối ưu cho database, còn nếu bạn đang dùng các plugin, themes … mà tác giả viết không tốt, gây lỗi, đơ lag thì Releem không có nhiều tác dụng

Ở phiên bản PRO, Releem thậm chí đề xuất SQL Query Optimization, giúp bạn sửa lại các SQL Query bị chậm, có điều những người sẽ đọc bài viết này, thì không cần nâng cấp lên PRO, ngoài chuyện giá rất cao, các giá trị họ đề xuất, bạn cũng sẽ không biết sửa làm sao, vấn đề này nên để tác giả viết plugin, theme xử lý

Nếu trang của bạn dạng blog thuần túy, kiểu thèng bibica.net thi thoảng viết vài bài, đã cache đầy đủ chỉ cần chạy Releem 7-14 ngày, dùng cấu hình đó là đủ, không cần thiết chạy Releem 24/24/365 làm gì cho tốn RAM và HDD

Cài đặt Releem MySQL Optimization trên Docker LCMP Multisite

Trên thèng bibica.net, dùng rất ít plugin, cũng đã qua vài lần tổng vệ sinh toàn diện, gần như không còn rác gì trong database, tác dụng của Releem không lớn, mình cài vào lại thử vài ngày, thấy Releem không đề xuất được thêm gì luôn 😀


Related Posts

Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.

• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.

✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!