Trong bài viết này, bạn sẽ điều chỉnh lại một số tham số trong tập tin mariadb.cnf nhằm cải thiện tốc độ truy vấn, tối ưu bộ nhớ và tăng độ ổn định tổng thể cho hệ thống cơ sở dữ liệu.
Tinh chỉnh cấu hình MariaDB
Mở file /etc/mysql/mariadb.cnf và thêm các dòng sau vào cuối file:
[mysqld]
# Cấu hình cơ bản
basedir = /usr
bind_address = 127.0.0.1
pid_file = /run/mysqld/mysqld.pid
port = 3306
socket = /run/mysqld/mysqld.sock
tmpdir = /tmp
# Vô hiệu hóa query cache (không cần thiết với InnoDB)
query_cache_type = 0
query_cache_size = 0
# Kết nối
connect_timeout = 60
# Tối ưu InnoDB cho VPS tầm trung
innodb_buffer_pool_size = 128M
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_flush_neighbors = 0
# Log và các giá trị hỗ trợ phân tích hiệu năng
low_priority_updates = 1
disable_log_bin = 1
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/mysql_slow.log
long_query_time = 1
log_error = /var/lib/mysql/mysql_error.log
Cấu hình cho máy chủ mạnh (8 CPU, 16GB RAM)
Nếu bạn đang sử dụng máy chủ có tài nguyên lớn, có thể tăng các giá trị để tận dụng tối đa phần cứng:
[mysqld]
# Cấu hình cơ bản
basedir = /usr
bind_address = 127.0.0.1
port = 3306
socket = /run/mysqld/mysqld.sock
pid_file = /run/mysqld/mysqld.pid
tmpdir = /tmp
# Tối ưu InnoDB
innodb_buffer_pool_size = 8G
innodb_buffer_pool_instances = 8
innodb_log_file_size = 1G
innodb_log_buffer_size = 64M
innodb_flush_log_at_trx_commit = 2
innodb_flush_neighbors = 0
innodb_io_capacity = 1000
innodb_io_capacity_max = 2000
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_file_per_table = 1
innodb_stats_on_metadata = 0
# Tắt query cache nếu dùng InnoDB
query_cache_type = 0
query_cache_size = 0
# Kết nối và timeout
connect_timeout = 10
wait_timeout = 180
interactive_timeout = 180
max_connections = 200
# Cấu hình log
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/mysql_slow.log
long_query_time = 1
log_error = /var/lib/mysql/mysql_error.log
# Bộ nhớ và hiệu suất truy vấn
tmp_table_size = 128M
max_heap_table_size = 128M
table_open_cache = 4096
table_definition_cache = 4096
open_files_limit = 65535
max_allowed_packet = 256M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
join_buffer_size = 4M
# Binary log (bỏ qua nếu không cần replication)
skip_log_bin
Khởi động lại MariaDB để áp dụng cấu hình
systemctl restart mariadb
Sau khi khởi động lại, bạn có thể kiểm tra trạng thái hoạt động của dịch vụ:
systemctl status mariadb
Việc tối ưu đúng cấu hình sẽ giúp MariaDB giảm tải I/O, phân bổ RAM hiệu quả hơn, đồng thời nâng cao tốc độ xử lý truy vấn đáng kể.
Bình luận