dm-cache, кажется, не работает-нет разницы в производительности

Я создаю устройство 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 журналы я заметил, что я получаю ужасно низкие коэффициенты попадания в кэш. Это может быть ее вина?

30
задан Lapsio
09.11.2022 16:44 Количество просмотров материала 3278
Распечатать страницу

2 ответа

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

0
отвечен Lapsio 2022-11-11 00:32

используйте lvmcache (7) для настройки, вы будете намного счастливее. Кроме того, manpage очень полезно для получения и работает. Виду запись/ writethrough политики и СМК политики кэширования, которая по умолчанию только на новых (ядра 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

0
отвечен AdamKalisz 2022-11-11 02:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

cache
hard-drive
linux
memory
ssd
Вверх