LINUX.ORG.RU

Debian переходит к использованию tmpfs в /tmp и к очистке /tmp и /var/tmp по таймеру

 , , , ,


1

5

Разработчик Debian Лука Боккасси анонсировал переход Debian к использованию tmpfs в /tmp и к очистке /tmp и /var/tmp по таймеру по умолчанию, начиная с Debian 13 “Trixie”.

В новых системах файлы в /tmp будут либо исчезать вместе с прежним экземпляром tmpfs в памяти после рестарта, либо будут удаляться ежедневно по таймеру, если они старше 10 дней, а файлы в /var/tmp будут удаляться только ежедневно по таймеру, если они старше 30 дней. Пакеты openssh и tmux были модифицированы с целью сохранения своих временных файлов в /var/tmp в качестве исключения. В системах, которые будут обновляться до Debian 13 “Trixie”, старое поведение /var/tmp сохранится.

В то время, как в большинстве других дистрибутивов давно перешли на использование tmpfs в /tmp, в Debian не спешили этого делать. Сейчас разработчики Debian (Michael Biebl и Luca Boccassi) возобновили одну из таких дискуссий 2020 года, в которой разработчик из Canonical (Eric Desrochers) пожаловался на проблему несоответствия тогдашней реализации /var/tmp в Debian тому, как работает systemd, несмотря на то, что патч был опубликован ещё в 2012 году. Таким образом, было принято решение привести поведение системы при работе с этими директориями к общепринятому в systemd и в большинстве других дистрибутивов.

>>> Подробности



Проверено: hobbit ()
Последнее исправление: Virtuos86 (всего исправлений: 7)
Ответ на: комментарий от hateyoufeel

отличный способ просрать кучу памяти за зря.

не кучу а только половину кучи :о)

sunjob ★★★★
()
Ответ на: комментарий от intelfx

/tmp — для временных файлов[1]. То есть любая программа, складывающая туда что угодно, должна быть априори готова к тому, что этих файлов может в любой момент не оказаться.

вот патрик и алиен не в курсе и складывает туда не только сборку, но и сами пакеты... бяда, надо им написать, пусть правят мозги :о)

sunjob ★★★★
()

Спасибо Debian, спасибо Canonical, спасибо Redhat!

Эти трое помогли мне полюбить Генту. Эти трое помогли мне начать учить С. Эти трое медленно толкают меня к LFS.

Я не читал дискуссии, но может мне кто-нибудь объяснить вкратце

к очистке /tmp и /var/tmp по таймеру

Чтобы что?

windows10 ★★★★★
()

как говориться:
не тобой покладено - нехрен трогать!
:о)

sunjob ★★★★
()
Ответ на: комментарий от urxvt

свалился под стол, поржал от души :о)

sunjob ★★★★
()
Ответ на: комментарий от novus

как отключить удаление до перезагрузки

удалить system-D :o)

p.s. это шутка, если что! а так - зовисит от дистрибьютива (в большей степени)

sunjob ★★★★
()
Последнее исправление: sunjob (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Просто при попытке записать страницу следующая прога получит sigsegv лол.

Не, при попытке записать страницу я получу лаг в 5-10 мс. на запись пакета из 64 страниц на ссд.

у меня вот как-то раз емакс сожрал 40 гигов из 64

Всего то 40/64? Даже не 96-128/64? Это как то не серьёзно.

А какой у тебя план-то, если какая-то прога сожрёт память и своп в придачу

Alt-F2, root, ********, htop, F9, 9, enter.

На hdd это очень медленно, на ссд досадно подтормаживает (особенно недосадно на Пи4+ядре 6.1, я уже боролся с тем что оно держит слишком большой резерв свободной памяти на всякий случай). И что важно - я сам, а не какой то запрограммированный идиот, решаю стоит ли это убивать или пойти попить чаю или вообще лечь спать если мне действительно нужен результат. Кстати, опционально, процесс можно не убивать а поставить на паузу. Тогда своп прочихается и я смогу поработать, а жирная хрень подождёт.

, заодно долбя диском как будто она диджей на спидах

У меня же ССД! Он не долбит, максимум лампочкой мигает.

, вызывая у тебя чудовищный 12309?

Сказки. Я не то что чудовищного, я обычного давным давно не видел.

Ты пытаешься делать какие-то выводы, имея sample size 1. Так не делают, чувак.

Ты забыл общедоступную теорию по устройству ССД. Ну, ту её часть, где про FTL и необходимые для его эффективной работы условия. Если теория с треском подтвердилась sample size 1, то собственно а какие ещё были варианты?

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Я вот так могу сказать, что все пользователи ЛОРа по имени Кирилл напрочь тупые

А ты как будто много умного сказал. Да и емакс, растёкшийся на 40 гектар, тоже намекает.

kirill_rrr ★★★★★
()
Ответ на: комментарий от noc101

Файлом можно считать любой кусок данных стабильного содержания с известной длинной. То что у него нет пути и имени не отменяет его наличия на ФС.

kirill_rrr ★★★★★
()
Ответ на: комментарий от noc101

PID файлы следует хранить в run каталоге, в tmp ему нечего делать

А почему? Что именно по вашему должно храниться в /tmp и что в /run? А главное почему так много разработчиков софта с вами не согласны?

kirill_rrr ★★★★★
()
Ответ на: комментарий от noc101

Ты уже отказался от Х11, dbus и systemd? Нет? Тогда не надо этого Д'Артаньянства.

kirill_rrr ★★★★★
()
Ответ на: комментарий от Camel

Я по ссылке не ходил, просто прочитал новость на ЛОРе

Да-да, «Мопед не мой! Я просто разместил объяву!..» © :)))

Somebody ★★
()
Ответ на: комментарий от zg

На самом деле с распостранением zram/zswap - оно очень сильно сглаживает ввытеснение tmpfs в своп. Но замечание насчёт ссд - вполне здравое.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Кажется что то пошло не так..

Systemd и Гном пошли не так. И Вейланд-Ютани туда же. Не хочу это дерьмо на машине держать. Можно было бы upstart и unity 7 быстро на Генту перенести, перенес бы с удовольствием и пользовался бы.

Так, стоп, ты что, перекачиваешь все сорцы между перезагрузками?

Нет, сырцы у меня на диске лежат. А вот собираю я в tmpfs.

LongLiveUbuntu ★★★★★
()

Вот один из разработчиков пишет:

I’m not sure if we have software on long running servers which place files in /tmp and /var/tmp and expect files to not be deleted during runtime, even if not accessed for a long time. This is certainly an issue to be aware of and keep an eye on.

То есть они сами догадываются что что-то этим могут сломать. А чинить будем потом.

/tmp на tmpfs это ок. tmpfs существовал до systemd и даже до linux. Но вот приходит systemd и начинает лезть туда, где всё и без него работает, потому что какие-то хипстеры засирают у себя tmp. Прямо заставляют debian подсаживаться на systemd, а для себя делают исключения.

fuggy
()

Дебиан окончательно скатывается.

spqr ★★★
()
Ответ на: комментарий от t184256

Не, никто не будет портировать grub 0.97 под uefi.

kirill_rrr ★★★★★
()
Ответ на: комментарий от hateyoufeel

Зачем, если можно это место забить чем-то полезным? И зачем резервировать-то? Своп можно добавлять и удалять по необходимости. В моём случае он тупо не нужен большую часть времени, поэтому у меня его и нет.

Опять адепты мазохизма ради экономии нескольких процентов диска. Если у тебя возникают мысли о том, как оптимизировать 10% объёма диска - это сигнал к тому, что надо купить диск вдвое больше и поскорее. Т.к. сейчас у тебя 10% диска под вопросом, а через несколько месяцев ты наглухо упрёшься в 0% free space и никакие художественные вырезания тебе уже не помогут.

10% на свап - норм.

он тупо не нужен большую часть времени, поэтому у меня его и нет.

А делать свап меньше чем оперативка - вообще категорически не норм, вне зависимости от того насколько он используется.

firkax ★★★★★
()
Ответ на: комментарий от zg

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

firkax ★★★★★
()
Ответ на: комментарий от windows10

Чтобы что?

Вот это самый главный вопрос. Чтобы на него ответить, нужно ответить на вопрос, для чего нужна директория /tmp по смыслу.

Ответ в стиле «временные файлы» и отсылки к man hier ответами по существу не являются. В первом случае вопрос просто трансформируется в вопрос «что такое временные файлы». А во втором — man hier не содержит ответа на данный вопрос вообще.

wandrien ★★
()
Ответ на: комментарий от zg

Фиг знает. У меня ни openssl ни tmux ничего вроде не создаёт в /var/tmp. По крайней мере если tmux просто запустить. Но у меня Арч — в Дебиане, видимо, что-то создаёт. Распатронь .deb да глянь, что там в tmpfiles.d, если интересно.

upd: он и в дебиане ничего там не создаёт, только в /tmp.

usr/lib/tmpfiles.d/tmux.conf:

x /tmp/tmux-*

Из man tmpfiles.d:

       x
           Ignore a path during cleaning. Use this type to exclude paths from clean-up as controlled with the Age
           parameter. Note that lines of this type do not influence the effect of r or R lines. Lines of this type
           accept shell-style globs in place of normal path names.
CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от firkax

А делать свап меньше чем оперативка - вообще категорически не норм, вне зависимости от того насколько он используется.

И зачем на машине с 64 гигами делать своп в 64 гига? Чтобы что там хранить? А если оперативы будет 256?

Разумный размер свопа зависит не от оперативки. Этот размер ограничивается таким параметром как скорость неупорядоченного чтения и записи данных на носитель.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

1) Ядро исторически рассчитано на swap >= ram. Да, в нём много чего пофиксиили со временем что теперь оно даже почти без сбоев работает без свапа вообще, но дефолтный режим, который приоритетно тестируется - всё равно именно этот.

2) Если swap < ram то не будет работать гибернация.

3) Ты нашёл средства на 256гб ram, но потратить 256гб места на ssd для соответствующего памяти свапа, стоящего в 10 раз дешевле, тебе жалко? Очень странная логика.

Чтобы что там хранить?

Первичная функция свапа - оптимизация работы ядерного менеджера памяти, а не хранение.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

Быстрее, но она дороже в разы. Хранить в ней tmp или не хранить - зависит от размера оперативки и типичного расхода места в tmp. У большинства наверно tmp всегда почти пустой, можно и в оперативке да.

firkax ★★★★★
()
Ответ на: комментарий от firkax

10% на свап - норм.

У меня тут в компе хардов на 54 терабайта (3x18) в рейде. Предлагаешь сделать своп несколько терабайт?

А делать свап меньше чем оперативка - вообще категорически не норм, вне зависимости от того насколько он используется.

Почему? У меня он кстати реально нулевой.

~ free -g
               total        used        free      shared  buff/cache   available
Mem:             125          23          94           0           7         100
Swap:              0           0           0

Пока не страдаю.

hateyoufeel ★★★★★
()
Ответ на: комментарий от CrX

Сравнение было в HDD, разумеется. Сообщение, на которо я отвечал, я понял так: вот раньше были hdd и можно было постоянно на них что-то перезаписывать, а теперь ssd и потому давайте tmp на нём не хранить.

firkax ★★★★★
()
Ответ на: комментарий от firkax

А делать свап меньше чем оперативка - вообще категорически не норм, вне зависимости от того насколько он используется.

Что за бред ты несёшь в этой теме? То SSD быстрее оперативы, то «рецепты» 30-летней давности…

Иметь свап в 2–4 ГБ более чем адекватно в 2024 году. Именно потому что оперативы может быть 32 ГБ, может 64 ГБ, и этот свап не будет толком использоваться даже так. У меня вот 246 МБ там заняты, свап 4 ГБ. Аптайм две недели.

CrX ★★★★★
()
Ответ на: комментарий от kirill_rrr

А ты как будто много умного сказал.

Ну, да. Так и есть. Я очень много умного тут написал.

Да и емакс, растёкшийся на 40 гектар, тоже намекает.

На что же он тебе намекает?

hateyoufeel ★★★★★
()
Ответ на: комментарий от firkax

А, ну в этом смысле имеет смысл конечно. Но вообще /tmp стали монтировать в tmpfs и до всяких SSD, как только в среднем объём в нём стал пренебрежимо мал по сравнению с RAM (у меня это случилось примерно когда объём RAM достиг 2 ГБ).

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от firkax

Твоя информация устарела. Там уже выполнен переход на виртуальный своп, когда своп якобы есть, но он состоит чисто в сжатии страниц без выгрузки на носитель.

wandrien ★★
()
Ответ на: комментарий от intelfx

TL;DR: ты не умнее разработчиков systemd, успокойся :-)

Кто угодно унмее их. :-)

AS ★★★★★
()
Ответ на: комментарий от hateyoufeel

А монтирование /tmp на tmpfs – отличный способ просрать кучу памяти за зря.

В общем-то tmpfs нормально уходит в своп, если что.

AS ★★★★★
()
Ответ на: комментарий от wandrien

я догадываюсь все эти fhs это несостоятельное говно. набор частных произвольных решений. bin и sbin вроде бы появились потому что когда-то существовала одна конкретная машина где закончился жесткий диск, к ней подключили второй, на этапе загрузки был доступен только первый. зато сейчас мы имеем людей, уверенных что программы обязательно нужно классифицировать то ли как администраторские и обычные то ли как статически слинкованные и обычные. а почему существует /usr/sbin/ я даже знать не хочу. это fhs вводит какие-то совершенно бестолковые понятия типа add-on software (/opt/<package>/bin + /etc/opt/<package> + /var/opt/<package>), а целью имеет то ли стандартизацию чьих-то древних частных решений то ли что я так и не понял

asdpm
()
Ответ на: комментарий от asdpm

bin и sbin вроде бы появились потому что когда-то существовала одна конкретная машина где закончился жесткий диск

Ты перепутал с / и /usr.

bin и sbin это разделение на «команды для всех» vs «команды для админа».

На древних машинах это имело смысл как оптимизация, чтобы bin был меньше, и за более короткое время ОС могла просмотреть его содержимое.

В целом насчёт:

я догадываюсь все эти fhs это несостоятельное говно. набор частных произвольных решений.

ты прав.

Например в man hier засунули такое:

/var/yp - Database files for NIS, formerly known as the Sun Yellow Pages (YP).

Но при этом не удосужились прописать, для чего именно нужен /tmp.

Однако нейминг каталогов постепенно эволюционирует в сторону чёткого функционального разделения. И это хорошо.

И как известно, одна из самых сложных проблем программирования – это проблема нейминга. Не стоит её недооценивать.

wandrien ★★
()
Ответ на: комментарий от kirill_rrr

нет, нет, я так не считаю) Сразу с козыря тогда. Как ты можешь считать файлом random? Или Null) Или памятью? Или устройством физическим? и тп Файл, это то что лежит на диске, а то что отображается в ФС не всегда файл.

noc101
()
Ответ на: комментарий от wandrien

Чтобы что?

Вот это самый главный вопрос. Чтобы на него ответить, нужно ответить на вопрос, для чего нужна директория /tmp по смыслу.

Мне кажется, лучше ответить на вопрос: какую проблему решает данное изменение? И мне действительно не понятно. Работало же веками. При необходимости администратор всегда может добавить однострочник в crontab.

urxvt ★★★★★
()
Ответ на: комментарий от noc101

POSIX определяет файл так:

3.164 File

An object that can be written to, or read from, or both. A file has certain attributes, including access permissions and type. File types include regular file, character special file, block special file, FIFO special file, symbolic link, socket, and directory. Other types of files may be supported by the implementation.

https://pubs.opengroup.org/onlinepubs/9699919799/

Предлагаю придерживаться этого определения и не плодить сущностей. Когда это действительно важно, можно добавить «файл на диске» или «специальный файл». И все друг друга будут понимать. А спорить о терминах — это последнее дело.

CrX ★★★★★
()
Ответ на: комментарий от kirill_rrr

С конца начну

А главное почему так много разработчиков софта с вами не согласны?

Потому что рукожопов много. Некоторые к примеру настройки хранят вне каталога etc. Логи не в var/log и тп. Давай не будем обращать внимание на плохие примеры.

А почему? Что именно по вашему должно храниться в /tmp и что в /run?

Run специально создан для этих целей. Это «домашний» каталог PID файлов. Во первых это изоляция. В run доступ имеет система и root, а в tmp … сложней и менее предсказуемо кто в tmp имеет доступ) Во вторых это совместимость софта между дистрибутивами. Причин более чем две, но и этого хватит.

noc101
()
Ответ на: комментарий от urxvt

При необходимости администратор всегда может добавить однострочник в crontab.

Так изменение примерно в этом и заключается. Только вместо crontab используется системдшный timer (то, что эта фича вообще не нужна, потому что есть крон — оставим за скобками, но в дистрах обычно её используют). Разница тут только между «админ при необходимости всегда может добавить timer» и «админ при необходимости всегда может отключить timer». Изменили только поведение по умолчанию.

CrX ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.