Хорошая файловая система для / tmp?


31

Я думаю о том, чтобы иметь / tmp на своем собственном разделе ... что было бы хорошей файловой системой для ее форматирования?

Причина, по которой я спрашиваю, заключается в том, что данные, хранящиеся в / tmp, не являются постоянными, поэтому мне не нужны журналы, модный индекс или что-то еще.

Ответы:


27

Иногда мне кажется, что переход /tmpк ram ( tmpfs) - лучшее решение (особенно в моих установках, которые используют много дискового ввода-вывода - MySQL и т. Д.), Если у вас достаточно оперативной памяти для его загрузки.


2
У меня 2 ГБ оперативной памяти, так что это, вероятно, не вариант.
Натан Осман

2
На самом деле это должно быть много оперативной памяти. / TMP обычно не используется , что много с нормальным использованием вашей системы (независимо , что есть).
Йоси

3
tmpfs будет использовать swap, если это необходимо - поэтому ваше пространство подкачки может выполнять двойную функцию как / tmp, не нужно выделять дополнительное пространство.
gbroiles

@ Джордж Насколько велик вы бы хотели создать раздел / tmp?
Марко Чеппи

1
@ Джордж, это достаточно большой размер раздела для /tmp- на моем рабочем столе я в лучшем случае использую 12 МБ, хотя на моих серверах /tmpможет очень сильно сойти с ума, когда клиенты делают глупости в MySQL и языках сценариев, которые заставляют /tmpих становиться намного больше. Замечательная вещь с tmpfs - это не просто отнять 64 МБ памяти, это просто жесткий потолок. tmpfs будет масштабироваться по мере того, как потребуется больше места, поэтому вы будете использовать в tmpfs только то, что нужно в это время.
Марко Чеппи

25

Здесь есть несколько хороших вариантов:

  1. tmpfs : это файловая система, которая хранит свои файлы в оперативной памяти. Это не значит, что файловая система съест всю вашу оперативную память. Вместо этого он берет только ту сумму, которая ему действительно нужна. Обычно требуется только несколько МБ. Если вы будете использовать его, добавьте строку вроде: none /tmp tmpfs size=64M,mode=1777 0 0к вашему /etc/fstab. Вы можете изменить sizeзначение, которое вам нравится. Если вы думаете , в какой - то момент , что это слишком мало, вы можете использовать , mountчтобы увеличить размер: mount -t tmpfs tmpfs /tmp -o size=128M,mode=1777,remount. Размер будет увеличен без удаления существующих файлов.
  2. ext2 / 3 : Вы сказали в своем вопросе, что вам не нужны какие-либо необычные функции. Однако я бы посоветовал использовать журнал. Потому что, если вы используете ext2 и у вас довольно большой /tmpразмер, проверка займет некоторое время. ext3 загружается быстрее во многих случаях. Поэтому я бы предложил использовать журналирование.
  3. ext4 , reiserfs и т. д. Некоторые программы используют /tmpдля хранения большого количества небольших файлов. Так что в некоторых случаях свободных блоков больше нет, а файловая система заполнена. ext4, а также reiserfs хранят файлы другим способом. Так что это может быть хорошим выбором, чтобы использовать их для своего /tmp.

Если ваш компьютер работает в течение длительного времени, рекомендуется удалить неиспользуемые файлы в /tmp. tmpreaperэто одно решение, которое делает это для вас.

Однако мой первый выбор будет использовать tmpfs.


Первый вариант с / etc / fstab также применяется с использованием systemd?
Smile4ever

1
@ Smile4ever Yes-- /etc/fstabявляется частью util-linux, поэтому он будет присутствовать в любой системе Linux независимо от того, какая система инициализации используется.
villapx

7

Если вы не хотите, чтобы он занимал оперативную память, я бы просто запустил его как ext2 . Нет причин, чтобы съесть небольшую потерю производительности при ведении журнала для файловой системы, данные которой вам не нужны (не должны) беспокоиться при перезагрузках.

На самом деле, поцарапайте, что вы, вероятно, должны использовать ext4 и отключить его журнал, он должен быть быстрее, чем ext2. Отформатируйте его в ext4 и вставьте в него fstabс помощью опции mount data=writeback.


6

Использование tmpfsдолжно быть хорошо для ваших нужд, при условии, что у вас есть достаточно установленной оперативной памяти .

Это сказанное ... кое-что, что должно быть рассмотрено относительно использования ramdisk для /tmp(это взято из более старого сообщения в другом месте ):

  • Должен ли / tmp находиться в реальной области диска или разрешено быть реализованным в основном в области SWAP (или tmpfs)?

Когда он интенсивно используется, это искушение: «мы вставим / tmp в RAM-диск, это ускорит доступ, а когда система перезагрузится / выключится, нечего очищать». Однако, если вы думаете о том, чтобы реализовать временное пространство как диск RAM, который будет заменен, то я бы рассмотрел последствия использования пространства подкачки вашей системой другими программами. Если подкачка существует как форма «аварийного переполнения», когда система находится в тяжелом положении и нуждается в этом, последнее, что вам нужно, это иметь пространство подкачки, потребляемое незаполненным процессом, заполняющим / tmp, потребляющим память, вызывающим давление на Подсистема ВМ для обмена на диск. Между свопом,seek()


5

Использование ext4 с определенными параметрами монтирования должно подойти. Используйте следующие параметры монтирования:

barrier=0 : Significantly improves file write operations in some scenarios
noatime : Don't update file last access time, you don't need this on /tmp files and it should help with write operations performance.

добавить также nodiratime
Weboide

Нотим включает в себя nodiratime
зволков

3

Я доволен ext4. Вы можете поиграть с некоторыми вариантами монтирования, если хотите настроить его, или использовать tmpfs, если у вас много оперативной памяти.


2

В ответ на вопрос о том, зачем вам нужен отдельный раздел / tmp, я уверен, что есть много причин, как некоторые уже заявили, но одна из них, на мой взгляд, особенно актуальная сегодня, заключается в том, что если вы работаете / работаете на SSD, Вы хотите минимизировать количество записей на этот диск, поэтому перемещение / tmp - хорошая идея, поскольку это область файловой системы, которая имеет тенденцию к значительным изменениям.


0

Я думаю, что tmpfs может быть плохим вариантом, потому что обычно / tmp доступен для записи во всем мире, поэтому любой может заполнить его, и если он заполнится, он займет всю вашу память, а ваш сервер замедлится до сканирования


Я думаю, что установление разумного максимального размера для tmpfs и наличие пространства подкачки с этим справятся.
Олат
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.