当前位置:论坛首页 > Linux面板 > 求助

【已完成】sync_binlog 这个文件的在哪里修改 IO延迟过高需...

发表在 Linux面板2023-12-4 21:04 [复制链接] 2 673

为了能快速了解并处理您的问题,请提供以下基础信息:
面板、插件版本:8.0.4
系统版本:cs7 64
问题描述:IO延迟过高 尝试无数种方法 查到这个有效 就是找不到位置
相关截图(日志、错误):
搜索到的修改说明 想要尝试下MySQL在日志在每次事务提交时,都会将其写入并刷新到磁盘,造成磁盘IO的高占用

show variables like 'sync_binlog'; 看其值是否为1,如1,该值意味着:启用在提交事务之前将二进制日志同步到磁盘。这是最安全的设置,但是会造成磁盘的较高占用。

show variables like 'innodb_flush_log_at_trx_commit'; 看其值是否为1,如1,该值意味着:日志会在每次事务提交时写入并刷新到磁盘。

sync_binlog=0:禁用 MySQL 服务器将二进制日志同步到磁盘。相反,MySQL服务器依赖于操作系统不时将二进制日志刷新到磁盘,就像它对任何其他文件所做的那样。此设置提供最佳性能,但在发生电源故障或操作系统崩溃时,服务器可能已提交尚未同步到二进制日志的事务。

sync_binlog=1:启用在提交事务之前将二进制日志同步到磁盘。这是最安全的设置,但由于磁盘写入次数增加,可能会对性能产生负面影响。如果发生电源故障或操作系统崩溃,二进制日志中缺少的事务仅处于就绪状态。这允许自动恢复例程回滚事务,从而保证二进制日志中不会丢失任何事务。

sync_binlog=N,其中 N 是 0 或 1 以外的值:收集二进制日志提交组后,二进制日志将同步到磁盘。如果发生电源故障或操作系统崩溃,服务器可能已提交尚未刷新到二进制日志的事务。由于磁盘写入次数增加,此设置可能会对性能产生负面影响。值越高,性能越高,但数据丢失的风险也会增加。

innodb_flush_log_at_trx_commit=1 :完全符合 ACID 所必需的。日志在每次事务提交时写入并刷新到磁盘。

innodb_flush_log_at_trx_commit=0:每秒将日志写入磁盘并刷新一次。尚未刷新其日志的事务可能会在崩溃中丢失。

innodb_flush_log_at_trx_commit=2:在每次事务提交后写入日志,并每秒刷新一次到磁盘。尚未刷新其日志的事务可能会在崩溃中丢失。

对于设置 0 和 2,不能 100% 保证每秒一次刷新。由于 DDL 更改和其他内部活动导致独立于innodb_flush_log_at_trx_commit设置刷新日志,刷新可能会更频繁地发生,有时由于计划问题而降低刷新频率。如果每秒刷新一次日志,则崩溃时最多可能会丢失一秒钟的事务。如果刷新日志的频率高于或低于每秒一次的频率,则可能丢失的事务量会相应地变化。

可以通过以下两条命令修改配置。

set global sync_binlog=设置期望的合适的值;

set global innodb_flush_log_at_trx_commit=设置期望合适的值;

使用道具 举报 只看该作者 回复
发表于 2023-12-5 09:52:56 | 显示全部楼层
您好,在SSH工具连接服务器命令行下操作登录至MySQL命令行下进行命令执行配置的
无法直接在MySQL配置文件内调整的,如不会操作建议您找下您那边技术给您设置操作
使用道具 举报 回复 支持 反对
发表于 2023-12-13 11:09:42 | 显示全部楼层
您好,由于您的帖子长时间未回复,这边将帖子状态修改已完成,如您当前问题未解决,您可以重新在帖子内回复或者重新发帖子反馈,如是有新问题您可以重新发帖子反馈。
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表