3つのHDDと1つのSSDがあり、すべてのドライブをbcacheに正常にマウントしました。
pavs@VAS:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 132G 35G 90G 28% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 3.9G 8.0K 3.9G 1% /dev
tmpfs 786M 2.3M 784M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 152K 3.9G 1% /run/shm
none 100M 52K 100M 1% /run/user
/dev/bcache1 2.7T 2.1T 508G 81% /var/www/html/directlink/FTP1
/dev/bcache2 1.8T 614G 1.2T 36% /var/www/html/directlink/FTP2
/dev/bcache0 1.8T 188G 1.6T 11% /var/www/html/directlink/FTP3
/dev/sdf1 367G 284G 65G 82% /media/pavs/e93284df-e52e-4a5d-a9e1-323a388b332f
キャッシュされるドライブはオペレーティングシステムドライブではありません。大容量ファイルの多いハードドライブ3台、平均ファイルサイズ範囲は600MB~2GB、最小ファイルサイズは500MB、最大ファイルサイズは10GBです。
これらのファイルは、Apache Web サーバーから継続的にダウンロードされます。しかし、頻繁にアクセスするファイルでも、IOの速度はわずかにまたはまったく改善されませんでした。 bcacheがどのタイプのキャッシュ式を使用しているのか、最大キャッシュパフォーマンスのために調整できるのかわかりません。理想的には、頻繁にアクセスするファイルがそのファイルに対する要求がないまで少なくとも1日間キャッシュされていることを確認したいと思います。このレベルのきめ細かいキャッシュ調整が可能かどうかはわかりません。読み取りパフォーマンスにのみ興味があり、SSDドライブの最大利用率を確認したいと思います。
編集:によるとこれ。 bcache は順次キャッシュを「阻害」します。これは、私が正しく理解した場合、ほとんどのファイルが大容量シーケンシャルファイルであるために問題になります。デフォルトのシーケンシャルカットオフは4.0Mなので、ファイルがキャッシュされない可能性があるため(わかりません)、各バックアップドライブに対して以下を実行してカットオフを無効にしました。
echo 0 > /sys/block/bcache0/bcache/sequential_cutoff
さて、実際にパフォーマンスが向上するのを待つ必要があります。
bcache統計に従うと、3つのドライブがすべてキャッシュされます。
キャッシュ0
pavs@VAS:~$ tail /sys/block/bcache0/bcache/stats_total/*
==> /sys/block/bcache0/bcache/stats_total/bypassed <==
461G
==> /sys/block/bcache0/bcache/stats_total/cache_bypass_hits <==
9565207
==> /sys/block/bcache0/bcache/stats_total/cache_bypass_misses <==
0
==> /sys/block/bcache0/bcache/stats_total/cache_hit_ratio <==
63
==> /sys/block/bcache0/bcache/stats_total/cache_hits <==
3003399
==> /sys/block/bcache0/bcache/stats_total/cache_miss_collisions <==
659
==> /sys/block/bcache0/bcache/stats_total/cache_misses <==
1698297
==> /sys/block/bcache0/bcache/stats_total/cache_readaheads <==
0
キャッシュ1
pavs@VAS:~$ tail /sys/block/bcache1/bcache/stats_total/*
==> /sys/block/bcache1/bcache/stats_total/bypassed <==
396G
==> /sys/block/bcache1/bcache/stats_total/cache_bypass_hits <==
9466833
==> /sys/block/bcache1/bcache/stats_total/cache_bypass_misses <==
0
==> /sys/block/bcache1/bcache/stats_total/cache_hit_ratio <==
24
==> /sys/block/bcache1/bcache/stats_total/cache_hits <==
749032
==> /sys/block/bcache1/bcache/stats_total/cache_miss_collisions <==
624
==> /sys/block/bcache1/bcache/stats_total/cache_misses <==
2358913
==> /sys/block/bcache1/bcache/stats_total/cache_readaheads <==
0
キャッシュ2
pavs@VAS:~$ tail /sys/block/bcache2/bcache/stats_total/*
==> /sys/block/bcache2/bcache/stats_total/bypassed <==
480G
==> /sys/block/bcache2/bcache/stats_total/cache_bypass_hits <==
9202709
==> /sys/block/bcache2/bcache/stats_total/cache_bypass_misses <==
0
==> /sys/block/bcache2/bcache/stats_total/cache_hit_ratio <==
58
==> /sys/block/bcache2/bcache/stats_total/cache_hits <==
4821439
==> /sys/block/bcache2/bcache/stats_total/cache_miss_collisions <==
1098
==> /sys/block/bcache2/bcache/stats_total/cache_misses <==
3392411
==> /sys/block/bcache2/bcache/stats_total/cache_readaheads <==
0
ベストアンサー1
congested_read_threshold_us
congested_write_threshold_us
bcacheドキュメントを設定し、同じ問題を解決しました。
トラフィックはまだスピンドルに移動します。/キャッシュミスが発生し続けます。
実際の世界では、SSDが常にディスク速度に追いつくわけではありません。特に遅いSSD、1つのSSDでキャッシュされた多くのディスク、またはほとんどの順次IOの場合はさらにそうです。そのため、SSDにボトルネックが発生し、すべてが遅くなるのを防ぎたいと思います。
bcacheがキャッシュデバイスの待ち時間を追跡し、待ち時間がしきい値を超えたときにトラフィックを徐々に調整しないようにします(順次バイパスを減らしてこれを実行します)。
必要に応じて、しきい値を0に設定してこの機能を無効にできます。
# echo 0 > /sys/fs/bcache/<cache set>/congested_read_threshold_us
# echo 0 > /sys/fs/bcache/<cache set>/congested_write_threshold_us
読み取りのデフォルト時間は2000us(2ミリ秒)、書き込みのデフォルト時間は20000です。
これで、すべてのディスクIOがマイSSD(sde)に転送されます。
Device: wrqm/s r/s w/s rkB/s wkB/s await svctm %util
sdb 0.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00
sdd 0.00 0.10 0.30 0.80 0.00 3.00 3.00 0.12
sdc 0.00 2.20 0.30 26.00 0.00 1.76 1.76 0.44
sda 0.00 0.20 0.20 0.80 0.00 8.00 13.00 0.52
sde 293.20 81.70 232.70 1129.20 58220.00 21.05 3.18 100.00
md1 0.00 2.50 0.30 27.60 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
bcache0 0.00 83.00 402.40 1156.80 28994.80 31.70 2.06 99.92