Mój serwer ma 2 GB pamięci RAM i 120 GB SSD, a także kilka macierzy RAID do przechowywania. System operacyjny to Debian 8 (Linux 3.16).
Mam intensywną aplikację MySQL, która ma tmpdir
= /run/mysqld
, która jest tmpfs
konfigurowana przez Debian poprzez /etc/default/tmpfs
:
# Size limits. Please see tmpfs(5) for details on how to configure
# tmpfs size limits.
TMPFS_SIZE=40%VM
Kiedyś było 20%VM
to około 384 mln. Pobiegłem przeciwko kilku no space left on device
, więc zwiększyłem go do 40%VM
, ale nawet przy około 763 mln wciąż jest za mały.
Teraz powinienem dodać więcej pamięci RAM, ale z ciekawości chciałbym poznać ograniczenia tutaj.
/dev/sdd1
jest zamontowany,/
ma około 50 GB wolnego miejsca i jest dość szybki (Samsung 850 EVO SSD)/dev/sdd5
to moja partycja wymiany, jest to 3,7G (identyfikator typu fdisk to 82)TMPFS_SIZE
jest ustawiony na40%VM
, co/run
oznacza 763 M.
Teraz wiem, że tmpfs mogą się wymieniać, co jest dla mnie w porządku. Chcę, aby MySQL zapisywał w pamięci RAM, gdy tylko jest to możliwe, ale jeśli potrzebuje więcej pamięci, mogę pozwolić systemowi zamienić ją na SSD.
Czy w mojej konfiguracji mogę naciskać /run
na:
- 300 mln dużych? Tak. To był domyślny.
- 1,5 GB duży? Tak, próbowałem, MySQL zużył na nim do 1,3 GB, a system działał jak urok. Ale to wciąż mniej niż połowa pamięci fizycznej + partycja wymiany.
- 2,5 GB duży? To więcej niż pamięć fizyczna, ale mniej niż połowa pamięci fizycznej + moja partycja wymiany.
- 4 GB duży? To by ściśle pasowało do połowy fizycznej + zamiany
- Więcej? jak 10 GB? czy może wykorzystać wolne miejsce,
/
aby zamienić więcej?
Domyślam się, że podstawową zasadą bezpieczeństwa jest TMPFS_SIZE
nie większa niż zamiana + połowa pamięci fizycznej. Czy mogę wyjść poza to bez zwiększania partycji wymiany?
Ponadto, jest to możliwe do wprowadzenia 200%VM
w /etc/default/tmpfs
? Przeczytałem, tmpfs(5)
nie wiedząc, czy mogę w tym postawić> 100%.
Na koniec, czy powinienem to zrobić /etc/fstab
zamiast tego i nie dotykać /etc/default/tmpfs
?
(aby wiedzieć, że tylko to mount -o remount
zrobiłem, nie uruchomiłem jeszcze serwera)
Edycja: w przypadku ostatniego pytania wiem, że można go modyfikować /etc/fstab
(patrz cytat ze strony podręcznika man), jednak chciałem poznać najlepszą praktykę, ponieważ do /etc/default
tej pory niczego nie dotykałem .
Bardziej złożone opcje montowania mogą być wykorzystane przez utworzenie odpowiedniego wpisu w / etc / fstab.