Promox 7.3-3 (ZFS) 主机上的 Ubuntu (ext4) 客户机中的 MySQL 写入速度极慢

Promox 7.3-3 (ZFS) 主机上的 Ubuntu (ext4) 客户机中的 MySQL 写入速度极慢
  1. 我正在尝试使用 Proxmox 7.3-3 作为虚拟机管理程序,并设法ZFS在我的 NVMe 上安装它(Samsung_SSD_970_EVO_Plus_2TB_S6S2NS0T505403V
  2. 我还安装了 Ubuntu 22.04 VM,它的文件系统是ext4
  3. 接下来,我安装了 MySQL 服务器(8.0.32)
  4. 我通常不调整 MySQL,其性能本来就可接受
  5. 但是,使用以下命令提取 20MB 未压缩的 SQL 文件需要 3 分钟mysql < ...
  6. 这比在 Windows 10 VirtualBox 上运行同一个 Ubuntu 客户机时慢得多(20MB 的提取通常需要不到 30 秒)

知道我可能遗漏了什么吗?

更新 1

iostat来自客人,我看到 100%%util是红色,为什么是 100?

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
dm-0             0.00      0.00     0.00   0.00    0.00     0.00 1448.00   6792.00     0.00   0.00    0.67     4.69    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.98 100.00
loop0            0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
loop1            0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
loop2            0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
sda              0.00      0.00     0.00   0.00    0.00     0.00 1075.00   6792.00   373.00  25.76    0.93     6.32    0.00      0.00     0.00   0.00    0.00     0.00  492.00    1.91    1.94 100.00
sdb              0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
sdc              0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
sr0              0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

iostat来自 proxmox,同样 100%

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.44    0.00    0.75    5.77    0.00   92.04

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
nvme0n1          0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
nvme1n1        484.00      0.00     0.00   0.00    1.77     0.00  814.00  20328.00     0.00   0.00    0.02    24.97    0.00      0.00     0.00   0.00    0.00     0.00  484.00    1.77    1.74 100.00
sda              0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
sdb              0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
sdc              0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
sdd              0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
sde              0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
sdf              0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
sdg              0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
zd0              0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
zd16             0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
zd32             0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
zd48             0.00      0.00     0.00   0.00    0.00     0.00  737.00   4916.00     0.00   0.00    0.00     6.67    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00 100.00
zd64             0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
zd80             0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00

proxmox 的zpool iostat -v -l 1

                                     capacity     operations     bandwidth    total_wait     disk_wait    syncq_wait    asyncq_wait  scrub   trim
pool                               alloc   free   read  write   read  write   read  write   read  write   read  write   read  write   wait   wait
---------------------------------  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----
rpool                               208G  1.61T     18    495  76.0K  8.00M   98us   25us   98us   25us  394ns  374ns      -      -      -      -
  nvme-eui.0025385521403c96-part3   208G  1.61T     18    495  76.0K  8.00M   98us   25us   98us   25us  394ns  374ns      -      -      -      -
---------------------------------  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----

更新2

root@pve:~# zfs get all | grep "sync\|logbias"
rpool                     logbias               latency                default
rpool                     sync                  standard               local
rpool/ROOT                logbias               latency                default
rpool/ROOT                sync                  standard               inherited from rpool
rpool/ROOT/pve-1          logbias               latency                default
rpool/ROOT/pve-1          sync                  standard               inherited from rpool
rpool/data                logbias               latency                default
rpool/data                sync                  standard               inherited from rpool
rpool/data/vm-100-disk-0  logbias               latency                default
rpool/data/vm-100-disk-0  sync                  standard               inherited from rpool
rpool/data/vm-100-disk-1  logbias               latency                default
rpool/data/vm-100-disk-1  sync                  standard               inherited from rpool
rpool/data/vm-101-disk-0  logbias               latency                default
rpool/data/vm-101-disk-0  sync                  standard               inherited from rpool
rpool/data/vm-101-disk-1  logbias               latency                default
rpool/data/vm-101-disk-1  sync                  standard               inherited from rpool
rpool/data/vm-102-disk-0  logbias               latency                default
rpool/data/vm-102-disk-0  sync                  standard               inherited from rpool
rpool/data/vm-102-disk-1  logbias               latency                default
rpool/data/vm-102-disk-1  sync                  standard               inherited from rpool
root@pve:~#

答案1

根据 的输出iostat,我们可以看到您的磁盘在处理同步/刷新请求时遇到了困难。这取决于您的磁盘的消费级性质,它缺乏任何断电保护的写回缓存。如您所见,这意味着即使磁盘额定随机写入 iops 高达 560K最大值确实为~500 fsync/s。

好的,你如何加速你的服务器?以下是一些选项,按偏好排序:

  • 如果对于此特定的 Proxmox 服务器来说,丢失最多 5 秒的数据不是问题,您可以通过在主机上运行以下命令来禁用 ZFS 级别的同步直通:zfs set sync=disabled rpool。这将加快全部虚拟机在此服务器上运行,但再次提醒您,您可能会丢失数据(默认情况下最多 5 秒)。但是,由于 ZFS 是 CoW 文件系统,因此即使在设置的情况下,也不会发生一般文件系统损坏sync=disabled

  • 如果这是不可接受的,您可以调整mysql以避免在每次 INSERT 时刷新,而是每 1 秒仅发出 fsync()。您需要的选项是innodb_flush_log_at_trx_commit = 2

  • qemu你可以通过设置图像来设置 Proxmox(或者更好的是)本身,以忽略针对特定虚拟磁盘发出的 fsync()缓存选项为unsafe

相关内容