Я создаю устройство 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

на 60 ГБ тома SSD LVM для кеширования 1,5 ТБ USB 2.0 HDD. Я устанавливаю кешированное устройство dm с помощью:

mount -t btrfs -o noatime,autodefrag,compress=lzo,space_cache /dev/mapper/storagecached /mnt/storage

Однако, похоже, это не работает вообще. Я заметил, что внешний жесткий диск раскручивается КАЖДЫЙ раз, когда я обращаюсь к любому контенту на кэшированном устройстве, и каждый раз, когда какой-то бот обращается к моему веб-сайту, даже он должен быть кеширован, я полагаю, это довольно раздражает и, в конце концов, приводит к ошибкам ввода-вывода после около одной недели, потому что внешний жесткий диск не может справиться с непрерывными ускорениями и замедлениями.

Я решил выполнить некоторые тесты и скопировать 8-гигабайтный файл в /dev /null с помощью команды dd получив всего 40 МБ / с. Это та же скорость, что и у не кешированных HDD. Всегда. Как при пробном запуске с уничтоженным кэшем, так и при третьем или четвертом чтении, которое, я думаю, должно быть кэшировано. SSD, используемый для кэширования, достигает 92 МБ / с в корневом разделе. Конечно, после каждой проверки я очищал кеш Linux, чтобы исключить влияние на производительность кеширования.

Я на самом деле использую этот скрипт на 2 компьютерах, и ни один из них, кажется, не работает. Я знаю, что писание не ускорит письмо, но я все равно больше интересуюсь чтением.

РЕДАКТИРОВАТЬ:

Изучив dmsetup status я заметил, что у меня очень низкие коэффициенты попадания в кэш. Это может быть вина Btrfs?

2 ответа2

0

DM кэш занимает некоторое время для продвижения блоков для кеширования устройства. В отличие от оперативного кэша Linux, политика dmcache по умолчанию требует как минимум нескольких чтений определенных данных, чтобы преобразовать их в SSD, обычно много чтений, более 10. В сочетании с относительно большим количеством запасного плунжера в машине, "тренировка" dmcache может занять много времени. Если размер кэша аналогичен объему запасной памяти, а часто используемые данные занимают много места, он может вообще не работать прилично.

0

Используйте lvmcache(7) для настройки, вы будете намного счастливее. Также man-страница очень полезна для запуска и запуска. Обратите внимание на политики обратной записи / записи и политику кэширования smq, которая по умолчанию включена только в более новых (после ядра 4.2) выпусках. Также это по умолчанию на RHEL 7.2+ или около того.

Вы можете посмотреть мой доклад: https://www.youtube.com/watch?v=6W_xK5Ks-Lw или прочитать слайды: https://www.linuxdays.cz/2017/video/Adam_Kalisz-SSD_cache_testing.pdf

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .