Я создаю устройство DM-cache с помощью скрипта:
http://pastebin.com/KTSzL6EA
фактически он запускает эти команды:
dmsetup create suse-cache-metadata --table 0 15872 linear /dev/mapper/suse-cache 0
dmsetup create suse-cache-blocks --table 0 125813248 linear /dev/mapper/suse-cache 15872
dmsetup create storagecached --table 0 2930266112 cache /dev/mapper/suse-cache-metadata /dev/mapper/suse-cache-blocks /dev/mapper/storage 512 1 writethrough default 0
dmsetup resume storagecached
на томе 60GB SSD LVM для кэширования 1.5 TB USB 2.0 HDD. Я монтирую кэшированное устройство dm с:
mount -t btrfs -o noatime,autodefrag,compress=lzo,space_cache /dev/mapper/storagecached /mnt/storage
однако это не работает на всех. Я заметил, что внешний жесткий диск вращается каждый раз, когда я получаю доступ к любому контенту на кэшированном устройстве, и каждый раз, когда какой-то бот получает доступ к моему веб-сайту, даже должен быть кэширован, я думаю, и это довольно раздражает и, наконец, приводит к ошибкам ввода/вывода примерно через неделю, потому что внешний жесткий диск не может обрабатывать непрерывные спин взлеты и спин падения.
Я решил выполнить некоторые тесты и скопировать файл 8gb в /dev / null с помощью dd
команда достигает только 40MB/s. Это та же скорость, что и не кэшированный жесткий диск. Всегда. Как при сухом запуске с протертым кэшем, так и при третьем или четвертом чтении, которое, я думаю, должно быть кэшировано. SSD, используемый для кэша, достигает 92 МБ / с на корневом разделе. Конечно, после каждого стенда я вытирая кэш оперативной памяти linux, чтобы устранить влияние на производительность кэширования оперативной памяти.
Я на самом деле использую этот скрипт на 2 ПК, и ни один из них, похоже, не работает. Я знаю, что writethrough не ускорит написание, но меня больше беспокоит чтение в любом случае.
EDIT:
после осмотра dmsetup status
журналы я заметил, что я получаю ужасно низкие коэффициенты попадания в кэш. Это может быть ее вина?