首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >克隆/成像SSD是否会使MySQL数据变得更加零碎?

克隆/成像SSD是否会使MySQL数据变得更加零碎?
EN

Database Administration用户
提问于 2023-03-31 12:39:12
回答 1查看 22关注 0票数 1

在一个MySQL服务器(InnoDB表)上,为了比较查询速度和更快的SSD,我克隆了nvme SSD (使用Macrium ),/var/lib/mysql的容量约为350 GB。但是在克隆到新磁盘后,查询速度大约慢了4倍。

我比较了.4台配置相同的计算机,数据被等分,所以它们都以同样的速度运行,克隆磁盘的计算机完成相同任务的速度慢了4倍。我重新启动了所有服务器,以排除任何存在的缓存。

我还看到,所有3台服务器都在几秒钟内重新启动,而使用克隆SSD的服务器在关闭之前需要几分钟才能完成一些后台MySQL任务。但是我没有注意到任何后台SQL任务在运行时都在运行。我不认为这是一个漫长的后台进程,恢复了失败的长操作。

克隆SSD是否会使数据变得更加零碎?

我试着“优化”表,只是为了看看它是否有任何改进,但优化~15 it表运行了24小时并在计数,所以这是个坏主意。

SSD是不同的,前一个是Kingston DC1000B (“企业”),第二个是Samsung 980 PRO。从水晶盘的基准,三星应该是2-3倍的阅读速度,6倍的速度更快的写入,两倍的IOPS对小文件。

EN

回答 1

Database Administration用户

发布于 2023-03-31 16:21:05

我不得不说是,因为发生在MySQL中的写作的性质

有两种类型中的一种执行写入的文件

第1类:按顺序书写

  • 二进制日志
  • 继电器测井
  • 误差日志
  • 慢速原木
  • 一般日志
  • InnoDB的重做日志(ib_logfile0,ib_logfile1)
  • InnoDB插入缓冲器

类别2:随机书写

  • ibdata1 (系统表空间,数据字典,撤消日志段)
  • .ibd文件(单个表的表空间文件)

写入SSD具有相同的基本性能,无论是顺序的还是随机的。

如果您克隆一个MySQL仍在运行的SSD磁盘,那么所有这些文件都可能会发生更改。与快照开始时相比,按顺序写入的文件可能分散在磁盘上的情况要大得多。所有随机编写的文件也是如此。你很有可能感受到这种克隆的效果。

有两种基本方法可以克隆数据以获得更多的一致性。

方法#1 :关机MySQL和克隆

步骤1:告诉mysqld将所有事务设置诺姆b_快地_关机刷新为0

代码语言:javascript
复制
mysql> SET GLOBAL innodb_fast_shutdown = 0;

步骤2:关闭mysqld

代码语言:javascript
复制
service mysql stop

步骤3:执行快照

步骤4:启动mysqld

代码语言:javascript
复制
service mysql stop

方法2:使用Xtrabackup

您可以对正在运行的mysqld进程执行xtrabackup。

有一种称为流备份的方法。

步骤1:在目标主机上,清除数据文件夹

代码语言:javascript
复制
cd /var/lib
rm -rf mysql
mkdir mysql

步骤2:获取目标主机的IP地址

代码语言:javascript
复制
ip r

or

ip addr show

就本例而言,目标IP为10.20.30.253

步骤3:在目标主机上,设置netcat进程以从源主机捕获流备份(端口9999)

代码语言:javascript
复制
screen -S streaming_backup_from_source
nc -l 9999 | xbstream -c -C /var/lib/mysql

步骤4:在源主机上启动流备份,并在端口9999上将输出重定向到netcat

代码语言:javascript
复制
screen -S streaming_backup_to_target
time innobackupex --no-timestamp --slave-info --user=username -ppassword --open-files-limit=100000 --stream=xbstream /dev/shm | nc -N 10.20.30.253 9999

步骤5:监视屏幕会话,查看流备份何时完成

在目标主机上运行步骤6,运行apply日志选项

代码语言:javascript
复制
innobackupex --apply-log

步骤7:在目标主机上,使文件夹所有者成为mysql

代码语言:javascript
复制
chown -R mysql:mysql /var/lib/mysql

步骤8:在目标主机上,启动mysqld

代码语言:javascript
复制
service mysql start

建议

您应该将所有顺序写入的文件移动到另一个磁盘。我特别推荐二进制日志和慢速日志放在另一个磁盘上,我从Facebook工程师的旧博客文章,并在旧帖子中提到过中学到了这一点。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/325447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档