Мой сервер имеет 2 ГБ ОЗУ и 120 ГБ SSD, а также несколько массивов RAID для хранения. ОС Debian 8 (Linux 3.16).
У меня есть интенсивное приложение MySQL, которое имеет tmpdir
= /run/mysqld
, которое tmpfs
настроено Debian через /etc/default/tmpfs
:
# Size limits. Please see tmpfs(5) for details on how to configure
# tmpfs size limits.
TMPFS_SIZE=40%VM
Раньше было 20%VM
около 384М. Я столкнулся с несколькими no space left on device
, поэтому я увеличил его до 40%VM
, но даже с 763M он все еще слишком мал.
Теперь я должен добавить больше оперативной памяти, но из любопытства я хотел бы знать здесь ограничения.
/dev/sdd1
на нем/
установлено около 50 ГБ свободного места, и он довольно быстрый (Samsung 850 EVO SSD)/dev/sdd5
мой раздел подкачки, это 3.7G (идентификатор типа fdisk равен 82)TMPFS_SIZE
установлен в40%VM
значение/run
763M
Теперь я знаю, что tmpfs может поменяться, что меня устраивает. Я хочу, чтобы MySQL записывал в ОЗУ всякий раз, когда это возможно, но если ему нужно больше памяти, я могу разрешить системе поменять его на SSD.
Итак, с моей настройкой, я могу нажать, /run
чтобы быть:
- 300М большой? Да. Это было по умолчанию.
- 1,5 ГБ большой? Да, пробовал, MySQL использовал до 1,3 ГБ, и система работала как шарм. Но это все равно меньше половины физической памяти + раздел подкачки.
- 2,5 ГБ большой? Это больше, чем физическая память, но меньше половины физической памяти + мой раздел подкачки.
- 4ГБ большой? Это будет плотно вписаться в половину физического + обмен
- Больше? как 10 ГБ? может ли он использовать свободное место,
/
чтобы поменять больше?
Я предполагаю, что эмпирическое правило для безопасности - TMPFS_SIZE
не больше, чем своп + половина физической памяти. Могу ли я пойти дальше, не увеличивая раздел подкачки?
Кроме того , можно поставить 200%VM
в /etc/default/tmpfs
? Я прочитал, tmpfs(5)
не зная, смогу ли я поставить> 100% на это.
Наконец, я должен сделать это /etc/fstab
вместо этого и не трогать /etc/default/tmpfs
?
(до информации, что я только сделал это mount -o remount
, я еще не перезагружал сервер)
Изменить: последний вопрос, я знаю, что он может / может быть изменен /etc/fstab
(см. Цитату ниже на странице руководства ), однако я хотел бы узнать лучшие практики, потому что я /etc/default
до сих пор ничего не касался .
Более сложные параметры монтирования могут быть использованы при создании подходящей записи в / etc / fstab.
Ответы:
Я подумал, что могу просто проверить это, поэтому я побежал:
Работал как шарм:
Поэтому я немного его заполнил:
Результат:
Система все еще работает. Наличие свопа упало, что доказывает его использование:
/run
Суммарный своп уменьшается на сумму взятую
/run
.Я бы протестировал 10 ГБ на ВМ, потому что я не знаю, будет ли ядро отказываться от перемонтирования или просто будет иметь непредвиденное поведение.
Я все еще ищу фактический ответ, но прагматичный способ показал, что он работает.
источник