Synology NASのDSM 7環境でMariaDBのパフォーマンスを最適化するためには、設定ファイル(my.cnf)の調整が効果的です。本記事では、my.cnfファイルの編集方法と具体的なチューニング項目について解説します。
前提 本記事でのDSM(OS)バージョンはSynology DSM 7.2を用いています。
1.my.cnfファイルの場所
MariaDBのバージョン10を使用している場合、my.cnfファイルは以下のディレクトリに存在します:
/var/packages/MariaDB10/etc
もしこのディレクトリ内にmy.cnfファイルが存在しない場合は、新しく作成してください。
2.my.cnfファイルの編集
my.cnfファイルを編集する際は、SSH経由でNASにアクセスし、適切なテキストエディタ(例:vi)を使用します。
以下に、パフォーマンス向上のための主な設定項目を示します:
[mysqld]
# #################
# InnoDB設定
# #################
# InnoDBの更新ログを記録するディスク上のファイルサイズ
# innodb_buffer_pool_sizeの1/4程度が目安
innodb_log_file_size=256M
# #################
# その他の設定
# #################
# MEMORYテーブルの最大サイズ。このサイズを超えるとディスク上に作成されます
max_heap_table_size=64M
# スレッドごとに作成される一時テーブルの最大サイズ
tmp_table_size=64M
# 遅延フラッシュを有効化(電源保護が必要)
innodb_flush_log_at_trx_commit=2
# クエリキャッシュを有効化
query_cache_size=128M
query_cache_type=1
2.1 innodb_buffer_pool_sizeについて
innodb_buffer_pool_sizeは、データとインデックスをキャッシュする重要なパラメータであり、通常は物理メモリの80%を設定するのが推奨されます。
ただし、Synology DSMではMariaDBの管理画面に専用の設定ダイアログが用意されており、そこから innodb_buffer_pool_size を設定可能です。DSMのMariaDB管理画面で適切な値を指定してください。

また、物理メモリの80%はデータベース専用サーバの場合であるため、NASのように様々な用途に使用する汎用サーバであれば、他の用途に使用するメモリ量も勘案して設定します。
うちの場合は物理メモリ搭載量は10GBですが、仮想計算機等の起動も行うため、innodb_buffer_pool_sizeには1GBの割り付けとしました。
2.2 遅延フラッシュとUPSの重要性
innodb_flush_log_at_trx_commit=2 を設定すると、ディスクへの書き込みが遅延されるため、パフォーマンスは向上しますが、停電などの突発的な電源断が発生した場合、データの消失リスクが高まります。そのため、UPS(無停電電源装置)を導入し、安定した電源環境を確保することが推奨されます。
Synology NASにUPSを追加する方法については、以下の事例を参考にしてください。
3.設定の適用
設定を反映させるためには、MariaDBサービスの再起動が必要です。以下のコマンドを実行して再起動してください:
sudo /usr/syno/bin/synopkg restart MariaDB10
この操作により、新しい設定が適用されます。なお、MariaDBパッケージの更新やDSMの再起動後も、これらの設定は保持されます。
4.まとめ
my.cnfファイルの適切なチューニングにより、MariaDBのパフォーマンスを大幅に向上させることが可能です。特に、InnoDB関連の設定はデータベースの応答性に直結するため、NASのハードウェアスペックに応じて最適な値を設定してください。
なお、innodb_buffer_pool_size については、DSMのMariaDB管理画面で設定するのが推奨されます。それ以外のパラメータは、SSHを利用して手動でチューニングできます。
また、遅延フラッシュを有効にする場合は、UPSを導入して電源保護を強化することを忘れないようにしましょう。UPSの詳細な設定方法については、上記のリンクを参照してください。
以上、最後まで記事を読んでいただき、ありがとうございました。