Docker – de A a Z – 20 – Volume TMPFS – o poder do file system em memória
Publicado em: domingo, 15 de set de 2019

Uma das coisas lindas do Linux é a separação volumes e file system. E você não faz ideia do que dá para fazer com file system em memória!!!?

No windows quando escrevemos no C: sabemos que estamos escrevendo em um disco ou no máximo em um raid. Não importa qual path seja.

No linux, não é assim que vemos como escrevemos. Seu file system não é segmentado por unidades, seu file system é uma estrutura lógica e qualquer path pode estar fisicamente em um disco ou até na rede. Mas também pode estar em memória.

tmpfs

Um dos sitemas de arquivos disponíveis no linux é o TmpFS:

tmpfs trata-se de um sistema de arquivos que não armazena as informações em dispositivos de armazenamento persistente como HDmemória flashdisqueteCDDVD, etc. Em vez disso, manipula informações diretamente na memória RAM, assim como o procfs. Muitas distribuições Unix habilitam e usam o tmpfs (nativo no Linux desde o núcleo 2.4 [1]) como padrão ao diretório /tmp ou para compartilhamento de memória.” Fonte: Wikipedia

Imagine que você tem um processamento de imagens, algo que pegue uma imagem em um formato X, e transforme em Y. Foi o que fiz no gago.io, na nova home, que entrega todas as imagens em WEBP. Mas eu não editei meu wordpress para entregar as imagens em WEBP, em vez disso criei um serviço que faz a conversão e entrega a imagem da forma que eu quero. E acredite, em comparação ao meu PNG de todo dia, a diferença chega a ser de mais de 1000% em banda.

Mas eu tinha um dilema, precisava persistir a imagem em disco para rodar um conversor de imagens do google, e como fazer isso de forma performática. Foi quando lembrei da possibilidade de usar o tmpfs, e resolvi parar para ler um pouco sobre ele. Como você viu na descrição da Wikipedia, esse file system está na memória. E nessa infra, onde esse processo precisa rodar, memória não é problema, são 64GB onde mais da metade está sobrando!

O que você precisa fazer?

Além de descobrir se há memória suficiente, basta criar um volume, com algumas configurações especiais e usar esse volume.

Passo a passo:

docker volume create --driver local \
--opt type=tmpfs \
--opt device=tmpfs \
--opt o=size=1000m,uid=1000 \
tmpfs_volume

Pronto, temos 1GB de RAM pronto para ser usado no meu container!

Agora basta montar o volume como um volume qualquer, e pronto!

docker run -d \
  -it \
  --name devtest \
  --mount source=tmpfs_volume,target=/tmp \
  appimage:latest

Vale lembrar que quando o último container consumindo esse volume morre, os dados morrem com ele.

Demo

Luiz Carlos Faria

Mensagem do Autor

Espero que goste desse post. Não deixe de comentar e falar o que achou. 

Se acha que esse post pode ajudar alguém que você conheça, compartilhe!

 

Eventos passados

novembro 2020
outubro 2020
setembro 2020
agosto 2020
Nenhum evento encontrado!
Carregar Mais

Publicidade

Assine

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.

Agenda & Eventos

outubro

novembro 2020

dezembro
DOM
SEG
TER
QUA
QUI
SEX
SAB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
Events for 1st novembro
Sem Eventos
Events for 2nd novembro
Sem Eventos
Events for 3rd novembro
Sem Eventos
Events for 4th novembro
Sem Eventos
Events for 5th novembro
Sem Eventos
Events for 6th novembro
Sem Eventos
Events for 7th novembro
Sem Eventos
Events for 8th novembro
Sem Eventos
Events for 9th novembro
Sem Eventos
Events for 10th novembro
Sem Eventos
Events for 11th novembro
Sem Eventos
Events for 12th novembro
Events for 13th novembro
Sem Eventos
Events for 14th novembro
Sem Eventos
Events for 15th novembro
Sem Eventos
Events for 16th novembro
Sem Eventos
Events for 17th novembro
Sem Eventos
Events for 18th novembro
Sem Eventos
Events for 19th novembro
Sem Eventos
Events for 20th novembro
Sem Eventos
Events for 21st novembro
Sem Eventos
Events for 22nd novembro
Sem Eventos
Events for 23rd novembro
Sem Eventos
Events for 24th novembro
Sem Eventos
Events for 25th novembro
Sem Eventos
Events for 26th novembro
Sem Eventos
Events for 27th novembro
Sem Eventos
Events for 28th novembro
Sem Eventos
Events for 29th novembro
Sem Eventos
Events for 30th novembro
Sem Eventos
Share This