一、调优前必做:3 项核心准备工作

调优可能涉及参数修改,若操作不当可能导致数据库无法启动或数据丢失,因此需先完成以下准备,降低风险:

1.1 完整备份 MariaDB 数据与配置

数据安全是前提,建议采用 “双重备份” 策略:

  • 方法 1:通过 DSM 套件备份

    1. 登录 DSM 管理界面,打开「套件中心」,找到已安装的「MariaDB」,点击「操作」→「备份」;

    1. 在弹出窗口中,选择 “备份范围”(建议勾选 “数据库文件”+“配置文件”),设置备份保存路径(推荐存放在非系统卷,如 Volume 2);

    1. 点击「开始备份」,等待进度条完成(耗时取决于数据量,1GB 数据约需 1-3 分钟)。

  • 方法 2:通过 phpMyAdmin 导出数据

若已安装 phpMyAdmin,可登录后选择需备份的数据库,点击「导出」→「快速」→「执行」,将数据保存为 SQL 文件到本地电脑,避免 NAS 存储故障导致备份失效。

1.2 确认 MariaDB 版本与 DSM 兼容性

不同 MariaDB 版本的参数名称、默认值可能存在差异,需先确认版本:

  1. 打开 DSM「套件中心」,找到「MariaDB」,查看套件详情页的 “版本”(如 10.6.12、10.11.4);

  1. 参考 Synology 官方文档(https://kb.synology.cn/zh-cn/DSM/tutorial/mariadb_performance_tune),确认当前版本支持的调优参数(部分旧版本不支持 innodb_dedicated_server 等自动适配参数)。

1.3 评估 NAS 硬件配置(内存 / CPU 是关键)

MariaDB 调优参数需与 NAS 硬件匹配,尤其是内存大小直接影响缓存参数设置,建议先查看硬件:

  1. 登录 DSM 后,点击桌面「资源监控」→「内存」,查看 “可用内存”(需排除 DSM 系统、其他套件占用,如 Docker、Synology Drive);

  1. 记录 “CPU 核心数”(如双核 Celeron J4125、四核 i3-10105),后续连接数、查询缓存参数需参考 CPU 性能。

二、新手友好:通过 phpMyAdmin 图形化调优(无需命令)

phpMyAdmin 是 DSM 中常用的 MariaDB 管理工具,图形化界面无需代码基础,适合首次调优的用户,核心操作围绕 “变量设置” 与 “性能分析” 展开。

2.1 安装并登录 phpMyAdmin

  1. 打开 DSM「套件中心」,搜索 “phpMyAdmin”,点击「安装」(需提前安装「Web Station」套件,phpMyAdmin 依赖其运行);

  1. 安装完成后,在「套件中心」打开 phpMyAdmin,输入 MariaDB 的 “用户名”(默认 root,若修改过需用自定义账号)和 “密码”(安装 MariaDB 时设置的密码),点击「执行」登录。

2.2 性能调优核心步骤(变量修改)

  1. 登录后,点击顶部导航栏「性能」→「变量」,进入参数配置界面(左侧为参数分类,右侧为参数值与修改入口);

  1. 按 “缓存类”“连接类”“查询优化类” 依次修改关键参数,每修改一个参数后点击「保存」(部分参数需重启 MariaDB 生效,后续会说明重启方法):

2.2.1 缓存类参数(提升数据读取效率)

  • 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。

2.2.2 连接类参数(避免连接超时)

  • max_connections(最大并发连接数)

    • 作用:限制同时连接到 MariaDB 的客户端数量,超过会提示 “Too many connections”;

    • 推荐值:根据 CPU 核心数与应用需求设置:

      • 双核 CPU(如 J4125):设为 50-80(避免 CPU 过载);

      • 四核及以上 CPU(如 i3-10105):设为 100-150(适合多用户访问场景,如小型网站);

    • 配套参数:同时将 “wait_timeout” 设为 600(单位秒,即 10 分钟),避免闲置连接占用资源。

2.2.3 查询优化类参数

  • query_cache_size(查询缓存,仅 MariaDB 10.1 及以下支持)

    • 作用:缓存重复查询结果(如用户反复访问同一文章页的 SQL 查询),10.2 + 版本已移除该参数,需用应用层缓存(如 WordPress 的 WP Rocket)替代;

    • 推荐值:10.1 及以下版本设为 64M-128M,若网站动态内容多(如实时评论),建议关闭(设为 0),避免缓存失效频繁导致性能反降。

2.3 重启 MariaDB 使参数生效

  1. 回到 DSM 管理界面,打开「套件中心」,找到「MariaDB」;

  1. 点击「操作」→「停止」,等待 10-20 秒(确保进程完全关闭);

  1. 再次点击「操作」→「启动」,启动后通过 phpMyAdmin 重新登录,确认参数已更新(在 “变量” 页面搜索对应参数,查看 “当前值” 是否与设置值一致)。

三、进阶操作:通过 SSH 命令行调优(适合技术用户)

若需修改 “phpMyAdmin 无法调整的参数”(如 slow_query_log_file 路径),或需批量配置,可通过 SSH 命令行操作,核心是编辑 MariaDB 的主配置文件 my.cnf。

3.1 开启 DSM 的 SSH 服务

  1. 登录 DSM,打开「控制面板」→「终端机和 SNMP」;

  1. 勾选「启用 SSH 服务」,设置 SSH 端口(默认 22,建议自定义如 2222,提升安全性);

  1. 点击「应用」,此时 NAS 允许通过 SSH 工具连接。

3.2 连接 NAS 并备份配置文件

  1. 打开 SSH 工具(如 PuTTY、FinalShell),输入 NAS 的 “IP 地址”(如 192.168.1.100)和 “端口”(如 2222),点击「连接」;

  1. 输入 DSM 的 “管理员账号”(如 admin)和 “密码”(注意输入时不显示字符,输完按回车);

  1. 执行以下命令,备份 MariaDB 主配置文件(避免修改错误无法恢复):


cp /usr/local/mariadb/etc/my.cnf /usr/local/mariadb/etc/my.cnf.bak

执行后无报错,说明备份成功(可通过ls /usr/local/mariadb/etc/查看是否有 my.cnf.bak 文件)。

3.3 编辑配置文件并设置参数

  1. 执行以下命令,用 vi 编辑器打开配置文件:


vi /usr/local/mariadb/etc/my.cnf

  1. 按「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秒的查询记录为慢查询

  1. 按「Esc」键退出编辑模式,输入「:wq」并按回车(保存并退出 vi 编辑器);若需放弃修改,输入「:q!」回车。

3.4 重启 MariaDB 服务并验证

  1. 执行以下命令重启 MariaDB,使配置生效:


synoservice --restart pkgctl-MariaDB

执行后显示 “restarted”,说明重启成功;若报错,可执行synoservice --status pkgctl-MariaDB查看服务状态。

  1. 验证参数:执行mysql -u root -p,输入 MariaDB 密码登录数据库,再执行show variables like 'innodb_buffer_pool_size';,若显示 “2147483648”(即 2G),说明参数已生效。

四、关键参数速查:按硬件分档推荐配置(表格)

为方便不同硬件的 NAS 用户快速配置,整理核心参数的分档推荐值(基于 DSM 7.2+、MariaDB 10.6+):

参数名称

作用

1GB 可用内存(入门 NAS)

2-4GB 可用内存(主流 NAS)

8GB + 可用内存(高端 NAS)

innodb_buffer_pool_size

InnoDB 数据 / 索引缓存

256M

1G-2.5G

4G-5.5G

key_buffer_size

MyISAM 索引缓存

32M

64M-128M

128M-256M

max_connections

最大并发连接数

30-50

80-100

150-200

wait_timeout

闲置连接超时时间(秒)

600

600

900

slow_query_log

慢查询日志开关

1(开启)

1(开启)

1(开启)

long_query_time

慢查询判定时间(秒)

3

2

1

五、调优后:如何验证效果与排查问题

调优后需通过 “性能监控” 确认效果,若出现异常需及时回滚:

5.1 效果验证方法

  • 方法 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%。

5.2 常见问题排查

  • 问题 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 字段)。

六、调优注意事项:避免踩坑的 5 个关键原则

  1. 不盲目追求 “大参数”:如 NAS 可用内存仅 1GB,却将 innodb_buffer_pool_size 设为 512M,会导致 DSM 系统内存不足,出现卡顿甚至死机;

  1. 参数修改循序渐进:每次只修改 1-2 个核心参数(如先调 innodb_buffer_pool_size,再调 max_connections),避免多参数同时修改导致故障后无法定位原因;

  1. 定期备份配置与数据:建议每月备份一次 MariaDB 配置文件(my.cnf)和数据,若后续升级 DSM 或 MariaDB 套件,参数可能被重置,需重新配置;

  1. 适配应用场景:若数据库仅用于个人博客(低访问量),无需将 max_connections 设为 200,默认 50 即可;若用于企业内部系统(高并发),需适当提升连接数与缓存;

  1. 关注官方更新: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 系统的优化建议。

Synology DSM MariaDB 性能调优完整指南:参数配置、工具使用与优化技巧
上一页:No More

新闻中心

联系我们

技术支持

  • ·

    Synology 无法访问共享文...

  • ·

    Synology NAS Win...

  • ·

    如何用 DiXiM Media ...

  • ·

    Synology DSM常规设置...

  • ·

    Active Backup fo...

  • ·

    Synology NAS打开Of...

  • ·

    Synology Migrati...

  • ·

    Synology Office多...

相关文章

地址:北京市海淀区白家疃尚品园             1号楼225

北京群晖时代科技有限公司

微信咨询