Bcache 未得到利用,raid/传输速率缓慢

Bcache 未得到利用,raid/传输速率缓慢

我有一个 512 GB SSD,用作 Ubuntu Server 上使用 Bcache 的 42 TB RAID 的缓存。

为了测试其性能,我传输了一个包含大文件和小文件的游戏。当将文件传输到服务器时,我注意到速度上限为 70 MB/s,并且似乎是直接写入硬盘阵列。

当我将文件从服务器传输到我的电脑时,速度偶尔会达到 200 MB/s,但经常会下降。

我正在利用 NFS-Kernel-Server 服务进行文件传输。

/sys/fs/bcache/UUID/cache0/priority_stats shows the cache as not being used at all:
Unused:         99%
Clean:          0%
Dirty:          0%
Metadata:       0%
Average:        0
Sectors per Q:  258144
Quantiles:      [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 2 2]

LSblk shows that all the hard drives and ssds are set up as the bcache:

sda                         8:0    0  14.6T  0 disk
└─md0                       9:0    0  43.7T  0 raid0
  └─bcache0               252:0    0  43.7T  0 disk  /export/raid
                                                     /mnt/raid
sdb                         8:16   0  14.6T  0 disk
└─md0                       9:0    0  43.7T  0 raid0
  └─bcache0               252:0    0  43.7T  0 disk  /export/raid
                                                     /mnt/raid
sdc                         8:32   0  14.6T  0 disk
└─md0                       9:0    0  43.7T  0 raid0
  └─bcache0               252:0    0  43.7T  0 disk  /export/raid
                                                     /mnt/raid
nvme1n1                   259:0    0 465.8G  0 disk
└─bcache0                 252:0    0  43.7T  0 disk  /export/raid
                                                     /mnt/raid

Webmin 指示传输过程中 CPU 使用率约为 30%,表明速度受到硬盘驱动器的限制。

我发现运行该命令tail /sys/block/bcache0/bcache/stats_total/*会显示该特定驱动器的统计信息。

 sudo tail /sys/block/bcache0/bcache/stats_total/*

==> /sys/block/bcache0/bcache/stats_total/bypassed <==
6.5G

==> /sys/block/bcache0/bcache/stats_total/cache_bypass_hits <==
36

==> /sys/block/bcache0/bcache/stats_total/cache_bypass_misses <==
14982

==> /sys/block/bcache0/bcache/stats_total/cache_hit_ratio <==
97

==> /sys/block/bcache0/bcache/stats_total/cache_hits <==
46057

==> /sys/block/bcache0/bcache/stats_total/cache_miss_collisions <==
0

==> /sys/block/bcache0/bcache/stats_total/cache_misses <==
1068

我已经遵循了这个指南:

https://www.kernel.org/doc/html/latest/admin-guide/bcache.html

我已经配置了 RAID,其中支持驱动器和 SSD 作为缓存。我已成功将 SSD 注册为 RAID 的缓存并启用写回模式。

我注意到缓存驱动器没有被利用。

是否需要启用任何其他设置,或者是否有其他方法可以测试此缓存驱动器的功能?

我正在为我妻子的研究设置这个系统,我希望她能够将服务器作为网络驱动器工作。

我希望缓存能够正常运行,以便她在处理缓存时能够体验到不错的速度。

答案1

sequential_cutoff是配置以修复写入速度的设置。默认情况下sequential_cutoff为 4Mb,这意味着任何超过 4Mb 的内容都将直接写入硬盘。

我尝试了 2048Mb 和 4096Mb,没有任何实际变化。将其更改为 0 可使写入速度高达 200Mbps。

当我找出该服务器用于何种数据时,我可能会缩小最佳数量。

命令是

echo 0 > /sys/block/bcache0/bcache/sequential_cutoff 

这是配置 bcache 的有用资源

相关内容