MariaDB10優化範例

一般來說Synology的MariaDB是不太需要調整參數的,因為系統會自動已最佳的方式運作,但是特殊情況例外,比如說重度的DB使用,就需要自己優化一下。參考不少文章,提高DB效能建議調整以下參數。

首先必須要用終端機的方式進去系統內,也就是SSH,可以用Putty,進入後用sudo 創建以下檔案:

sudo vi /var/packages/MariaDB10/etc/my.cnf

設定Thread數量(預設值10)
thread concurrency
thread_concurrency=CPU核心數

調高LogFile,愈大效率越高
innodb log file size
innodb_log_file_size=512MB

調高Buffer空間,太高沒有意義,但經常做更新或者使用了很多blob數據,應該增大這個值。
innodb log buffer size
innodb_log_buffer_size=16MB

增加緩存處理,預設為1,設2可避免爭用(至少1GB)。(會自動根據innodb_buffer_pool_size大小調整[>1GB=8instances])
innodb buffer pool instances
innodb_buffer_pool_instances=2

innodb_buffer_pool_chunk_size
innodb buffer pool chunk size
MAX(innodb_buffer_pool_chunk_size) = innodb_buffer_pool_size / innodb_buffer_pool_instances

增加查詢速度,一般來說約為總記憶體的3/4~4/5
innodb buffer pool size
innodb_buffer_pool_size=16MB

增加一次寫入上限(1073741824是最大值)
max allowed packet
max_allowed_packet=1073741824

設定實例1
假設系統內存 = 128 GB, buffer pool 大小預計100GB(128GB*80%)
innodb_buffer_pool_instances = 8 #默認值,或者邏輯CPU數量
innodb_buffer_pool_chunk_size = 128MB #默認值
innodb_buffer_pool_size = 100 GB # N*8*128MG = N GB ,N 剛好為正整數。設 N=100使得 buffer pool 為總內存的 3/4 至 4/5。
設定實例2
假設要用記憶體為1GB,2核心
[mysqld]
thread_concurrency=2
innodb_log_file_size=512MB
innodb_log_buffer_size=32MB
innodb_buffer_pool_instances=2
innodb_buffer_pool_chunk_size=512MB
innodb_buffer_pool_size=1024MB
max_allowed_packet=1073741824
設定實例3
假設要用記憶體為2GB,4核心
[mysqld]
thread_concurrency=4
innodb_log_file_size=512MB
innodb_log_buffer_size=64MB
innodb_buffer_pool_instances=4
innodb_buffer_pool_chunk_size=512MB
innodb_buffer_pool_size=2048MB
max_allowed_packet=1073741824

重啟DB(筆者執行的結果是沒用啦)

sudo /usr/syno/bin/synopkg restart MariaDB 

如果覺得沒用其實去套件中心停用在啟用,一樣是可以重啟的。

More From Forest Beat

冬の前田森林公園のフリ

在Linux中列出目錄的空間使用大小

列出檔案大小的指令是ls,但是這個指令列出的目錄大小是固定的,又不能自動加總,所以想要知道/home/下各個使用者用了多少檔案空間,那可以參考以下指令
技術
0
minutes
高層ビルのフリー写真素材

Windows 10中的小算盤不見了?

如題小算盤不見了怎麼辦?其實很簡單,搜尋商店,然後輸入關鍵字,安裝一下就可以~~~
技術
0
minutes
桜のフリ

Top 20 Best Programming Languages To Learn in 2024

IT小菜雞必需掌握一種以上的程式語言,因為程式語言是實現軟體解決方案的工具。
技術
0
minutes
サクラのフリ

快速了解MVC、MVP、MVVM、MVI架構的演進

MVC、MVP、MVVM、MVI 都是軟體架構模式,用來組織和管理程式碼,提高程式碼的可讀性、可維護性和可擴展性。
技術
0
minutes
spot_imgspot_img