Pregunta dm-cache no parece funcionar, no hay diferencia de rendimiento


Estoy creando un dispositivo dm-cache usando mi script: http://pastebin.com/KTSzL6EA

Efectivamente está ejecutando esos comandos:

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

en 60 gb de volumen SSD LVM para el almacenamiento en caché de 1,5 TB USB 2.0 HDD. Estoy montando el dispositivo dm en caché con:

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

Sin embargo, no parece funcionar en absoluto. He notado que el HDD externo se activa CADA vez que accedo a cualquier contenido en un dispositivo en caché y cada vez que un bot accede a mi sitio web, incluso debería estar en caché, supongo, es bastante molesto y finalmente genera errores de E / S después de alrededor de una semana porque la unidad de disco duro externa no puede manejar repeticiones y giros continuos.

Decidí realizar algunos benchmarks y copiar un archivo de 8 gb a / dev / null con dd comando logra solo 40MB / s. Es la misma velocidad que un HDD no almacenado en caché. Siempre. Tanto en la ejecución en seco con caché borrado, así como en la tercera o cuarta lectura, que creo que se debe almacenar en caché. El SSD utilizado para la memoria caché alcanza 92 MB / s en la partición raíz. Por supuesto, después de cada banco estaba borrando la memoria caché de la memoria RAM de Linux para eliminar el impacto en el rendimiento del almacenamiento en caché de la memoria RAM.

De hecho, estoy usando este script en 2 PC y ninguno de ellos parece funcionar. Sé que escribir no acelerará la escritura, pero de todos modos estoy más preocupado por la lectura.

EDITAR:

Después de examinar dmsetup status registros Me he dado cuenta de que obtengo tasas de aciertos de caché terriblemente bajas. ¿Puede ser culpa de btrfs?


0


origen




Respuestas:


dm cache toma tiempo para promocionar bloques para almacenar en caché el dispositivo. A diferencia de la memoria caché de linux, la política predeterminada de dmcache requiere al menos algunas lecturas de ciertos datos para promocionarlo a SSD, generalmente muchas lecturas, más de 10. Combinado con una cantidad relativamente grande de memoria ram extra en la máquina, puede llevar mucho de tiempo para "entrenar" dmcache. Si el tamaño de la memoria caché es similar a la cantidad de memoria RAM de repuesto y los datos utilizados frecuentemente ocupan mucho espacio, es posible que no funcionen correctamente.


0





Use lvmcache (7) para la configuración, será mucho más feliz. Además, la página de manual es muy útil para comenzar a funcionar. Tenga en cuenta las políticas de writeback / writethrough y la política smq caching, que está predeterminada solo en las versiones más nuevas (post kernel 4.2). También esto está predeterminado en RHEL 7.2+ más o menos.

Puedes ver mi charla: https://www.youtube.com/watch?v=6W_xK5Ks-Lw o lee las diapositivas: https://www.linuxdays.cz/2017/video/Adam_Kalisz-SSD_cache_testing.pdf


0