无法使软件 RAID 6 的 rsync 超过 40MB/s。寻求建议

无法使软件 RAID 6 的 rsync 超过 40MB/s。寻求建议

想知道我可以调整什么来让我的 RAID 6 软件 Raid 更快地重新同步。目前它的最大速度为 64MB/s,平均速度约为 25MB/s。希望将其提高到 200MB:

    [root@localhost mnt]# cat /proc/mdstat
    Personalities : [raid6] [raid5] [raid4]
    md127 : active raid6 sdh[5] sdg[4] sdf[3] sde[2] sdd[1] sdc[0]
      8000935168 blocks super 1.2 level 6, 64k chunk, algorithm 2 [6/6] [UUUUUU]
      [====>................]  resync = 21.9% (439396416/2000233792) finish=1148.8min speed=22641K/sec
      bitmap: 12/15 pages [48KB], 65536KB chunk

我已经使用 iostat 检查了瓶颈所在,发现 rrqm 和 wrqm 徘徊在 100 附近,但从未超过它:

10/08/23 20:39:35
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.01    0.00    0.36    1.03    0.00   98.60

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    0.40     26.80     0.00   0.00    1.75    67.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.08
dm-1             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
dm-2             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
dm-3             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
dm-4             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
md0              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
md127            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
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          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
nvme2n1          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.40     26.80     0.00   0.00    2.25    67.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.08
sdc             25.40  17932.00  3895.60  99.35  411.14   705.98   49.00   5638.45  1334.20  96.46   16.54   115.07    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00   11.25  34.47
sdd             23.80  17932.00  3897.20  99.39  905.93   753.45   50.00   5824.05  1381.10  96.51   79.93   116.48    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00   25.56  44.14
sde             26.20  17932.00  3894.60  99.33  417.60   684.43   53.80   5632.05  1330.90  96.11   31.82   104.68    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00   12.65  42.79
sdf             24.90  24414.80  3901.40  99.37 2737.51   980.51   61.10   7334.45  1382.70  95.77 2166.86   120.04    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00  200.56  84.72
sdg            413.70  15671.20  3504.10  89.44    1.37    37.88   50.70   5580.85  1332.00  96.33    1.61   110.08    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.65  10.96
sdh            215.20  15671.20  3702.60  94.51    2.91    72.82   49.50   5772.85  1381.20  96.54    1.37   116.62    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.69  11.74

iostat -xtc -t 10

我已设置的内容:

/sys/block/md127/md/stripe_cache_size to 32768

dev.raid.speed_limit_min = 500000 or 10000
dev.raid.speed_limit_max = 5000000 or 200000

将 /sys/block/sd{c,d,e,f,g,h}/queue/max_sectors_kb 设置为 1024 每个设备的队列深度 (/sys/block/$diskdrive/device/queue_depth) 设置为 10。无法更改它。

[root@localhost mnt]# sysctl -a |grep -Ei vm.dirty
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 20
vm.dirty_writeback_centisecs = 500
vm.dirtytime_expire_seconds = 43200
[root@localhost mnt]#

rrqm 和 wrqm 的定义有据可查:

rrqm/s
The number of read requests merged per second that were queued to the device.
wrqm/s
The number of write requests merged per second that were queued to the device.

%rrqm,%wrqm: The percentage of read/write requests merged at ioscheduler before sent to the device.

但是,该定义与我在 iostat 中看到的行为不太匹配,它被标记为红色,达到但未超过 100%。接近或达到 100% 通常表示某种饱和。

该系统中的驱动器为 6 x 2TB SSD(Patriot)。它们连接到此 HP 盒中的 P440AR。(型号:ATA Patriot P210 204)

所以我很好奇我还可以尝试什么来增加重新同步时间?

10月9日

我将相应地处理每个问题,尽管这听起来很像 ChatGPT 的答案。(顺便说一句,我尝试了 ChatGPT,但经过 2 小时的聊天后,大多数参数并没有真正起作用。);)。当前平均速度为 9MB/s。

  1. CPU 2x Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz。大量空闲核心。我看到的最大值为 3 个核心接近 100%,但大多数时候 1-2 个核心的 iowait 挂起 < 75%。

  2. 试过了。没效果。恢复了。将驱动器设置为 bfq 而不是 mq-deadline 时没有明显效果。

  3. 内核 6.5.2 参数:GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/almalinux-swap rd.lvm.lv=almalinux/root rd.lvm.lv=almalinux/swap elevator=mq-deadline nvme.poll_queue=8"

  4. 还没有文件系统。现在只是在摆弄驱动器。完整的测试箱,因此给了我很多选择。

  5. 256GB

  6. AlmaLinux 9/2

  7. 在 mdadm 和磁盘定义之间将其排列在 64K 块大小上

  8. 往上看。

  9. [root@localhost mnt]# cat /sys/block/md127/md/sync_force_parallel 1 https://unix.stackexchange.com/questions/734715/multiple-mdadm-raid-rebuild-in-parallel

  10. 这是一个全新的净阵列构建。

调度程序设置:

[root@localhost mnt]# cat /sys/block/*/queue/scheduler
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
[root@localhost mnt]# ls -altri /sys/block/*/queue/scheduler
62995 -rw-r--r--. 1 root root 4096 Oct  8 14:28 /sys/block/sdb/queue/scheduler
61092 -rw-r--r--. 1 root root 4096 Oct  8 14:28 /sys/block/nvme0n1/queue/scheduler
61775 -rw-r--r--. 1 root root 4096 Oct  8 14:28 /sys/block/nvme1n1/queue/scheduler
60866 -rw-r--r--. 1 root root 4096 Oct  8 14:28 /sys/block/nvme2n1/queue/scheduler
78483 -rw-r--r--. 1 root root 4096 Oct  8 22:11 /sys/block/sdd/queue/scheduler
78799 -rw-r--r--. 1 root root 4096 Oct  8 22:12 /sys/block/sde/queue/scheduler
79130 -rw-r--r--. 1 root root 4096 Oct  8 22:12 /sys/block/sdf/queue/scheduler
79461 -rw-r--r--. 1 root root 4096 Oct  8 22:12 /sys/block/sdg/queue/scheduler
79792 -rw-r--r--. 1 root root 4096 Oct  8 22:12 /sys/block/sdh/queue/scheduler
80123 -rw-r--r--. 1 root root 4096 Oct  8 22:12 /sys/block/sdi/queue/scheduler
[root@localhost mnt]# echo bfq > /sys/block/sdd/queue/scheduler
[root@localhost mnt]# echo bfq > /sys/block/sde/queue/scheduler
[root@localhost mnt]# echo bfq > /sys/block/sdf/queue/scheduler
[root@localhost mnt]# echo bfq > /sys/block/sdg/queue/scheduler
[root@localhost mnt]# echo bfq > /sys/block/sdh/queue/scheduler
[root@localhost mnt]# echo bfq > /sys/block/sdi/queue/scheduler
[root@localhost mnt]# cat /sys/block/*/queue/scheduler
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
none [mq-deadline] kyber bfq
none mq-deadline kyber [bfq]
none mq-deadline kyber [bfq]
none mq-deadline kyber [bfq]
none mq-deadline kyber [bfq]
none mq-deadline kyber [bfq]
none mq-deadline kyber [bfq]
[root@localhost mnt]#

按照评论中的建议尝试了 P440AR HD RAID 6。速度慢了 25-30%。刚刚完成测试,将其破坏,正在重新创建软件 RAID。HD RAID 6 在 IO 上被严重阻塞。通过一些性能测试填充缓存后,将一个大文件一遍又一遍地复制到具有不同文件名的阵列,在我取消复制后,hdparm -tT /dev/sdX 会完全阻塞 30 多分钟。阻塞时的错误是:

Oct  7 22:17:47 localhost kernel: INFO: task hdparm:9331 blocked for more than 1228 seconds.
Oct  7 22:17:47 localhost kernel:      Not tainted 6.5.2 #3
Oct  7 22:17:47 localhost kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Oct  7 22:17:47 localhost kernel: task:hdparm          state:D stack:0     pid:9331  ppid:6254   flags:0x00004006
Oct  7 22:17:47 localhost kernel: Call Trace:
Oct  7 22:17:47 localhost kernel: <TASK>
Oct  7 22:17:47 localhost kernel: __schedule+0x211/0x660
Oct  7 22:17:47 localhost kernel: schedule+0x5a/0xd0
Oct  7 22:17:47 localhost kernel: wb_wait_for_completion+0x56/0x80
Oct  7 22:17:47 localhost kernel: ? __pfx_autoremove_wake_function+0x10/0x10
Oct  7 22:17:47 localhost kernel: sync_inodes_sb+0xc0/0x100
Oct  7 22:17:47 localhost kernel: ? __pfx_sync_inodes_one_sb+0x10/0x10
Oct  7 22:17:47 localhost kernel: iterate_supers+0x88/0xf0
Oct  7 22:17:47 localhost kernel: ksys_sync+0x40/0xa0
Oct  7 22:17:47 localhost kernel: __do_sys_sync+0xa/0x20
Oct  7 22:17:47 localhost kernel: do_syscall_64+0x5c/0x90
Oct  7 22:17:47 localhost kernel: ? syscall_exit_work+0x103/0x130
Oct  7 22:17:47 localhost kernel: ? syscall_exit_to_user_mode+0x22/0x40
Oct  7 22:17:47 localhost kernel: ? do_syscall_64+0x69/0x90
Oct  7 22:17:47 localhost kernel: ? do_user_addr_fault+0x22b/0x660
Oct  7 22:17:47 localhost kernel: ? exc_page_fault+0x65/0x150
Oct  7 22:17:47 localhost kernel: entry_SYSCALL_64_after_hwframe+0x6e/0xd8
Oct  7 22:17:47 localhost kernel: RIP: 0033:0x7f081163ed5b
Oct  7 22:17:47 localhost kernel: RSP: 002b:00007ffe797ccc28 EFLAGS: 00000217 ORIG_RAX: 00000000000000a2
Oct  7 22:17:47 localhost kernel: RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f081163ed5b
Oct  7 22:17:47 localhost kernel: RDX: 00007f0811600000 RSI: 0000000000200000 RDI: 0000000000000003
Oct  7 22:17:47 localhost kernel: RBP: 0000000000000003 R08: 00000000ffffffff R09: 0000000000000000
Oct  7 22:17:47 localhost kernel: R10: 0000000000000022 R11: 0000000000000217 R12: 00007f0811400000
Oct  7 22:17:47 localhost kernel: R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
Oct  7 22:17:47 localhost kernel: </TASK>
Oct  7 22:17:47 localhost kernel: Future hung task reports are suppressed, see sysctl kernel.hung_task_warnings

还按照评论中的建议尝试了这个:

"echo 8 > /sys/block/md127/md/group_thread_cnt"

但我几乎看不到任何明显的效果。这些 rsync 速度波动很大。

一些 ssacli 号码。我已经将 RAID 0 封装到驱动器上,以利用部分 P440AR 功能,而不是通过 P440AR 使用 HW RAID 6。

=> ctrl slot=3 show

Smart Array P440 in Slot 3
   Bus Interface: PCI
   Slot: 3
   Serial Number: ABC12345678
   Cache Serial Number: ABC12345678
   RAID 6 (ADG) Status: Enabled
   Controller Status: OK
   Hardware Revision: B
   Firmware Version: 4.02-0
   Firmware Supports Online Firmware Activation: False
   Rebuild Priority: High
   Expand Priority: Medium
   Surface Scan Delay: 3 secs
   Surface Scan Mode: Idle
   Parallel Surface Scan Supported: Yes
   Current Parallel Surface Scan Count: 1
   Max Parallel Surface Scan Count: 16
   Queue Depth: Automatic
   Monitor and Performance Delay: 60  min
   Elevator Sort: Enabled
   Degraded Performance Optimization: Disabled
   Inconsistency Repair Policy: Disabled
   Wait for Cache Room: Disabled
   Surface Analysis Inconsistency Notification: Disabled
   Post Prompt Timeout: 15 secs
   Cache Board Present: True
   Cache Status: OK
   Cache Ratio: 75% Read / 25% Write
   Drive Write Cache: Enabled
   Total Cache Size: 4.0
   Total Cache Memory Available: 3.8
   No-Battery Write Cache: Disabled
   SSD Caching RAID5 WriteBack Enabled: True
   SSD Caching Version: 2
   Cache Backup Power Source: Batteries
   Battery/Capacitor Count: 1
   Battery/Capacitor Status: OK
   SATA NCQ Supported: True
   Spare Activation Mode: Activate on physical drive failure (default)
   Controller Temperature (C): 58
   Cache Module Temperature (C): 51
   Number of Ports: 1 Internal only
   Encryption: Not Set
   Express Local Encryption: False
   Driver Name: hpsa
   Driver Version: 3.4.20
   Driver Supports SSD Smart Path: True
   PCI Address (Domain:Bus:Device.Function): 0000:08:00.0
   Negotiated PCIe Data Rate: PCIe 3.0 x8 (7880 MB/s)
   Controller Mode: RAID
   Pending Controller Mode: RAID
   Port Max Phy Rate Limiting Supported: False
   Latency Scheduler Setting: Disabled
   Current Power Mode: MaxPerformance
   Survival Mode: Enabled
   Host Serial Number: ABC12345678
   Sanitize Erase Supported: True
   Primary Boot Volume: None
   Secondary Boot Volume: None

=>

其中一个驱动器(示例):

=> ctrl slot=3 ld 1 show

Smart Array P440 in Slot 3

   Array A

      Logical Drive: 1
         Size: 1.86 TB
         Fault Tolerance: 0
         Heads: 255
         Sectors Per Track: 32
         Cylinders: 65535
         Strip Size: 64 KB
         Full Stripe Size: 64 KB
         Status: OK
         Caching:  Enabled
         Unique Identifier: UNIQUEIDENTIFIER
         Disk Name: /dev/sdd
         Mount Points: None
         Logical Drive Label: DRIVELABEL
         Drive Type: Data
         LD Acceleration Method: Controller Cache


=>

在性能提升的短暂时刻,在重新同步的早期某个时候,它确实达到了下面这个数字,这更符合我对这种阵列的期望,但随后急剧下降:

[root@localhost mnt]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md127 : active raid6 sdi[5] sdh[4] sdg[3] sdf[2] sde[1] sdd[0] 
8000935168 blocks super 1.2 level 6, 64k chunk, algorithm 2 [6/6] [UUUUUU] 
[=>...................] resync = 5.2% (105114044/2000233792) finish=121.2min speed=260430K/sec 
bitmap: 15/15 pages [60KB], 65536KB chunk 
....................
[root@localhost mnt]#

不确定影响,但其中一个 IO 板或控制器的温度为 75C。根据 dmidecode 输出,这似乎是智能阵列 P440 控制器。

我的顶部输出。IO 等待状态下的活动核心数现在更多了。不确定是否是由于 group_thread_cnt 造成的,但如果是,则表明瓶颈是其他东西,因为现在只有更多线程在等待,但重新同步仍然在低速徘徊:

top - 13:04:07 up 22:35,  5 users,  load average: 9.26, 9.27, 9.21
Tasks: 717 total,   1 running, 716 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.1 sy,  0.0 ni, 99.0 id,  0.7 wa,  0.0 hi,  0.2 si,  0.0 st
%Cpu1  :  0.0 us,  2.1 sy,  0.0 ni,  0.7 id, 97.0 wa,  0.1 hi,  0.1 si,  0.0 st
%Cpu2  :  0.0 us,  1.4 sy,  0.0 ni,  1.0 id, 97.4 wa,  0.1 hi,  0.1 si,  0.0 st
%Cpu3  :  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us,  0.7 sy,  0.0 ni,  0.9 id, 98.4 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us,  0.3 sy,  0.0 ni, 99.6 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu8  :  0.0 us,  0.1 sy,  0.0 ni, 98.6 id,  1.2 wa,  0.0 hi,  0.1 si,  0.0 st
%Cpu9  :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu10 :  0.0 us,  0.6 sy,  0.0 ni,  3.3 id, 96.0 wa,  0.0 hi,  0.1 si,  0.0 st
%Cpu11 :  0.0 us,  0.2 sy,  0.0 ni,  0.7 id, 99.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu12 :  0.0 us,  0.3 sy,  0.0 ni, 99.6 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu13 :  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu14 :  0.0 us,  0.7 sy,  0.0 ni, 97.9 id,  1.2 wa,  0.1 hi,  0.1 si,  0.0 st
%Cpu15 :  0.0 us,  0.1 sy,  0.0 ni, 99.8 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu16 :  0.0 us,  0.1 sy,  0.0 ni, 99.7 id,  0.1 wa,  0.0 hi,  0.1 si,  0.0 st
%Cpu17 :  0.0 us,  0.2 sy,  0.0 ni,  0.6 id, 99.1 wa,  0.0 hi,  0.1 si,  0.0 st
%Cpu18 :  0.1 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu19 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu20 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu21 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu22 :  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu23 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu24 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu25 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu26 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu27 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu28 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu29 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu30 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu31 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu32 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu33 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu34 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu35 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu36 :  0.0 us,  1.4 sy,  0.0 ni,  0.7 id, 97.9 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu37 :  0.0 us,  0.4 sy,  0.0 ni, 99.5 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu38 :  0.0 us,  0.2 sy,  0.0 ni,  0.7 id, 99.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu39 :  0.0 us,  0.4 sy,  0.0 ni, 99.4 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu40 :  0.0 us,  0.4 sy,  0.0 ni, 99.5 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu41 :  0.0 us,  0.2 sy,  0.0 ni, 99.7 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu42 :  0.0 us,  0.4 sy,  0.0 ni, 99.5 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu43 :  0.0 us,  0.3 sy,  0.0 ni, 99.6 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu44 :  0.0 us,  0.3 sy,  0.0 ni, 99.6 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu45 :  0.0 us,  0.1 sy,  0.0 ni, 99.8 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu46 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu47 :  0.0 us,  0.1 sy,  0.0 ni, 99.8 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu48 :  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu49 :  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu50 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu51 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu52 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu53 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu54 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu55 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu56 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu57 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu58 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu59 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu60 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu61 :  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu62 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu63 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu64 :  0.1 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu65 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu66 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu67 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu68 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu69 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu70 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu71 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem : 257264.0 total, 253288.3 free,   4062.6 used,   1491.2 buff/cache
MiB Swap:   4096.0 total,   4096.0 free,      0.0 used. 253201.3 avail Mem

我的下一个练习是完全避免通过控制器为每个单独的驱动器设置任何 RAID 6 或 RAID 0。只需让它按原样显示驱动器即可。

10 月 9 日 - 更新 2

我的其他由 NVMe 驱动器组成的阵列似乎也受到了影响。重新同步完成后,两个阵列的时钟频率都应接近 2GB/s,但(md127 = 上面的 SATA SSD 阵列。md0 = NVMe mdadm 软件 raid 6。):

[root@localhost queue]# hdparm -tT /dev/md127

/dev/md127:
 Timing cached reads:     2 MB in  4.54 seconds = 451.26 kB/sec
 Timing buffered disk reads:   2 MB in  3.50 seconds = 585.55 kB/sec
[root@localhost queue]#
[root@localhost queue]#
[root@localhost queue]#
[root@localhost queue]# hdparm -tT /dev/md127

/dev/md127:
 Timing cached reads:     2 MB in  8.77 seconds = 233.61 kB/sec
 Timing buffered disk reads:   2 MB in  5.87 seconds = 349.05 kB/sec
[root@localhost queue]#
[root@localhost queue]#
[root@localhost queue]# hdparm -tT /dev/md0

/dev/md0:
 Timing cached reads:   17256 MB in  1.99 seconds = 8667.23 MB/sec
 Timing buffered disk reads:  48 MB in  3.17 seconds =  15.13 MB/sec
[root@localhost queue]#

没有 md0 (NVMe) RAID 6 阵列:

https://tinyurl.com/bp737ffy

干杯,

答案1

由于您使用的是软件 RAID,因此优化重新同步速度可能涉及不同的考虑因素。以下是提高软件 RAID 重新同步速度的一些其他步骤:

  1. CPU 性能:软件 RAID 严重依赖 CPU 能力。确保您的 CPU 不会成为该过程的瓶颈。在重新同步期间监控 CPU 利用率,并在必要时考虑升级。

  2. I/O调度程序:调整 I/O 调度程序对于软件 RAID 仍然很重要。尝试不同的调度程序,看看是否有任何调度程序可以为您的特定工作负载提供更好的性能。

  3. 内核参数:您已经调整了一些内核参数,但您可以尝试其他参数,例如增加参数md_resync_max_rate以允许更高的重新同步率。

  4. 文件系统和块大小:确保您的文件系统和块大小针对您的工作负载进行了优化。较大的块大小可以提高大文件的性能,而较小的块大小可能对小文件有利。

  5. 监视内存使用情况:内存使用量过大可能会导致性能问题。请确保您的系统具有足够的 RAM,并在重新同步期间监控内存使用情况。

  6. 检查软件更新:确保您的 Linux 发行版和 RAID 软件是最新的。更新可能包括性能改进和错误修复。

  7. 优化磁盘对齐:确保 SSD 分区正确对齐。未对齐会影响性能,尤其是在 SSD 上。

  8. RAID 区块大小:与硬件 RAID 类似,软件 RAID 允许您设置块大小。尝试不同的块大小,看看是否会影响重新同步速度。

  9. 并行重新同步:根据您的软件 RAID 实现(例如 mdadm),您可能能够配置并行重新同步来加快该过程。

  10. 备份还原:在某些情况下,创建新的 RAID 阵列并从备份中恢复数据可能比等待缓慢的重新同步更快,特别是如果您的数据定期备份。

记住要逐步进行更改,测试其影响并监控系统稳定性,以确保任何优化不会引入不稳定或数据损坏。

相关内容