bcache vs. dm-cache
Posted: 2021-01-07 12:46
Moin, ich brauch mal wieder eure Schwarmintelligenz.
Mit lokalen SSD möchte ich gerne die langsamen Festplatten mit der Performance aus den SSD schneller machen.
Angefangen habe ich mit einem bcache Setup.
Ich habe 4 SATA Festplatten:
2 SSD /dev/sdc und /dev/sdd als Raid Verbund zusammen gelegt md0
2 Harddisks dies als Raidverbund md1 zusammen gelegt jeweils als Raid 1.
Partition 3 soll gecacht werden:
Die SSD wiederum wurden als Cache eigebunden.
Was mich sehr verwundert, dass die Schreibperformance nicht wirklich besser ist, als ohne.
der Cache status schaut aktuell auch noch nicht so wirllich überragend aus.
Vielleicht messe ich ja falsch?
Mit hdparm sieht es etwas anders aus:
Eventuell interpretiere ich das ja falsch oder Mese falsch?
Ich habe jedenfalls nicht den Eindruck, dass der Writecache wirkt.
Und es steht die Frage im Raum, wär ein dm-cache nicht eventuell besser? LVM existiert ja ohnehin.
Mit lokalen SSD möchte ich gerne die langsamen Festplatten mit der Performance aus den SSD schneller machen.
Angefangen habe ich mit einem bcache Setup.
Ich habe 4 SATA Festplatten:
2 SSD /dev/sdc und /dev/sdd als Raid Verbund zusammen gelegt md0
2 Harddisks dies als Raidverbund md1 zusammen gelegt jeweils als Raid 1.
Code: Select all
md0 : active raid1 sdd[1] sdc[0]
250058944 blocks super 1.0 [2/2] [UU]
bitmap: 1/2 pages [4KB], 65536KB chunk
md1 : active raid1 sdb[1] sda[0]
1953514432 blocks super 1.0 [2/2] [UU]
bitmap: 1/15 pages [4KB], 65536KB chunk
Code: Select all
bcache-super-show /dev/md1p3
sb.magic ok
sb.first_sector 8 [match]
sb.csum 585ec133c041edc9 [match]
sb.version 1 [backing device]
dev.label (empty)
dev.uuid 79029ea5-b54d-45ef-90bc-e28e15a0999f
dev.sectors_per_block 1
dev.sectors_per_bucket 0
dev.data.first_sector 16
dev.data.cache_mode 1 [writeback]
dev.data.cache_state 2 [dirty]
cset.uuid 53cda2af-878c-42d0-b929-f3eadca4e152
Code: Select all
bcache show
Unsupported super block version: 262146
Unsupported super block version: 576460752303423488
Unsupported super block version: 6222723607344775627
Unsupported super block version: 262146
Name Type State Bname AttachToDev
/dev/md0p1 3 (cache) active N/A N/A
/dev/md1p3 1 (data) dirty(running) bcache0 /dev/md0p1
Was mich sehr verwundert, dass die Schreibperformance nicht wirklich besser ist, als ohne.
Code: Select all
dd if=/dev/zero of=./test.dmp bs=512 count=10000000
10000000+0 Datensätze ein
10000000+0 Datensätze aus
5120000000 bytes (5,1 GB, 4,8 GiB) copied, 44,3855 s, 115 MB/sCode: Select all
bcache-status
--- bcache ---
UUID 53cda2af-878c-42d0-b929-f3eadca4e152
Block Size 512 B
Bucket Size 512.00 KiB
Congested? False
Read Congestion 2.0ms
Write Congestion 20.0ms
Total Cache Size 200 GiB
Total Cache Used 8 GiB (4%)
Total Cache Unused 192 GiB (96%)
Evictable Cache 196 GiB (98%)
Replacement Policy [lru] fifo random
Cache Mode writethrough [writeback] writearound none
Total Hits 13472 (37%)
Total Misses 22450
Total Bypass Hits 3937 (%)
Total Bypass Misses 1557206
Total Bypassed 2 GiB
Vielleicht messe ich ja falsch?
Mit hdparm sieht es etwas anders aus:
Code: Select all
hdparm -Tt --direct /dev/bcache0p3
/dev/bcache0p3:
Timing O_DIRECT cached reads: 1398 MB in 2.00 seconds = 698.74 MB/sec
Timing O_DIRECT disk reads: 470 MB in 3.01 seconds = 156.18 MB/sec
static:~ # hdparm -Tt --direct /dev/md1
/dev/md1:
Timing O_DIRECT cached reads: 928 MB in 2.00 seconds = 463.70 MB/sec
Timing O_DIRECT disk reads: 404 MB in 3.01 seconds = 134.14 MB/sec
static:~ # hdparm -Tt --direct /dev/md0
/dev/md0:
Timing O_DIRECT cached reads: 870 MB in 2.00 seconds = 434.13 MB/sec
Timing O_DIRECT disk reads: 1132 MB in 3.00 seconds = 377.04 MB/sec
Ich habe jedenfalls nicht den Eindruck, dass der Writecache wirkt.
Und es steht die Frage im Raum, wär ein dm-cache nicht eventuell besser? LVM existiert ja ohnehin.