我正准备用全新的硬件替换一台旧服务器,但有些奇怪的事情发生了。
加载SQL时(请参阅下面),新服务器大约需要32分钟!刚安装完毕后,服务器就没有其他事可做了。另一方面,即使旧服务器忙于其他事情,它也会占用32%的时间,时间也会减少。,怎么可能?
这两台机器都是使用Debian最小映像安装的,然后根据需要安装了软件包。
旧服务器的my.cnf设置和新服务器都使用innodb_file_per_table,而innodb_buffer_pool_size在新服务器上要大得多(16 GBvs0.5GB)。
有关SQL转储的数据:
CREATE DATABASE)LOCK TABLES "xxx" WRITE; ALTER TABLE "xxx" DISABLE KEYS; (由mysqldump生成)有什么办法加快速度吗?
更新
我注意到,旧机器在/var上使用一个专用的50 2TB /var分区,而新机器有一个1TB ext4根分区(包括/var)和一个/home上的2TB ext4。在这两种情况下,MySQL数据都位于/var/lib/mysql/。
更新2
很明显,HDD正在缓慢地处理小块:
# dd if=/dev/zero of=test bs=1024 count=100 oflag=direct,sync
102400 bytes (102 kB) copied, 2.49824 s, 41.0 kB/s旧服务器使用相同的测试访问1.1MB/s。
新服务器可以找到更大的块:
# dd if=/dev/zero of=test bs=1024k count=100 oflag=direct,sync
104857600 bytes (105 MB) copied, 7.11175 s, 14.7 MB/shdparm说两个驱动器上都有写缓存。分区表对齐问题?见我的分区表。
发布于 2012-11-14 16:32:57
好吧,我找到了原因,希望这能帮助到其他人。
ext4在该系统上启用了“屏障”,导致小写入变得非常慢。这样的写入对于数据库文件来说是正常的。
禁用屏障会提高性能,并且相同的SQL转储将在8分钟内加载(这比加载速度快4倍)。
mount -o remount,barrier=0 /禁用障碍会有fs完整性的缺点,所以首先考虑一下.
发布于 2012-11-14 14:59:47
在新配置文件的末尾有以下一行:
!includedir /etc/mysql/conf.d/假设其中的文件与以下内容相同:https://github.com/biapy/howto.biapy.com/tree/master/mysql,这意味着它正在添加这些设置(以及其他设置),您可能需要查看这些设置:
基本优化.base:
log_bin = /var/log/mysql/mysql-bin.log
sync_binlog = 1https://stackoverflow.com/questions/13376906
复制相似问题