Tối ưu hóa tốc độ MySQL trên DirectAdmin

4.6/5 – (1554 bình chọn)

Trong quá trình sử dụng control panel DirectAdmin có lẽ ai trong số chúng ta cũng từng bị tình trạng MySQL truy vấn tốc độ không được tốt. Và trong bài viết này mình sẽ hướng dẫn các bạn một cách đơn giản để tối ưu hóa tốc độ MySQL trên DirectAdmin.

I. Tổng quan
Mặc định khi chúng ta sử dụng dụng control panel DirectAdmin, chúng ta đa số đều chọn cài đặt cấu hình mặc định, và trong cấu hình mặc định sẽ mặc định cài đặt dịch vụ MySQL cho chúng ta.

Nếu bạn muốn sử dụng MariaDB thay cho MySQL các bạn có thể tham khảo qua hướng dẫn sau.

Hướng dẫn chuyển MySQL sang MariaDB trên DirectAdmin.
Và kể cả bạn có đang sử dụng MySQL hoặc MariaDB thì cũng nên sử dụng phiên bản mới nhất để có được một hiệu suất tối ưu nhất nhé.

Ngoài việc nâng cấp phiên bản chúng ta vẫn còn nhiều cách khác để tối ưu hóa tốc độ MySQL trên DirectAdmin, và cách tối ưu đó là gì mời bạn xem tiếp bài hướng dẫn này. Nhưng VPS hoặc server của bạn sẽ cần có lượng Ram tối thiểu là 2Gb nhé.

II. Tối ưu hóa tốc độ MySQL trên DirectAdmin
Để tối ưu hóa tốc độ MySQL trên DirectAdmin chúng ta thực hiện theo 3 bước sau.

Bước 1: SSH vào hệ thống DirectAdmin của bạn
Để tối ưu hóa tốc độ MySQL trên DirectAdmin, đầu tiên chúng ta cần làm là SSH hoặc truy cập VPS hoặc máy chủ của bạn với quyền root trước. Nếu bạn chưa biết cách SSH vào VPS hoặc Server của bạn thì bạn có thể tham khảo bài viết hướng dẫn sau:

Hướng dẫn đăng nhập vào VPS Linux với giao thức SSH
Sau khi đã SSH thành công chúng ta tiếp tục với bước 2 để bắt đầu quá trình backup toàn bộ database trên DirectAdmin với CustomBuild 2.0.

Bước 2: Backup toàn bộ database trên DirectAdmin với CustomBuild 2.0
Đầu tiên chúng ta cần xem phiên bản CustomBuild đang sử dụng có phải là 2.0 hay không. Để kiểm tra phiên bản CustomBuild đang sử dụng mời bạn xem qua bài hướng dẫn ngắn sau:

Kiểm tra phiên bản CustomBuild đang sử dụng (check custombuild version)
Trong trường hợp phiên bản CustomBuild của bạn thấp hơn 2.0 thì bạn cần nâng cấp CustomBuild 1.x lên 2.0, bạn có thể xem qua bài hướng dẫn sau:

Nâng cấp phiên bản CustomBuild từ 1.x lên 2.0
Sau khi kiểm tra đã có CustomBuild 2.0 chúng ta thực hiện một số lệnh sau:

cd /usr/local/directadmin/custombuild
./build set mysql_backup yes
./build mysql_backup
    

Giải thích các lệnh trên:

  • Lệnh 1: Di chuyển để thư mục custombuild.
  • Lệnh 2: Điều chỉnh cấu hình bật tính năng sao lưu database.
  • Lệnh 3: Khởi chạy quá trình sao lưu database.

Nếu các bạn chưa biết thư mục mysql_backup chứa các database nằm ở đâu thì có thể sử dụng lệnh sau:  

cat /usr/local/directadmin/custombuild/options.conf | grep mysql_backup_dir

Dưới đây là kết quả của mình:

Vậy là thư mục chứa các database được backup ra sẽ là /usr/local/directadmin/custombuild/mysql_backups. Có thể ở trên VPS/Server của bạn sẽ khác, tùy vào cấu hình ở tệp tin /usr/local/directadmin/custombuild/options.conf.

Hoặc bạn cũng có thể thay đổi đường dẫn này bằng cách sử lại cấu hình của tệp tin options.conf nếu muốn.

Vì mình chỉ có một user demo2 với 1 database demo2_test thôi nên khi chạy lệnh ./build mysql_backup thì quá trình này rất nhanh, và chỉ có 2 database được sinh ra, trong đó có một database mặc định.

Kiểm tra danh sách tệp tin tại thư mục này cũng thấy 2 database tương tự log trên.

Trong trường hợp thư mục mysql_backups của bạn đã tồn tại dữ liệu rồi và bạn không muốn bị ghi đè thì có thể thay đổi tên thư mục hiện tại với lệnh sau:  

mv mysql_backups mysql_backups.`date +%F`

Sau khi chạy lệnh này tên thư mục mysql_backups sẽ được đổi thành tên mới dạng mysql_backups.YYYY-mm-dd như hình sau:

Vậy là hoàn tất quá trình backup toàn bộ database trên DirectAdmin. Chúng ta tiếp tục đến bước 3 là bước chính của việc tối ưu hóa tốc độ MySQL trên DirectAdmin trong bài viết này.

Bước 3: Cách tùy chỉnh tối ưu hóa tốc độ MySQL trên DirectAdmin

Sau khi đã backup được tất cả cơ sở dữ liệu của bạn theo bước 2 thì chúng ta mới thực hiện bước này nhé.

Chúng ta thực hiện hai lệnh sau, dành cho VPS hoặc Server trên 8Gb RAM:

cp /etc/my.cnf /etc/my.cnf.old
wget -O /etc/my.cnf http://files.directadmin.com/services/all/mysql/my-huge-5.5.cnf

Giải thích hai lệnh trên:

  • Lệnh 1: Lệnh này sẽ sao lưu tệp tin cấu hình MySQL/MariaDB my.cnf thành tên mới là my.cnf.old. Nhằm trường hợp chúng ta cần lại file này.
  • Lệnh 2: Lệnh này sẽ tải 1 tệp tin cấu hình mẫu đã được tinh chỉnh và tối ưu hóa tốc độ cho MySQL/MariaDB.

Ở đây bạn để ý sẽ thấy có một đường dẫn file cấu hình mặc định đó là http://files.directadmin.com/services/all/mysql/my-huge-5.5.cnf, ngoài file cấu hình mặc định được tối ưu hóa này chúng ta sẽ còn hai file cấu hình mặc định được tối ưu hóa khác là:

  • http://files.directadmin.com/services/all/mysql/my-medium-5.5.cnf
  • http://files.directadmin.com/services/all/mysql/my-large-5.5.cnf

Nếu lượng ram của bạn chỉ ở mức 2Gb thì nên sử dụng hai lệnh dưới nhé:

cp /etc/my.cnf /etc/my.cnf.old
wget -O /etc/my.cnf http://files.directadmin.com/services/all/mysql/my-medium-5.5.cnf

Trường hợp nếu VPS của bạn trên 4Gb Ram thì bạn sử dụng hai lệnh sau:

cp /etc/my.cnf /etc/my.cnf.old
wget -O /etc/my.cnf http://files.directadmin.com/services/all/mysql/my-large-5.5.cnf
    

Sau khi các bạn đã thực hiện 1 trong 3 cấu hình trên tùy hiện tại của VPS hoặc Server mình thì chúng ta sẽ cần khởi động lại MySQL/MariaDB theo lệnh sau để nhận cấu hình mới:

service mysqld restart

Chờ một lát để dịch vụ MySQL/MariaDB khởi động lại là xong.

Vậy là chúng ta đã hoàn tất các bước tối ưu hóa tốc độ MySQL trên DirectAdmin. Tuy là còn rất nhiều cách tối ưu hóa khác nhưng trên đây là cách đơn giản nhất, kể cả những bạn không rành về các thông số cấu hình thì cũng có thể tối ưu được.

III. Tổng kết

Qua bài này mình đã hướng dẫn các bạn cách đơn giản nhất để tối ưu hóa tốc độ MySQL trên DirectAdmin. Và có đến 3 tùy chọn cấu hình cho các bạn lựa chọn sao cho phù hợp với mức ram của VPS/Server mà bạn đang sử dụng.

Hy vọng bài viết hữu ích đối với các bạn. Chúc các bạn có thể thực hiện thành công. 

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *