Estou criando um dispositivo de cache de dm usando meu script:
link
Efetivamente, ele está executando esses 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
no volume de 60gb SSD LVM para armazenamento em cache de 1,5 TB USB 2.0 HDD. Estou montando o dispositivo dm em cache com:
mount -t btrfs -o noatime,autodefrag,compress=lzo,space_cache /dev/mapper/storagecached /mnt/storage
No entanto, parece que não funciona de todo. Eu notei que o HDD externo roda TODA vez que eu estou acessando qualquer conteúdo no dispositivo em cache e toda vez que algum bot está acessando o meu site, mesmo ele deve ser armazenado em cache, eu acho e é muito chato e, finalmente, leva a erros de E / S depois cerca de uma semana porque o HDD externo não consegue lidar com contínuos "spin-ups" e "spin-downs".
Eu decidi realmente executar alguns benchmarks e copiar o arquivo de 8GB para / dev / null com o comando dd
atinge apenas 40MB / s. É a mesma velocidade que o disco rígido não armazenado em cache. Sempre. Ambos em execução seca com cache apagado, bem como terceira ou quarta leitura que eu acho que deve ser armazenado em cache. O SSD usado para cache atinge 92MB / s na partição raiz. É claro que depois de cada banco eu estava limpando o cache de Linux do Linux para eliminar o impacto no desempenho do cache de RAM.
Na verdade, estou usando este script em 2 PCs e nenhum deles parece funcionar. Eu sei que escrever não vai acelerar a escrita, mas estou mais preocupado em ler de qualquer maneira.
EDITAR:
Depois de examinar dmsetup status
logs, percebi que estou obtendo taxas de acertos de cache muito baixas. Pode ser culpa do btrfs?