Hardware Optimization
Memory
Bộ nhớ là yếu tố quan trọng nhất vì nó cho phép bạn điều chỉnh Biến hệ thống máy chủ. Nhiều bộ nhớ hơn có nghĩa là bộ nhớ cache và khóa bảng lớn hơn có thể được lưu trữ trong bộ nhớ để truy cập đĩa, một thứ tự cường độ chậm hơn, bị giảm.
Chỉ cần thêm bộ nhớ nhiều hơn có thể không dẫn đến cải thiện mạnh mẽ nếu các biến máy chủ không được đặt để sử dụng thêm bộ nhớ khả dụng.
Sử dụng nhiều khe RAM trên bo mạch chủ sẽ làm tăng tần số bus và sẽ có nhiều độ trễ hơn giữa RAM và CPU. Vì vậy, sử dụng kích thước RAM cao nhất trên mỗi khe cắm là tốt hơn.
Disks
Truy cập đĩa nhanh là rất quan trọng, vì cuối cùng nó là nơi chứa dữ liệu. Con số chính là thời gian tìm kiếm đĩa, một phép đo tốc độ của đĩa vật lý có thể di chuyển để truy cập dữ liệu, vì vậy hãy chọn các đĩa có thời gian tìm kiếm càng thấp càng tốt. Bạn cũng có thể thêm các đĩa chuyên dụng cho các tệp tạm thời và nhật ký giao dịch.
CPU
dù các tắc nghẽn phần cứng thường rơi ở nơi khác, bộ xử lý nhanh hơn cho phép các phép tính được thực hiện nhanh hơn và kết quả được gửi lại cho máy khách nhanh hơn. Bên cạnh tốc độ bộ xử lý, tốc độ bus và kích thước bộ đệm của bộ xử lý cũng là những yếu tố quan trọng cần xem xét.
Mặc dù các tắc nghẽn phần cứng thường rơi ở nơi khác, bộ xử lý nhanh hơn cho phép các phép tính được thực hiện nhanh hơn và kết quả được gửi lại cho máy khách nhanh hơn. Bên cạnh tốc độ bộ xử lý, tốc độ bus và kích thước bộ đệm của bộ xử lý cũng là những yếu tố quan trọng cần xem xét.
Operating System Optimizations
Linux kernel settings: IO scheduler
Để cải thiện I/O thì Mariadb sử dụng noop scheduler , Bạn có thể kiểm tra cài đặt lịch trình của mình với:
cat /sys/block/${DEVICE}/queue/scheduler
Ví dụ như sau:
cat /sys/block/sda/queue/scheduler [noop] deadline cfq
có thể tham khảo thêm tại đây: https://www.percona.com/blog/2009/01/30/linux-schedulers-in-tpcc-like-benchmark/
Trong đó có bộ scheduler noop là tốt nhất, sau đó đến deadline: https://access.redhat.com/solutions/109223
Open file limits:
Open file limits không phải là cài đặt liên quan đến hiệu suất, nhưng chạy điểm chuẩn với nhiều người dùng đồng thời có thể đạt giới hạn Open file limits.
Trên hầu hết các hệ thống Linux, giới hạn tệp mở là 1024, có thể không đủ. Đặt giới hạn tệp mở của bạn cao hơn bằng cách chỉnh sửa:
$EDITOR /etc/security/limits.conf
Thêm vào dòng dạng như sau:
#ftp hard nproc 0 #@student - maxlogins 4 * - nofile 16384 # End of file
Đầu ra “” ulimit -a “” của bạn sẽ trông như thế này sau đó:
ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 15975 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) 1744200 open files (-n) 16384
Configuring Swappiness
Tại sao phải tránh Swapping : Do tốc độ xử lý trên ram nhanh hơn nhiều so với trên swap nên hạn chế xử lý trên swap được thì tốt hơn.
Setting Swappiness on Linux
Mặc định thì linux sẽ set swappiness là 60:
sysctl vm.swappiness
Một cài đặt swappiness thấp được khuyến nghị cho khối lượng công việc cơ sở dữ liệu. Đối với cơ sở dữ liệu MariaDB, nên đặt swappiness thành giá trị 1.
vm.swappiness = 1
sau đó reboot để nhận cấu hình hoặc chạy thêm lệnh sau:
sysctl -w vm.swappiness=1
Không nên tắt swap để tránh lỗi hệ thống đặc biệt là để kernel có thể hoạt động gracefully khi có lỗi xảy ra nếu như lượng ram không dư quá nhiều.
File system Optimizations
Hệ thống tập tin không phải là khía cạnh quan trọng nhất của hiệu năng MariaDB. Quan trọng hơn nhiều là RAM có sẵn, tốc độ ổ đĩa, System Variables