Bcache가 활용되지 않고 RAID/전송 속도가 느림

Bcache가 활용되지 않고 RAID/전송 속도가 느림

Ubuntu Server에서 Bcache를 사용하여 42TB RAID에서 캐시로 사용되는 512GB SSD가 있습니다.

성능을 테스트하기 위해 크고 작은 파일이 모두 포함된 게임을 전송했습니다. 파일을 서버로 전송할 때 속도가 70MB/s로 제한되고 하드 드라이브 배열에 직접 기록되는 것으로 나타났습니다.

서버에서 컴퓨터로 파일을 전송할 때 속도가 가끔 200MB/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.

드라이브와 SSD를 캐시로 지원하는 RAID를 구성했습니다. SSD를 RAID용 캐시로 성공적으로 등록하고 쓰기 저장 모드를 활성화했습니다.

캐시 드라이브가 활용되지 않는 것으로 나타났습니다.

활성화해야 하는 다른 설정이 있습니까? 아니면 이 캐시 드라이브의 기능을 테스트하는 다른 방법이 있습니까?

저는 아내의 연구를 위해 이 시스템을 설정하고 있으며 아내가 서버를 네트워크 드라이브로 사용할 수 있기를 바랍니다.

캐시를 다룰 때 적절한 속도를 경험할 수 있도록 캐시가 제대로 작동하기를 바랍니다.

답변1

sequential_cutoff쓰기 속도를 고정하도록 구성된 설정입니다. 기본값 sequential_cutoff은 4Mb입니다. 즉, 4Mb를 초과하는 모든 항목은 하드 드라이브에 직접 기록됩니다.

2048Mb와 4096Mb를 사용해 보았지만 실제 변화는 없었습니다. 0으로 변경하면 최대 200Mbps의 쓰기 속도가 가능해집니다.

이 서버가 어떤 데이터에 사용되는지 알게 되면 최적의 개수를 좁힐 수도 있습니다.

명령은

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

이것은bcache 구성에 유용한 리소스.

관련 정보