嘟嘟社区

[经验] [讨论]Hetzner多固态独服的接口速率,顺便提醒大家引以为戒


本帖最后由 zqxinran 于 2024-7-12 00:14 编辑

[讨论]Hetzner多固态独服的接口速率,顺便提醒大家引以为戒

在讨论之前,我先说说我的情况。
我有一台5950x加5个3.84T NVME的hz德国独服。型号都是MZQL23T8HCLS,也就是三星PM9A3。
我相信之前有一些朋友已经在去年9月19日时,看到我当时在MJJ论坛内提过这款机器。
我是PT保种玩家,我这人水平菜,平时没想这么多,就无脑机器上手后直接软raid0安装系统并使用了。
结果没一两天填充了将近10TB数据后,就发现机器怎么平时经常LOAD会飙升,远高于正常值,此时IOWAIT不高,有一个进程(抱歉我忘了是什么进程了)会吃不少CPU。
此时,我保种客户端qb并没有很多传输任务。我可以确定绝对不是因为保种的压力大导致CPU/IO瓶颈。
这个现象经常会出现,然后过一会儿就消失,总之是反反复复。

然后我想起了朋友之前说的,有一些固态用多了用久了,格式化硬盘或者trim都对固态硬盘的性能回复没有任何帮助,唯有全盘写零操作才能彻底解决这个问题,如果还是不能恢复,那么这个固态就只能丢了。因此我进入hz的rescue,进行了所有磁盘的写零操作(这个过程耗时很久,建议用screen或tmux):

  1. mdadm –stop /dev/md/*
  2. wipefs -fa /dev/nvme*n1
  3. blkdiscard -z -f -v /dev/nvme0n1
  4. blkdiscard -z -f -v /dev/nvme1n1
  5. 等等

复制代码

写零操作结束后,我继续软raid0重装系统并重复我上述的流程,然后问题依旧。

此时我就开始怀疑可能我不能继续用raid了。我重新回到hz的rescue,不适用raid的前提下,并把系统安装在了第一个磁盘,即nvme0n1内。系统安装完毕后,我第一次进入系统,便直接把剩余的磁盘全部以JBOD的形式制作了一个大的挂载分区:

  1. mdadm –create –verbose /dev/md0 –level=linear –raid-devices=4 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1
  2. mkfs.ext4 /dev/md0
  3. blkid /dev/md0 |awk ‘{print $2 " /md0 ext4 defaults 0 0"}’ >>/etc/fstab
  4. mkdir /md0
  5. mount /dev/md0 /md0

复制代码

然后还是老样子使用,并写了脚本输出每分钟一次的uptime的输出。
从此问题消失了,已经快3个月了,LOAD里面无论是1分钟,还是5分钟还是15分钟,从未超过1。

在这里,就已经可以确定之前遇到的问题是软raid的问题了,但原因还需要继续挖掘。

有一天,我突然想起一个朋友之前和我说过,SX133的机器,用了扩展卡来连接机器内的12个磁盘。
我手里正好有一台SX133,就做了一些调查:

  1. ls -l /dev/disk/by-path/

复制代码

得到结果:

  1. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-1 -> ../../sda
  2. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-1.0 -> ../../sda
  3. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-2 -> ../../sdc
  4. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-2.0 -> ../../sdc
  5. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-3 -> ../../sdb
  6. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-3.0 -> ../../sdb
  7. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-4 -> ../../sde
  8. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-4.0 -> ../../sde
  9. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-5 -> ../../sdd
  10. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-5.0 -> ../../sdd
  11. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-6 -> ../../sdf
  12. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:00:17.0-ata-6.0 -> ../../sdf
  13. lrwxrwxrwx 1 root root 13 Jun 10 23:54 pci-0000:04:00.0-nvme-1 -> ../../nvme0n1
  14. lrwxrwxrwx 1 root root 15 Jun 10 23:54 pci-0000:04:00.0-nvme-1-part1 -> ../../nvme0n1p1
  15. lrwxrwxrwx 1 root root 15 Jun 10 23:54 pci-0000:04:00.0-nvme-1-part2 -> ../../nvme0n1p2
  16. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:07:00.0-ata-1 -> ../../sdg
  17. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:07:00.0-ata-1.0 -> ../../sdg
  18. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:07:00.0-ata-2 -> ../../sdh
  19. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:07:00.0-ata-2.0 -> ../../sdh
  20. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:07:00.0-ata-3 -> ../../sdi
  21. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:07:00.0-ata-3.0 -> ../../sdi
  22. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:07:00.0-ata-4 -> ../../sdj
  23. lrwxrwxrwx 1 root root  9 Jun 10 23:54 pci-0000:07:00.0-ata-4.0 -> ../../sdj
  24. lrwxrwxrwx 1 root root 13 Jun 10 23:54 pci-0000:b3:00.0-nvme-1 -> ../../nvme1n1
  25. lrwxrwxrwx 1 root root 15 Jun 10 23:54 pci-0000:b3:00.0-nvme-1-part1 -> ../../nvme1n1p1
  26. lrwxrwxrwx 1 root root 15 Jun 10 23:54 pci-0000:b3:00.0-nvme-1-part2 -> ../../nvme1n1p2

复制代码

得到扩展卡情况:
04:00.0扩展卡(或者接口)连接了1个固态
b3:00.0扩展卡(或者接口)连接了1个固态
00:17.0扩展卡(或者接口)连接了6个HDD
07:00.0扩展卡(或者接口)连接了4个HDD
先看HDD的接口速率:

  1. apt install -y smartmontools ; smartctl -a /dev/sda | grep -i sata ; smartctl -a /dev/sdb | grep -i sata ; smartctl -a /dev/sdc | grep -i sata ; smartctl -a /dev/sdd | grep -i sata ; smartctl -a /dev/sde | grep -i sata ; smartctl -a /dev/sdf | grep -i sata ; smartctl -a /dev/sdg | grep -i sata ; smartctl -a /dev/sdh | grep -i sata ; smartctl -a /dev/sdi | grep -i sata ; smartctl -a /dev/sdj | grep -i sata

复制代码

得到的输出结果都是:

  1. SATA Version is:  SATA 3.3, 6.0 Gb/s (current: 6.0 Gb/s)

复制代码

再看NVME的接口速率,得到的输出结果有略微不同:

  1. # lspci -vv -s 04:00.0 | grep -i LnkSta
  2.                 LnkSta:        Speed 8GT/s, Width x4
  3.                 LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ EqualizationPhase1+
  4. # lspci -vv -s b3:00.0 | grep -i LnkSta
  5.                 LnkSta:        Speed 8GT/s, Width x4
  6.                 LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+

复制代码

也就是说SX133这台机器的两个固态的速率是PCIE 3.0×4的。

扯远了,下面用类似的方法看我这台5950x加5个3.84T NVME的hz德国独服。

  1. ls -l /dev/disk/by-path/

复制代码

得到结果:

  1. lrwxrwxrwx 1 root root 13 Jul 11 16:23 pci-0000:04:00.0-nvme-1 -> ../../nvme0n1
  2. lrwxrwxrwx 1 root root 15 Jul 11 16:23 pci-0000:04:00.0-nvme-1-part1 -> ../../nvme0n1p1
  3. lrwxrwxrwx 1 root root 15 Jul 11 16:23 pci-0000:04:00.0-nvme-1-part2 -> ../../nvme0n1p2
  4. lrwxrwxrwx 1 root root 15 Jul 11 16:23 pci-0000:04:00.0-nvme-1-part3 -> ../../nvme0n1p3
  5. lrwxrwxrwx 1 root root 13 Jul 11 16:23 pci-0000:08:00.0-nvme-1 -> ../../nvme1n1
  6. lrwxrwxrwx 1 root root 13 Jul 11 16:23 pci-0000:09:00.0-nvme-1 -> ../../nvme2n1
  7. lrwxrwxrwx 1 root root 13 Jul 11 16:23 pci-0000:0a:00.0-nvme-1 -> ../../nvme3n1
  8. lrwxrwxrwx 1 root root 13 Jul 11 16:23 pci-0000:0b:00.0-nvme-1 -> ../../nvme4n1

复制代码

再看NVME的接口速率,得到的输出结果开始变得不太一样了:

  1. # lspci -vv -s 04:00.0 | grep -i LnkSta
  2.                 LnkSta:        Speed 8GT/s (downgraded), Width x4
  3.                 LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ EqualizationPhase1+
  4. # lspci -vv -s 08:00.0 | grep -i LnkSta
  5.                 LnkSta:        Speed 16GT/s, Width x4
  6.                 LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+
  7. # lspci -vv -s 09:00.0 | grep -i LnkSta
  8.                 LnkSta:        Speed 16GT/s, Width x4
  9.                 LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+
  10. # lspci -vv -s 0a:00.0 | grep -i LnkSta
  11.                 LnkSta:        Speed 16GT/s, Width x4
  12.                 LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+
  13. # lspci -vv -s 0b:00.0 | grep -i LnkSta
  14.                 LnkSta:        Speed 16GT/s, Width x4
  15.                 LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+

复制代码

因此可以得知,nvme0n1速率是PCIE 3.0×4,其他4个盘速率都是速率是PCIE 4.0×4。
或许,从这里就可以解释,为何我全部固态做软raid0后会导致经常LOAD爆炸的情况。

最后,感谢各位看到这里。我得到的结论不一定对,如果各位有类似的经验,也欢迎分享,让大家共同学习!
谢谢!

以下内容更新于2024.7.12 0:14

今天发帖后,我听朋友建议给hz客服发了工单,申请更换那块降级降速的盘的线。
等了一段时间,hz客服回复说已经更换了这块盘的cable和adapter。我在rescue内检查确认固态速率问题都已解决。
但自己的系统死活进不去(没网络),我只能自行在rescue内排查。发现了PCIE设备的编号几乎全部都更换了。经朋友提醒,改变PCIE顺序会导致网卡名称变更,而我是debian 12系统,如果系统的网卡信息不是DHCP,就无法自动启动网络。
因此要么rescue挂载原先系统并修改网卡名,要么Remote Console直接操作登录正常启动的系统并修改网卡名。
最后我要一提去年9月26日在MJJ论坛发帖说过的另一台5950x加1个480G SATA SSD和6个3.84T NVME的hz德国独服。这个机器的6个NVME盘全部都是降级到PCIE 3.0×4的速率。
那么是不是应该再找hz客服更换硬盘线呢?
答案是否定的,因为5950x只有24条PCIE 4.0通道。
最后,本次问题圆满解决!
我依然建议,速率不同的机器,甚至型号不同的磁盘,不要做raid。

666
手机上看不方便,看起来有点意思
这个可以去写在hz 社区,或许可以得到优惠券。
我的几台5950x,挂火车头,一段时间就死机进不去,要手动重启,会不会是这个原因

bingo131 发表于 2024-7-11 21:03
我的几台5950x,挂火车头,一段时间就死机进不去,要手动重启,会不会是这个原因 …

这个问题完全排除,因为我手里的5950x机器从来不会自动重启,无论CPU满载24/7还是空闲用于毫无压力的PT保种。

点了收藏
祝楼主不要被封号
以下内容更新于2024.7.12 0:14

今天发帖后,我听朋友建议给hz客服发了工单,申请更换那块降级降速的盘的线。
等了一段时间,hz客服回复说已经更换了这块盘的cable和adapter。我在rescue内检查确认固态速率问题都已解决。
但自己的系统死活进不去(没网络),我只能自行在rescue内排查。发现了PCIE设备的编号几乎全部都更换了。经朋友提醒,改变PCIE顺序会导致网卡名称变更,而我是debian 12系统,如果系统的网卡信息不是DHCP,就无法自动启动网络。
因此要么rescue挂载原先系统并修改网卡名,要么Remote Console直接操作登录正常启动的系统并修改网卡名。
最后我要一提去年9月26日在MJJ论坛发帖说过的另一台5950x加1个480G SATA SSD和6个3.84T NVME的hz德国独服。这个机器的6个NVME盘全部都是降级到PCIE 3.0×4的速率。
那么是不是应该再找hz客服更换硬盘线呢?
答案是否定的,因为5950x只有24条PCIE 4.0通道。
最后,本次问题圆满解决!
我依然建议,速率不同的机器,甚至型号不同的磁盘,不要做raid。

每月花几百欧挂PT
大佬快U我50万

zqxinran 发表于 2024-7-11 21:06
这个问题完全排除,因为我手里的5950x机器从来不会自动重启,无论CPU满载24/7还是空闲用于毫无压力的PT保 …

不是自动重启,是卡住了,要手动订购重启才能进去win桌面