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
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, thaydatabase.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
- Kết nối vào Releem Dashboard
Chọn MySQL on Linux Server: Manual Installation in Docker
, sau đó ấn Continue
Ấn tiếp vào Done
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
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
Ấ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
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 😀
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ị!