Releem - MySQL Optimization cấp độ AI

Hiện tại mình đang dùng bộ công cụ tự cài đặt webserver AIO, tất cả trong một Webinoly, nó rất mạnh, cấu hình gần như toàn bộ hệ thống server, từ các thông số liên quan tới mạng, ping, cho tới các thứ liên quan tới PHP, Nginx … đơn giản, dễ sử dụng, an toàn, ít lỗi

Khá là khó hiểu, Webinoly lại không cấu hình bất cứ dòng nào liên quan tới MySQL, VPS RAM 1GB hay 24Gb đều dùng thông số mặc định

Rãnh rỗi, tiện thể google xem có tool, script liên quan tới MySQL Optimization không thì search ra thèng Releem

Nó khá tương đồng với các script tuning khác như MySQLTuner hay MySQL Tuning-Primer, nguyên tác hoạt động thường là kiểm tra log, log thời gian càng lâu thì dữ liệu càng nhiều, càng chính xác, từ log cho ra các kết quả là query nào chậm, database đọc hay ghi nhiều, database dung lượng to hay thấp, các bảng nào to, các kết nối nhiều hay ít …. nói chung từ file log, các script sẽ đề xuất thay đổi giá trị a,b,c gì đó cho phù hợp

Đây có lẽ là bài viết cần thời gian xem lại nhiều nhất của mình, vì bắt đầu viết từ đầu tháng 7, giờ sắp tới tháng 10 rồi mới tự tin giới thiệu :]]

Sau khi dùng trên đủ các loại cấu hình, từ cấu hình thấp tới cao, ít RAM tới nhiều RAM, từ HDD ghẻ tới SSD, NVMe, location Sing, Đức, Mỹ, Nhật, trên khá nhiều webserver Nginx, Caddy, Litespeed … hơi tiếc tí là ở các bài mình đều dùng trên MariaDB 10.11.5 nên cũng không rõ trên các phiên bản khác hay các loại database khác thì có tương tự như kết quả mình nhận được không?

Tổng hợp lại thì mình đều thấy Releem có cải thiện, hiệu quả, đặc biệt là trên hệ điều hành AlmaLinux 9 chạy webserver Caddy, cải thiện hiệu năng rất bố đời

Đây có lẽ là 1 giải pháp tuyệt vời cho bạn nào đang dùng các script auto, không biết nhiều về kĩ thuật, chỉ cần cài vào (copy 1 dòng lệnh đơn giản), sau đó dùng các đề xuất từ Releem là đủ, thậm chí nếu lười, có thể set chạy auto hàng, ngày, cứ 1h sáng tự cập nhập đề xuất

2023-09-29_10-07-05

Releem quản lý theo dữ liệu thực đang chạy, chứ không phải dựa vào tổng lượng RAM đang có, nên các giá trị đề xuất của họ, mới đầu đọc thì mình thấy nó cực kì gây lú 😀

[mysqld]
thread_cache_size = 32
table_open_cache = 2048
sort_buffer_size = 8M
innodb = force
innodb_stats_on_metadata = OFF
innodb_buffer_pool_instances = 8
innodb_log_buffer_size = 10M
innodb_flush_log_at_trx_commit = 2
innodb_thread_concurrency = 6
join_buffer_size = 8M
max_allowed_packet = 64M
read_rnd_buffer_size = 16M
read_buffer_size = 2M
bulk_insert_buffer_size = 64M
max_connections = 512
myisam_sort_buffer_size = 128M
explicit_defaults_for_timestamp = 1
open_files_limit = 65535
table_definition_cache = 1024
table_open_cache = 2048
log_bin_trust_function_creators = 1
disable_log_bin
innodb_adaptive_flushing_lwm = 25.000000
innodb_max_dirty_pages_pct = 70.000000
innodb_autoextend_increment = 48
transaction_prealloc_size = 8192
key_buffer_size = 8M
thread_stack = 524288 ### Previous value : 524288
query_cache_type = 0
query_cache_size = 0
query_cache_limit = 1048576
query_cache_min_res_unit = 4096
max_heap_table_size = 528482304 ### Previous value : 528482304
tmp_table_size = 528482304 ### Previous value : 528482304
innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
innodb_buffer_pool_chunk_size = 2M

Phía trên là file cấu hình MySQL theo Releem đề xuất ở thời điểm hiện tại trên bibica.net, đang dùng VPS miễn phí từ Oracle 😛

Thường mình cứ nâng max các giá trị cho rủng rỉnh, kiểu Opcache cache cho PHP, các file trên WordPress của bạn chưa tới 10MB, VPS bạn 32GB RAM thì bạn set 1GB vào cũng chẳng làm sao 😀 nên trên MySQL mình cũng tăng innodb_buffer_pool_size lên 14GB-16GB =)) xài không tới, nhưng thừa thì nghĩ chẳng ảnh hưởng gì

Kết quả thực tế sử dụng lại khá bất ngờ, vì con VPS 24GB RAM set cấu hình rủng rỉnh, chạy chỉ nhanh hơn con VPS 1 GB RAM set cấu hình siêu hà tiện một tẹo 😀

Releem đưa ra các giá trị cực thì thấp, như innodb_buffer_pool_size, trên trang bibica.net, họ chỉ đề xuất giá trị … 64 MB :]]

Ban đầu thì mình rất không tin tưởng vào đề xuất này, nhưng sau khi dùng theo, thì đúng là các con số cải thiện cực nhiều, nhất là giá trị MySQL Latency và CPU, mình tự cấu hình, chạy vẫn thấy nhanh nhưng MySQL Latency tới 12ms, trong khi dùng các giá trị Releem đề xuất, giảm xuống chỉ còn loanh quanh 2-4ms, thậm chí nhờ cấu hình MySQL tốt, ban đầu CPU max là ~56%, sau khi cài Releem, xuống chỉ còn ~ 36%

Trên WordPress thì bạn có thể dùng Query Monitor để xem thời gian tạo trang cũng khá ổn, như trước đây trang home, nhanh nhất mình nhìn Page Generation Time ~ 0.20s, giờ có thể xuống 0.15s

2023-09-29_10-56-49

Thường nếu không có gì quá đặc biệt, khi vừa cài vào, điểm số đa phần ở mức 80%-85%, cuối ngày sau có nhiều số liệu từ log, điểm sẽ xuống 65%-70%

Khi ổn định rồi, điểm số khá hiếm giao động mạnh nữa, trừ khi bạn vui mồm, cài 1001 các plugin, có thể liên quan tới search trên WordPress chẳng hạn, khi cài vào thường thêm vào database 10-100MB dữ liệu, nhìn hú hồn luôn …. kiểu thế thì Releem cần điều chỉnh lại nhiều hơn

Sau 3-7 ngày tinh chỉnh, số liệu đầy đủ, điểm số ổn định ở mức 90%-95%

Trước khi cài đặt

Nếu được, có thể xóa toàn bộ các giá trị được tạo ra bởi các plugin, script liên quan tới database (file thường nằm ở /etc/mysql/my.cnf hoặc /etc/my.cnf)

Webinoly cũng chỉ dùng cấu hình mặc định của MySQL 😀

Cài đặt Releem

  • Bạn cần Root password của MySQL, mình đang dùng Webinoly, dùng lệnh sudo webinoly -dbpass để xem thông tin
sudo webinoly -dbpass

  root: EFEmK2x6BBVXJ8tm
  admin: v054Nwab5IAe8WiG

Cụ thể Root password của mình là EFEmK2x6BBVXJ8tm

Mục đích cần Root User password là để tạo 1 database có tên releem, nhằm mục đích xem các log, nếu bạn thấy lộ password root hơi ghê thì có thể tự cài đặt thủ công (Releem sẽ không biết root password của bạn)

mysql 2>/dev/null <<EOF
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'@'%';
FLUSH PRIVILEGES;
EXIT;
EOF
  • Đăng kí miễn phí tài khoản releem.com
  • Add server

2023-07-03_15-58-30

  • Chọn MySQL on Linux Server: Automatic Agent Installation

2023-07-03_16-22-23

  • Điền MySQL Root User password của bạn sau đó copy đoạn code hiện ra bên dưới, chạy trên server của bạn
 * Installing and starting Releem Agent service to collect metrics..

 Installing Releem Agent - successful
 Restarting Releem Agent - successful

 * Enabling Performance schema and SlowLog to collect metrics...

 To apply changes to the mysql configuration, you need to restart the service

Please confirm restart MySQL service? (Y/N)
  • Releem sẽ cài đặt các addon cần thiết sau đó yêu cầu restart MySQL
  • Ấn Y để đồng ý

Releem mình nhớ ở thời điểm hiện tại, cũng đã cập nhập Docker MySQL Optimization tự động rồi, bạn nào dùng Docker có thể vào trang chủ của họ đọc hướng dẫn 😀

Sau khi cài Releem

2023-07-02_16-22-39

Sau khi cài đặt xong, bạn cần chờ 24h để Releem theo dõi, tổng hợp (collect) tất cả các hoạt động của database bằng cách ghi lại các log

2023-09-17_19-25-46

Releem sẽ đề xuất các giá trị cần đổi (tài khoản miễn phí, Releem hỗ trợ 10-13 giá trị cơ bản)

2023-09-17_19-27-43

Nếu bạn cài đặt Automatic Agent Installation như ban đầu, giờ chỉ cần ấn vào Apply, MySQL sẽ tự động cập nhập các giá trị

Trong trường hợp bạn hiểu ý nghĩa của từng tùy chọn, thấy giá trị nào phù hợp thì có thể chép tay giá trị đó vào file my.conf cũng được

Xóa Releem

Ví lý do nào đó, cài Releem vào, dùng các giá trị của họ tối ưu, vẫn thấy không có hiệu quả, thì có thể xóa Releem cho đỡ phiền

/opt/releem/releem-agent stop
/opt/releem/releem-agent remove
rm -rf /opt/releem
rm -rf /etc/mysql/releem.conf.d

Chạy tiếp crontab -e, thấy dòng nào có chữ releem thì xóa đi

2023-09-13_3-48-26

Thường nó sẽ là 1-2 dòng cuối cùng, tùy bạn chọn cách cài đặt nào

System Metrics và MySQL Metrics

2023-09-29_11-15-15

Ý tưởng ban đầu của mình khi cài Releem chỉ là MySQL Optimization, tuy thế khi dùng 1 thời gian, thấy phần monitor của họ khá là đẹp, các thông số đủ dùng, mình toàn bật 1 tab trình duyệt sẵn để xem 😀 nó không cho kết quả theo thời gian thực, nhưng để xem dạng báo cáo, thì khá hiệu quả

Tổng kết

Có bất ngờ và cũng không bất ngờ khi dùng Releem

Hiệu năng tối thiểu Releem có thể cải thiện ở tài khoản miễn phí trên MySQL dùng cấu hình mặc định là ~ 30%

Thời điểm vừa cài vào, mình khá là mong chờ, tuy thế vẫn bướng =)) họ đưa ra 1 loạt giá trị cần đổi, có giá trị mình đồng tình, có giá trị mình không đồng tình, nên chỉ thay đổi nửa vời theo đề xuất của họ, dùng vài ngày thì thấy hiệu năng chả khác vẹo gì 😀 xóa đi luôn cho khỏe

Ít hôm sau rỗi rãi cài thử lại trên nhiều nền tảng khác nhau, dùng 100% theo đề xuất của họ thì thấy hiệu quả tuyệt vời, các thao tác trong quản trị, liên quan tới viết bài, sửa bài, post bài, save bài …. tốc độ nhanh hơn từ 30% -50%, đây là chuyện cực khó với người không có kinh nghiệm, các nhà quản trị mạng, lập trình viên, thường tính phí không dưới $1000 cho việc tinh chỉnh liên quan tới database (tại nó khó vãi cả chưởng :D) như tác giả CentminMod cũng từng nói á, không trả đủ $500 teo còn chẳng thèm xuống giường trả lời email 😀

Releem tính giá các gói trả phí với tất cả recommendations ở $49/1 tháng cho 3 server theo mình là hợp lý, shop to, cồng kềnh, thường bạn chỉ cần mua 1 tháng, tinh chỉnh lớn tất cả giá trị, sau đó chuyển sang tài khoản miễn phí là đủ, so với việc phải nhờ các tay chuyên nghiệp tên tuổi thì chi phí rẻ hơn rất nhiều

Lý do sao dạo này mình chịu khó viết bài hơn, cũng là vì thao tác trong quản trị nhanh hơn =)) mỗi lần save lại bài không bị cọc 😀 xưa có khi bài dài, save lại, 8-10s mới thấy xong 🙁 giờ xuống còn 4-6s 😀 ở các bài ngắn như bài đang viết về Releem này, thời gian khi save lại bài viết chỉ 1-1.5s

Bạn nào thích test hiệu năng cường độ cực cao, để viết thành 1 bài giới thiệu chuẩn chỉ cho Releem, có thể tạo 1 trang WordPress + WooCommerce mới, sau đó dùng FakerPress, WP Dummy Content Generator tạo khoảng 100.000 bài viết, sản phẩm, user, comment …. rồi thử xem Releem có cấu hình nổi không cũng được 😀

Mình bữa cũng có thử =)) mà nhìn số liệu đưa ra không hình dung được vì chưa khi nào chạy 1 trang cỡ thế 😀 ai đang có 1 trang siêu to như thế tự cài rồi đánh giá dễ hơn 😀

Trong rất nhiều tình huống mình thử, sau 3-7 ngày đều thấy Releem cải thiện hiệu quả, 1 vài trường hợp thì thay đổi cực kì lớn, nếu trang bạn đã tối ưu tốt quá rồi, hiệu quả có thể ít hơn hoặc thậm chí kém hơn, cũng rất dễ hiểu 😀

Update

2023 10 12 1 24 06

Không liên quan lắm, chủ yếu sau khi mình thêm xóa nhiều quá, tác giả Releem tò mò, chưa hiểu thèng này nó làm gì mà cứ vài hôm cài rồi lại xóa kinh quá, thế nên có email hỏi, trả lời qua lại thì mình có nói là teo đã viết 1 bài giới thiệu về dịch vụ của bọn mài ồi, ảnh coi 1 hồi xong kiu để teo share, nay tình cờ vào twitter thì thấy :]]

Đang khá hài lòng cấu hình MySQL gốc từ CloudPanel sau được Releem tinh chỉnh lại, chạy rất thích, ngoài chuyện nhanh, mượt, còn rất tối ưu về lượng RAM sử dụng

2023 10 12 1 46 44

Trước đây khi tự cấu hình, ở bài test WPPerformanceTester, điểm số WordPress Performance thường cao hơn con số trung bình là ~ 3.1, hiện tại đa phần check khoảng ~0.7, nhanh hơn khá nhiều

Page Generation Time từ 0.20s -> 0.15s và hiện tại có thể xuống -> 0.13s ở trang HOME

Hơi tiếc tí là tác giả hêm tặng êm bản Premium để có thể tự thay đổi tất cả các giá trị 😛 nói chứ cũng hài lòng rồi, nhanh hơn nữa thì chỉ có chạy tool benchmark may ra mới cảm nhận được

Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback.
Notes: However, those deemed to be spam or solely promotional will be deleted.

You can create a Gravatar account, add avatar, then use that email to comment here, your account will have a more beautiful Avatar, easier to recognize with other members.

Please use real emails, you can receive notifications when comments are replied