Mein Server verfügt über 2 GB RAM und 120 GB SSD sowie einige RAID-Arrays zur Speicherung. Betriebssystem ist Debian 8 (Linux 3.16).
Ich habe eine MySQL-intensive Anwendung mit tmpdir
= /run/mysqld
, die tmpfs
von Debian konfiguriert wird durch /etc/default/tmpfs
:
# Size limits. Please see tmpfs(5) for details on how to configure
# tmpfs size limits.
TMPFS_SIZE=40%VM
Dies war früher 20%VM
etwa 384 Millionen. Ich bin gegen mehrere gelaufen no space left on device
, also habe ich es auf erhöht 40%VM
, aber selbst mit ungefähr 763M ist es immer noch zu klein.
Jetzt sollte ich jetzt mehr RAM hinzufügen, aber aus Neugier möchte ich die Grenzen hier kennen.
/dev/sdd1
ist montiert/
hat ca. 50GB frei und ist ziemlich schnell (Samsung 850 EVO SSD)/dev/sdd5
ist meine Swap-Partition, es ist 3.7G (fdisk Typ ID ist 82)TMPFS_SIZE
gesetzt ist40%VM
, was bedeutet ,/run
ist 763m
Jetzt weiß ich, dass tmpfs tauschen können, was für mich in Ordnung ist. Ich möchte, dass MySQL wann immer möglich in den RAM schreibt, aber wenn es mehr Speicher benötigt, kann ich dem System erlauben, ihn auf der SSD auszutauschen.
Kann ich mit meinem Setup darauf drängen /run
, Folgendes zu sein:
- 300M groß? Ja. Das war die Standardeinstellung.
- 1,5 GB groß? Ja, versucht, MySQL hat bis zu 1,3 GB verwendet und das System hat wie ein Zauber funktioniert. Aber das ist immer noch weniger als die Hälfte des physischen Speichers + der Swap-Partition.
- 2,5 GB groß? Dies ist mehr als physischer Speicher, aber weniger als die Hälfte des physischen Speichers + meiner Swap-Partition.
- 4 GB groß? Dies würde eng in die Hälfte physischer + Tausch passen
- Mehr? wie 10 GB? Kann es freien Speicherplatz nutzen
/
, um mehr auszutauschen?
Ich vermute, die Faustregel für die Sicherheit ist, TMPFS_SIZE
nicht größer als Swap + halbes physisches Gedächtnis zu haben. Kann ich darüber hinausgehen, ohne die Swap-Partition zu erhöhen?
Auch ist es möglich , setzen 200%VM
in /etc/default/tmpfs
? Ich habe gelesen, tmpfs(5)
ohne zu wissen, ob ich> 100% darauf setzen kann.
Zuletzt sollte ich es /etc/fstab
stattdessen tun und nicht anfassen /etc/default/tmpfs
?
(Um zu wissen, dass ich es nur mit gemacht habe mount -o remount
, habe ich den Server noch nicht neu gestartet)
Bearbeiten: Für die letzte Frage weiß ich, dass sie geändert werden kann / kann /etc/fstab
(siehe Zitat unten auf der Manpage), aber ich wollte die beste Vorgehensweise kennen, da ich bisher noch nie etwas berührt habe /etc/default
.
Komplexere Mount-Optionen können verwendet werden, indem ein geeigneter Eintrag in / etc / fstab erstellt wird.
Antworten:
Ich dachte, ich könnte es einfach testen, also rannte ich:
Lief wie am Schnürchen:
Also habe ich es ein bisschen gefüllt:
Ergebnis:
Das System ist noch in Betrieb. Die Swap-Verfügbarkeit ist gesunken, was beweist, dass sie verwendet wurde:
/run
Der gesamte Swap wird um den Betrag reduziert, der von genommen wird
/run
.Ich würde 10 GB auf einer VM testen, da ich nicht weiß, ob der Kernel die erneute Bereitstellung ablehnt oder nur ein unerwartetes Verhalten aufweist.
Ich suche immer noch nach einer tatsächlichen Antwort, aber die pragmatische Art hat gezeigt, dass sie funktioniert.
quelle