Meu servidor possui 2 GB de RAM e 120 GB de SSD, além de algumas matrizes RAID para armazenamento. O SO é o Debian 8 (Linux 3.16).
Eu tenho um aplicativo intenso do MySQL que possui tmpdir
= /run/mysqld
, que é tmpfs
configurado pelo Debian através de /etc/default/tmpfs
:
# Size limits. Please see tmpfs(5) for details on how to configure
# tmpfs size limits.
TMPFS_SIZE=40%VM
Isso costumava ser 20%VM
, ou seja, cerca de 384 milhões. Corri contra vários no space left on device
, então aumentei para 40%VM
, mas mesmo com cerca de 763M, ainda é muito pequeno.
Agora, agora devo adicionar mais RAM, mas, por curiosidade, gostaria de saber os limites aqui.
/dev/sdd1
é montado com/
cerca de 50 GB de espaço livre e é bastante rápido (Samsung 850 EVO SSD)/dev/sdd5
é minha partição swap, é 3.7G (o ID do tipo fdisk é 82)TMPFS_SIZE
está definido como40%VM
, o significado/run
é 763M
Agora eu sei que tmpfs podem ser trocados, o que é bom para mim. Quero que o MySQL grave na RAM sempre que possível, mas se precisar de mais memória, posso permitir que o sistema troque-o no SSD.
Então, com minha configuração, posso pressionar /run
para ser:
- 300 milhões? Sim. Esse foi o padrão.
- 1,5 GB grande? Sim, tentei, o MySQL usou até 1,3 GB nele e o sistema funcionou como um encanto. Mas isso ainda é menos da metade da memória física + partição swap.
- 2.5GB grande? Isso é mais do que memória física, mas menos da metade da memória física + minha partição de troca.
- 4GB grande? Isso caberia firmemente na metade física + troca
- Mais? gosta de 10GB? ele pode usar espaço livre
/
para trocar mais?
Eu estou supondo que a regra básica para segurança é TMPFS_SIZE
não ter maior que swap + meia memória física. Posso ir além disso sem aumentar a partição swap?
Além disso, é possível colocar 200%VM
em /etc/default/tmpfs
? Eu li tmpfs(5)
sem saber se posso colocar> 100% nisso.
Por último, devo fazê-lo /etc/fstab
e não tocar /etc/default/tmpfs
?
(saiba que eu só fiz isso mount -o remount
, ainda não reinicializei o servidor)
Editar: para a última pergunta, eu sei que ela pode / pode ser modificada por /etc/fstab
(veja a citação abaixo na página de manual), no entanto, eu queria conhecer as melhores práticas, porque nunca toquei em nada /etc/default
até agora.
Opções de montagem mais complexas podem ser usadas pela criação de uma entrada adequada no / etc / fstab.
Respostas:
Imaginei que poderia testá-lo, então corri:
Funcionou como um encanto:
Então eu preenchi um pouco:
Resultado:
O sistema ainda está em funcionamento. A disponibilidade da troca caiu, o que prova que foi usada:
/run
O swap total é reduzido pela quantia utilizada
/run
.Eu testaria 10 GB em uma VM, porque não sei se o kernel recusará a remontagem ou apenas terá um comportamento inesperado.
Ainda estou procurando uma resposta real, mas a maneira pragmática mostrou que funciona.
fonte