调优可能涉及参数修改,若操作不当可能导致数据库无法启动或数据丢失,因此需先完成以下准备,降低风险:
数据安全是前提,建议采用 “双重备份” 策略:
方法 1:通过 DSM 套件备份
登录 DSM 管理界面,打开「套件中心」,找到已安装的「MariaDB」,点击「操作」→「备份」;
在弹出窗口中,选择 “备份范围”(建议勾选 “数据库文件”+“配置文件”),设置备份保存路径(推荐存放在非系统卷,如 Volume 2);
点击「开始备份」,等待进度条完成(耗时取决于数据量,1GB 数据约需 1-3 分钟)。
方法 2:通过 phpMyAdmin 导出数据
若已安装 phpMyAdmin,可登录后选择需备份的数据库,点击「导出」→「快速」→「执行」,将数据保存为 SQL 文件到本地电脑,避免 NAS 存储故障导致备份失效。
不同 MariaDB 版本的参数名称、默认值可能存在差异,需先确认版本:
打开 DSM「套件中心」,找到「MariaDB」,查看套件详情页的 “版本”(如 10.6.12、10.11.4);
参考 Synology 官方文档(https://kb.synology.cn/zh-cn/DSM/tutorial/mariadb_performance_tune),确认当前版本支持的调优参数(部分旧版本不支持 innodb_dedicated_server 等自动适配参数)。
MariaDB 调优参数需与 NAS 硬件匹配,尤其是内存大小直接影响缓存参数设置,建议先查看硬件:
登录 DSM 后,点击桌面「资源监控」→「内存」,查看 “可用内存”(需排除 DSM 系统、其他套件占用,如 Docker、Synology Drive);
记录 “CPU 核心数”(如双核 Celeron J4125、四核 i3-10105),后续连接数、查询缓存参数需参考 CPU 性能。
phpMyAdmin 是 DSM 中常用的 MariaDB 管理工具,图形化界面无需代码基础,适合首次调优的用户,核心操作围绕 “变量设置” 与 “性能分析” 展开。
打开 DSM「套件中心」,搜索 “phpMyAdmin”,点击「安装」(需提前安装「Web Station」套件,phpMyAdmin 依赖其运行);
安装完成后,在「套件中心」打开 phpMyAdmin,输入 MariaDB 的 “用户名”(默认 root,若修改过需用自定义账号)和 “密码”(安装 MariaDB 时设置的密码),点击「执行」登录。
登录后,点击顶部导航栏「性能」→「变量」,进入参数配置界面(左侧为参数分类,右侧为参数值与修改入口);
按 “缓存类”“连接类”“查询优化类” 依次修改关键参数,每修改一个参数后点击「保存」(部分参数需重启 MariaDB 生效,后续会说明重启方法):
innodb_buffer_pool_size(InnoDB 核心缓存)
作用:缓存 InnoDB 表的索引、数据、插入缓冲等,是影响性能的最关键参数,缓存命中率越高,磁盘 IO 越少;
推荐值:根据 NAS 可用内存分配,原则是 “留足系统内存,剩余部分 50%-70% 给该参数”:
可用内存 1GB:设为 256M(避免占用过多系统内存导致 DSM 卡顿);
可用内存 2-4GB:设为 1G-2.5G(如可用 3GB,设为 2G);
可用内存 8GB 以上:设为 4G-5.5G(如可用 8GB,设为 5.5G);
修改:在 “变量” 页面搜索 “innodb_buffer_pool_size”,输入数值(需带单位,如 2G),点击「保存」。
key_buffer_size(MyISAM 索引缓存)
作用:若数据库使用 MyISAM 引擎(旧版 WordPress 可能用),该参数缓存索引文件,提升查询速度;
推荐值:可用内存的 10%-15%,若主要用 InnoDB,设为 64M-128M 即可(避免浪费内存);
注意:MariaDB 10.6 + 默认优先 InnoDB,若确认无 MyISAM 表,可设为 32M。
max_connections(最大并发连接数)
作用:限制同时连接到 MariaDB 的客户端数量,超过会提示 “Too many connections”;
推荐值:根据 CPU 核心数与应用需求设置:
双核 CPU(如 J4125):设为 50-80(避免 CPU 过载);
四核及以上 CPU(如 i3-10105):设为 100-150(适合多用户访问场景,如小型网站);
配套参数:同时将 “wait_timeout” 设为 600(单位秒,即 10 分钟),避免闲置连接占用资源。
query_cache_size(查询缓存,仅 MariaDB 10.1 及以下支持)
作用:缓存重复查询结果(如用户反复访问同一文章页的 SQL 查询),10.2 + 版本已移除该参数,需用应用层缓存(如 WordPress 的 WP Rocket)替代;
推荐值:10.1 及以下版本设为 64M-128M,若网站动态内容多(如实时评论),建议关闭(设为 0),避免缓存失效频繁导致性能反降。
回到 DSM 管理界面,打开「套件中心」,找到「MariaDB」;
点击「操作」→「停止」,等待 10-20 秒(确保进程完全关闭);
再次点击「操作」→「启动」,启动后通过 phpMyAdmin 重新登录,确认参数已更新(在 “变量” 页面搜索对应参数,查看 “当前值” 是否与设置值一致)。
若需修改 “phpMyAdmin 无法调整的参数”(如 slow_query_log_file 路径),或需批量配置,可通过 SSH 命令行操作,核心是编辑 MariaDB 的主配置文件 my.cnf。
登录 DSM,打开「控制面板」→「终端机和 SNMP」;
勾选「启用 SSH 服务」,设置 SSH 端口(默认 22,建议自定义如 2222,提升安全性);
点击「应用」,此时 NAS 允许通过 SSH 工具连接。
打开 SSH 工具(如 PuTTY、FinalShell),输入 NAS 的 “IP 地址”(如 192.168.1.100)和 “端口”(如 2222),点击「连接」;
输入 DSM 的 “管理员账号”(如 admin)和 “密码”(注意输入时不显示字符,输完按回车);
执行以下命令,备份 MariaDB 主配置文件(避免修改错误无法恢复):
cp /usr/local/mariadb/etc/my.cnf /usr/local/mariadb/etc/my.cnf.bak
执行后无报错,说明备份成功(可通过ls /usr/local/mariadb/etc/查看是否有 my.cnf.bak 文件)。
执行以下命令,用 vi 编辑器打开配置文件:
vi /usr/local/mariadb/etc/my.cnf
按「i」键进入编辑模式,在「[mysqld]」段落下添加或修改参数(参考推荐值,根据硬件调整):
[mysqld]# 缓存参数innodb_buffer_pool_size = 2Gkey_buffer_size = 128M# 连接参数max_connections = 100wait_timeout = 600# 查询优化参数slow_query_log = 1 # 开启慢查询日志(便于排查慢SQL)slow_query_log_file = /var/log/mariadb/slow.log # 慢查询日志路径long_query_time = 2 # 超过2秒的查询记录为慢查询
按「Esc」键退出编辑模式,输入「:wq」并按回车(保存并退出 vi 编辑器);若需放弃修改,输入「:q!」回车。
执行以下命令重启 MariaDB,使配置生效:
synoservice --restart pkgctl-MariaDB
执行后显示 “restarted”,说明重启成功;若报错,可执行synoservice --status pkgctl-MariaDB查看服务状态。
验证参数:执行mysql -u root -p,输入 MariaDB 密码登录数据库,再执行show variables like 'innodb_buffer_pool_size';,若显示 “2147483648”(即 2G),说明参数已生效。
为方便不同硬件的 NAS 用户快速配置,整理核心参数的分档推荐值(基于 DSM 7.2+、MariaDB 10.6+):
调优后需通过 “性能监控” 确认效果,若出现异常需及时回滚:
方法 1:查看缓存命中率
登录 phpMyAdmin,点击「性能」→「状态」,搜索 “Buffer pool hit rate”(InnoDB 缓存命中率),若达到 99% 以上,说明缓存配置合理;低于 95% 需增大 innodb_buffer_pool_size。
方法 2:监控 NAS 资源
打开 DSM「资源监控」→「CPU」「内存」,观察数据库运行时 CPU 使用率(正常应低于 70%)、内存使用率(避免 100% 占用导致卡顿);若调优后 CPU / 内存占用下降,说明参数优化有效。
方法 3:测试应用响应速度
若 MariaDB 用于 WordPress,可通过浏览器访问网站,对比调优前后的页面加载时间(如用 Chrome 开发者工具查看 “数据库查询” 耗时),通常优化后可缩短 30%-60%。
问题 1:MariaDB 启动失败
原因:参数设置过大(如内存 1GB 却设 innodb_buffer_pool_size=1G),或配置文件语法错误。
解决:通过 SSH 执行cat /var/log/mariadb/error.log查看错误日志,找到 “Out of memory”(内存不足)或 “syntax error”(语法错误),恢复备份的配置文件(cp /usr/local/mariadb/etc/my.cnf.bak /usr/local/mariadb/etc/my.cnf),重启服务。
问题 2:调优后性能无提升
原因:未找到瓶颈(如慢 SQL 未优化,仅调参数无效),或参数与应用不匹配(如 MyISAM 表却只优化 InnoDB 参数)。
解决:开启慢查询日志(参考第三章参数),找到slow.log中耗时久的 SQL,优化索引(如给 WHERE 条件字段加索引),或确认数据库引擎类型(执行show table status like '表名';查看 Engine 字段)。
不盲目追求 “大参数”:如 NAS 可用内存仅 1GB,却将 innodb_buffer_pool_size 设为 512M,会导致 DSM 系统内存不足,出现卡顿甚至死机;
参数修改循序渐进:每次只修改 1-2 个核心参数(如先调 innodb_buffer_pool_size,再调 max_connections),避免多参数同时修改导致故障后无法定位原因;
定期备份配置与数据:建议每月备份一次 MariaDB 配置文件(my.cnf)和数据,若后续升级 DSM 或 MariaDB 套件,参数可能被重置,需重新配置;
适配应用场景:若数据库仅用于个人博客(低访问量),无需将 max_connections 设为 200,默认 50 即可;若用于企业内部系统(高并发),需适当提升连接数与缓存;
关注官方更新:Synology 会通过套件更新优化 MariaDB 性能,建议在「套件中心」开启 “自动更新”,但更新前需备份数据,避免版本兼容问题。
Synology DSM MariaDB 的性能调优并非 “一蹴而就”,而是基于 “硬件适配 + 应用需求” 的动态调整过程。新手可从 phpMyAdmin 图形化调优入手,优先优化 innodb_buffer_pool_size、max_connections 等核心参数;有技术基础的用户可通过 SSH 命令行深入配置慢查询日志、自定义缓存路径等;调优后需通过监控缓存命中率、资源使用率验证效果,出现问题及时回滚备份。
若需进一步了解参数细节或特殊场景(如 MariaDB 主从复制调优),可参考 Synology 官方教程(https://kb.synology.cn/zh-cn/DSM/tutorial/mariadb_performance_tune),获取更贴合 DSM 系统的优化建议。

地址:北京市海淀区白家疃尚品园 1号楼225
北京群晖时代科技有限公司
