Mon serveur a 2 Go de RAM et 120 Go de SSD, ainsi que des matrices RAID pour le stockage. Le système d'exploitation est Debian 8 (Linux 3.16).
J'ai une application MySQL intense qui a tmpdir
= /run/mysqld
, qui est tmpfs
configurée par Debian via /etc/default/tmpfs
:
# Size limits. Please see tmpfs(5) for details on how to configure
# tmpfs size limits.
TMPFS_SIZE=40%VM
C'était le cas 20%VM
, ce qui représente environ 384 millions de dollars. J'ai couru contre plusieurs no space left on device
, donc je l'ai augmenté à 40%VM
, mais même avec environ 763M, il est encore trop petit.
Maintenant, je dois maintenant ajouter plus de RAM, mais par curiosité, j'aimerais connaître les limites ici.
/dev/sdd1
est monté sur/
a environ 50 Go d'espace libre et est assez rapide (Samsung 850 EVO SSD)/dev/sdd5
est ma partition de swap, elle est de 3,7 G (l'ID de type fdisk est 82)TMPFS_SIZE
est défini sur40%VM
, ce qui signifie/run
763M
Maintenant, je sais que tmpfs peut échanger, ce qui me convient. Je veux que MySQL écrive dans la RAM autant que possible, mais s'il a besoin de plus de mémoire, je peux autoriser le système à l'échanger sur le SSD.
Donc avec ma configuration, puis-je pousser /run
à être:
- 300M gros? Oui. C'était le défaut.
- 1,5 Go gros? Oui, essayé, MySQL a utilisé jusqu'à 1,3 Go et le système a fonctionné comme un charme. Mais c'est toujours moins de la moitié de la mémoire physique + partition de swap.
- 2,5 Go gros? C'est plus que de la mémoire physique, mais moins de la moitié de la mémoire physique + ma partition de swap.
- 4 Go gros? Cela s'inscrirait étroitement dans la moitié physique + swap
- Plus? comme 10 Go? peut-il utiliser de l'espace libre
/
pour échanger davantage?
Je suppose que la règle de base pour la sécurité est de ne TMPFS_SIZE
pas avoir plus de swap + la moitié de la mémoire physique. Puis-je aller au-delà sans augmenter la partition de swap?
Aussi, est - il possible de mettre 200%VM
en /etc/default/tmpfs
? J'ai lu tmpfs(5)
sans savoir si je peux mettre> 100% à ce sujet.
Enfin, dois-je le faire à la /etc/fstab
place et ne pas toucher /etc/default/tmpfs
?
(jusqu'à savoir que je ne l'ai fait qu'avec mount -o remount
, je n'ai pas encore redémarré le serveur)
Edit: pour la dernière question, je sais qu'elle peut / peut être modifiée par /etc/fstab
(voir la citation ci-dessous de la page de manuel), mais je voulais connaître la meilleure pratique, car je n'ai jamais rien touché /etc/default
jusqu'à présent.
Des options de montage plus complexes peuvent être utilisées par la création d'une entrée appropriée dans / etc / fstab.
Réponses:
J'ai pensé que je pouvais juste le tester, alors j'ai couru:
Fonctionné comme un charme:
Je l'ai donc un peu rempli:
Résultat:
Le système est toujours opérationnel. La disponibilité des swaps a chuté, ce qui prouve qu'elle a été utilisée:
/run
Le swap total est réduit du montant pris par
/run
.Je testerais 10 Go sur une machine virtuelle, car je ne sais pas si le noyau refusera le remontage ou aura simplement un comportement inattendu.
Je cherche toujours une réponse réelle, mais la manière pragmatique a montré que cela fonctionne.
la source