Комитет FESCo (Fedora Engineering Steering Committee), отвечающий за техническую часть разработки дистрибутива Fedora Linux, утвердил (http://lists.fedoraproject.org/pipermail/devel/2012-April/16...) переход (http://fedoraproject.org/wiki/Features/tmp-on-tmpfs) на использование tmpfs для раздела /tmp. Таким образом, начиная с Fedora 18, для хранения временных файлов будет использован размещаемый в оперативной памяти RAM-диск, который может быть вытеснен в раздел подкачки при нехватки свободной памяти. Для администраторов, желающих как и раньше хранить данные /tmp на диске, будет предоставлена подобная опциональная возможность. Стоит отметить, что ArchLinux уже использует tmpfs по умолчанию, Debian перейдёт на tpmfs в следующем выпуске, а Ubuntu в версии 12.10.
Леннарт Поттеринг (Lennart Poettering), создавший такие проекты, как Avahi (реализация протокола ZeroConf), звуковой сервер PulseAudio и системный менеджер systemd, подробно обосновал (http://0pointer.de/blog/projects/tmp.html) мотивы перевода /tmp на tmpfs. В частности, основной причиной размещения /tmp в RAM-диске является желание сократить число операций записи на физический накопитель, что позволит снизить энергопотребление жестких дисков и продлит жизнь SSD-накопителей, а также увеличит производительность работы с временными файлами.
Из недостатков нового подхода, кроме дополнительного расхода ОЗУ, отмечается отсутствие поддержки квот в tmpfs. Приложениям, которые оперируют с временными файлами большого размера или требуют сохранение временных файлов между перезапусками системы, рекомендуется использовать директорию /var/tmp. Директория /tmp будет ориентирована в основном на системное ПО, пользовательским приложениям, в зависимости от контекста, следует использовать директории, на которые ссылаются переменные $XDG_RUNTIME_DIR, $XDG_CACHE_HOME или $XDG_DOWNLOAD_DIR.URL: http://0pointer.de/blog/projects/tmp.html
Новость: http://www.opennet.me/opennews/art.shtml?num=33520
Debian? В следующем выпуске? Ха-ха, не раньше 2016.
Да ладно. Переход на /run они осилили довольно бодро.
Ага, и так неожиданно. Бабах -- и сделали. И часть демонов отвалилась после перезагрузки, не смогли логи создать.
Отвалились у вас (...) или у них (разработчиков Debian)?
> Ага, и так неожиданно. Бабах -- и сделали. И часть демонов отвалилась после перезагрузки, не смогли логи создать.Что за бред? Пруфы будут?
Дык при обновлении своей системы не забудьте обновить свои демоны ))Я и /var/tmp в оперативку запихал да и /var/log (правда, на декстопе)
Заодно и кэши браузеров переложил в tmp.
Что только не сделаешь когда оперативки больше чем свободного места на винте (что характерно, вне зависимости от его размеров).
> Заодно и кэши браузеров переложил в tmp.А я вообще по возможности отключаю кэширование в браузерах, которыми пользуюсь.
>Заодно и кэши браузеров переложил в tmp.всегда интересовало почему кеш браузера не в /var/tmp ?
> Ага, и так неожиданно. Бабах -- и сделали. И часть демонов отвалилась
> после перезагрузки, не смогли логи создать.странно было бы если не отвалились. Там же так и написано testing/unstable
такое было только в федоровой сырошкуре и её аналогах у других первые 2 недели после анонса фичи.
> Ага, и так неожиданно. Бабах -- и сделали. И часть демонов отвалилась
> после перезагрузки, не смогли логи создать.Ёптя, так для этого Фидорасы и нужны, как халявные бета-тестеры,
чтоб писать гневные багрепорты, которые потом смотрит РедХать!
$ mount | grep /tmp
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=1242976k)
$ cat /etc/issue
Debian GNU/Linux wheezy/sid \n \lуже скоро год будет, как на дебиане testing сижу, ничего не отваливается..
Угу. Так и есть.
И у кого-то где-то с середины 2008-го такое болтается штатно.А кто-то:
> Fedora Linux, утвердил переход на использование tmpfs для раздела /tmp.
только сейчас, года через 4 изобрел.
Поглядывая в сторону Федора:
Вегной догОгой идете товагищи!
кому нужно срочно - подправит fstab. неосиляторам - повод посмеяться. только вот над чем?
> Debian? В следующем выпуске? Ха-ха, не раньше 2016.не помню с каких времён, но в /etc/default/rcS можно поменять RAMTMP=no на RAMTMP=yes. Все изменения, которые нужны -- тривиальный diff в две строчки.
Новый релиз осенью 2012 года. Это и будет следующим - не будьте так плоскодумны, молодой человек. Если бы вы умели из кусочков складывать картину воедино то поняли, что Ubuntu полностью зависит от наработак Debian. Раз замеченные изменения будут в ubuntu 12.10 то... Потренируйте свой мозг - подсказка в начале моего поста.
>Ubuntu полностью зависит от наработак DebianВот так новость. И давно ли Debian на upstart перешел?
> Вот так новость. И давно ли Debian на upstart перешел?Слава богу нет, тот же sysv-rc init с возможностью _легко_ отключаемой
параллельной загрузки на основе LSB3.1 заголовков
в init-скриптах (зависимости от для start и stop).
возможность использовать есть - http://packages.debian.org/search?keywords=upstart&searchon=..., а вот необходимости нет.
Кто-то путает причину со следствием. Давно хвост начал управлять собакой?
осень 2012
В testing/wheezy уже tmpfs для /tmp по умолчанию.
>Debian? В следующем выпуске? Ха-ха, не раньше 2016.Он уже перешел в unstable
Debian testing (wheezy)
root@comp:~$ df
Файловая система 1K-блоков Использовано Доступно Использовано% Cмонтировано в
....
tmpfs 5120 0 5120 0% /run/lock
tmpfs 805624 1904 803720 1% /tmp
tmpfs 805624 3780 801844 1% /run/shm
.....
А зачем тогда вообще временные файлы? Каждая программа итак хранит всё в памяти.
видимо новый подхот (/tmp/ в оперативке) специально для программистов привыкших к 32х-разрядной архитектуре :)даже для unix-domain-socket -- нет смысла использовать /tmp/ , так как есть кошерный dBus же :)
# p.s.: правда сам по себе dBus использует /tmp/ .. ну ды ладно :) .. один раз можно :)
Сокеты и dbus не являются взаимозаменяемыми и взаимоисключающими. Это просто разные механизмы IPC.
> Сокеты и dbus не являются взаимозаменяемыми и взаимоисключающими. Это просто разные механизмы
> IPC.ну вообще да -- бывают случаи когда использовать unix-domain-sockets (UDS) это есть наиболее отимальный способ IPC [например нужно передавать большие объёмы сырых данных]...
...но в остальных default`ных случаях -- dBus является именно ЗАМЕНОЙ для UDS (заменой именно исключающей UDS). причём явно более комфортной заменой :)
> Из недостатков нового подхода, кроме дополнительного расхода ОЗУ, отмечается отсутствие поддержки квот в tmpfs.А ничего, что tmpfs на /dev/shm уже сто лет в обед живет без квот и с правами 777?
Народ уже давно просил ядреных разработчиков квоты сделать, но тем пофиг.> Леннарт Поттеринг (Lennart Poettering), создавший такие проекты, как Avahi (реализация протокола ZeroConf), звуковой сервер PulseAudio и системный менеджер systemd, подробно обосновал мотивы перевода /tmp на tmpfs.
> If you want to complain about the tmp-on-tmpfs or ServicesPrivateTmp feature, then this is not the right place either, _because this blog post is not really about that_.Авторы опеннета продолжают отмечать первое апреля ("день Фороникса")?
Какие интересные вещи можно вычитать по ссылке:> On Solaris a similar change has already been implemented in 1994 (and other Unixes have made a similar change long ago, too).
They did it, because native file system(UFS) was too slow. Even linux ext2 was faster than SunOS tmpfs!!
Вырвали фразу из целого предложения?
> Вырвали фразу из целого предложения?Нет. Сходите по ссылке :)
Кто хотел -- уже давно перевёл /tmp на tmpfs
В той же генте это стандарт :) Вот и до федорастов дошло.
Если какая-то программа из репозитория не будет работать в этой конфигурации от это баг который как бы должны исправлять
А перевода этого тебя просто послали
Много лет использую tmpfs для /tmp. В целом доволен - удобнее и быстрее компилировать исходники, собирать cd/dvd образы. Неплохо бы добавить быстрое сжатие (lz4 или lzo) как compcahe - что бы если меньше половины (или сколько поставишь) заполнено, то без сжатия. Плохо когда оперативная память заканчивается, начинается своп с кратковременным фризами (bug 12304?). Спасение одно - много памяти и отключенный своп :)
> Спасение одно - много памяти и отключенный своп :)ненадо отключать SWAP! :)
просто настройте как вам нравится vm.swappiness=XX (внутри файла /etc/sysctl.conf)
>> Спасение одно - много памяти и отключенный своп :)
> ненадо отключать SWAP! :)
> просто настройте как вам нравится vm.swappiness=XX (внутри файла /etc/sysctl.conf)Настройка vm.swappiness не решает проблему фризов при работе с tmpfs не вместившейся в ОЗУ, а лишь немного отдаляет сие чудное мгновенье :)
> Настройка vm.swappiness не решает проблему фризов при работе с tmpfs не вместившейся в ОЗУ, а лишь немного отдаляет сие чудное мгновенье :)а удаление SWAP -- решит чтоле проблему (переполнения ОЗУ) ??? xD xD xD xD
так пишете будто бы якобы SWAP своей собственной жизнью живёт на компьютере xD
Конечно, решит! Проблемища переполнения ОЗУ будет _заменена маленьким-аккуратненьким крашиком ядра.
> Много лет использую tmpfs для /tmp. В целом доволен - удобнее и быстрее компилировать исходники,По моим наблюдениям, компиляция на RAM-диск не намного быстрее компиляции на HDD. На скорость компиляции очень сильно влияет частота и архитектура процессора, возможность распараллеливания на нити компиляции и только в последнюю очередь скорость доступа к устройству хранения исходных текстов компилируемых программ и результирующих бинарников (конечно при условии, если реализация файлового кэширования и асинхронной записи в ОС никакая, то и на скорость компиляции вид хранилища будет влиять).
ИМХО ускорение получается за счет скорости создания/удаления тысяч мелких файлов. Но конечно ускорение не в разы, ~10% точно не замерял.
Хрень какая-то. На серверах тонны софта используют /tmp/, как свалку всего на свете. Теперь это "все на свете" будет жрать тонну памяти и не понятно как влиять на систему в целом.>который может быть вытеснен в раздел подкачки при нехватке свободной памяти
Прикольная формулировка. А что может и не вытеснить, а запустить OOM killer ? прикольно будет :)
"Для администраторов, желающих как и раньше хранить данные /tmp на диске, будет предоставлена подобная опциональная возможность."И храните свалку в tmp, никто не против.
> Хрень какая-то. На серверах тонны софта используют /tmp/, как свалку всего на
> свете. Теперь это "все на свете" будет жрать тонну памяти и
> не понятно как влиять на систему в целом.Таких как ты "админов" этих "серверов" - переместить на /tmp/ и ребутнуть. Намного чище мир станет.
>На серверах
>В Fedora 18Тек кто на сервер ставят федору сами виноваты. Только таких я думаю меньшинство.
>Тек кто на сервер ставят федору сами виноваты. Только таких я думаю меньшинство.Ну почему же. Получается отличная хост-машина для виртуалок с поддержкой самых новейших технологий и плюшек в области виртуализации. А вот виртуалки уже вполне могут быть центосью/дебианом/чем_там_еще_с_большим_сроком_поддержки.
Готовится действительноя МЯСИСТЫЙ релиз. Разработчики постарались, количество нововведений поражает.
а если отдельный пользователь начнет создавать кучу файлов в /tmp в результате сожрет всю оперативку, потом сожрет весь своп, а потом что будет?
Ему скажут места нет когда дойдет до половины.
Я уже давным давно на openSUSE в fstab создаю
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
tmpfs /var/lock tmpfs defaults 0 0
tmpfs /home/.cache tmpfs defaults 0 0
tmpfs /home/.opera/cache tmpfs defaults 0 0
tmpfs /home/.mozilla/firefox/Firefox.default/Cache tmpfs defaults 0 0
Единственный недостаток в том, что на KDE плазмоид мониторинга ресурсов и в дельфине стока отображения свободного места живут своей независимой жизнью и не учитывают показания друг друга, и бывает что я, иногда, записывая в /tmp руководствуюсь строкой в дельфине переполняю оперативу.
а смысл тогда иметь дисковый кэш для оперы в tmpfs, если он очиститься вместе с оперативкой? или я что-то недопонимаю?
Он у меня так же очищается при закрытии любого браузера.
Что бы не было мусора в системе.
ну так опера ведь имеет собственную реализацию кэша в оперативной памяти.
> ну так опера ведь имеет собственную реализацию кэша в оперативной памяти.Никогда не слышал про неё...
Да и делать я так начал года 3 назад, когда уж точно её там не было.
>> ну так опера ведь имеет собственную реализацию кэша в оперативной памяти.
> Никогда не слышал про неё...
> Да и делать я так начал года 3 назад, когда уж точно
> её там не было.opera:config
раздел Cache и Disk Cache
> Никогда не слышал про неё…
> Да и делать я так начал года 3 назад, когда уж точно
> её там не было.фееричненько, да. кэш в RAM опера умеет… ну, вот с шестой версии (а может, и с пятой-четвёртой). но некоторые загадочные личности упорно не хотят открыть простое окно настроек и громоздят заместо этого мегатонну костылей.
>tmpfs /tmp tmpfs defaults 0 0
>и т.д.Это вы батеньки дали козе под дых! Кто ж их монтирует с defaults?
noatime,nodev,nosuid,noexec!
Облегчу работу телепатам: mount -oremount,exec /tmp перед обновлением.
> ArchLinux уже использует tmpfs по умолчаниючто то не припомню такого...
> отсутствие поддержки квот в tmpfs.
tmpfs /tmp tmpfs rw,nosuid,nodev,noatime,nodiratime,size=4G,mode=0777 0 0
size=4G
По дефолту при установке в арче прописан tmpfs /tmp в fstab
> По дефолту при установке в арче прописан tmpfs /tmp в fstabинтересно, не замечал, спс)
Под квотами понимается per-user quote, а не максимальный размер
> Под квотами понимается per-user quote, а не максимальный размерах, точно, благодарю за разъяснения
Вот будут удивляться люди, попытавшиеся распаковать большой архив через mc или любой другой архиватор, хранящий временные файлы в /tmp
> Вот будут удивляться люди, попытавшиеся распаковать большой архив через mc или любой
> другой архиватор, хранящий временные файлы в /tmpпочему? SWAP переполнится? например у меня SWAP порядка 20G [можно хоть 100G сделать, так как пить-и-есть SWAP не просит xD xD. зато SWAP гарантирует что программа не упадёт в трудную минуту] ..
думаю нет, архивом преполнить вот так просто не получится xD
# p.s.: а ежели Вы намекаете что удивятся именно те люди кто привыкли SWAP не создавать -- то тут комментировать я особо не буду... мастера-оптимизации они и есть мастера-оптимизации :)
Судя по новости, можно подумать, что у 6 из 10 человек
есть SSD накопители, и они офигенно дружно вылетают,
и тут появилась весомая/веская причина перекинуть
/tmp в ОЗУ.
Вообще, этот Леннарт, похоже завидует создателям
UNIX'а. Пытается переделать на свой лад под эгидой
морданизации. И ещё, неужели время поиска на НЖМД
для большинства систем так критично ?
Если да, то пусть создают гибридные системы, где
оперативная память объединяется в массив и
подключается как жесткий диск. А решать эту проблему
программным способом - это примерно как одевать трусы
через голову.
Все правильно Ленарт дурак. Лучше продолжать засирать диск мелкими ненужными файлами которые там будут валяться мертвым грузом и развозить фрагментацию
а может просто попытаться разобраться в ответственности
админа/пользователя и программ из kernel-space и
user-space ?
> Все правильно Ленарт дурак. Лучше продолжать засирать диск мелкими ненужными файлами которые там будут валяться мертвым грузом и развозить фрагментациюДа-да, все знают, что в Linux нет автоматической очистки /tmp в процессе загрузки от "мусора" предыдущего сеанса работы.
man tmpwatch
Ноуты будут меньше крутить диск и жрать батарею, например. А ОЗУ обычно и так на большинстве десктопных систем избыток, даже несчастных 4ГБ без задач вроде компиляции в 16 потоков надо еще умудриться потратить. С zram еще лучше.> Если да, то пусть создают гибридные системы, где оперативная память объединяется в массив и подключается как жесткий диск.
Это называется кэш.
> А решать эту проблему программным способом - это примерно как одевать трусы через голову.
Все правильно. Мне тоже очень жаль, что кэширование применяется в каждой мало-мальски сложной программе уже десятки лет. Как же они ошибались, это ведь такой изврат! Надо срочно все переделать.
если не ошибаюсь, то кэшем(сверх быстрая память)
называют статическую память...
названия не всегда выражают то, что хотят
передать...
> если не ошибаюсь, то кэшем(сверх быстрая память)
> называют статическую память...
> названия не всегда выражают то, что хотят
> передать...Не, кэшем называют наличку, чувак!
Не совсем так. Кэш - это небольшое (относительно основной) количество более быстрой (тоже относительно основной) памяти.Статическая память - частный и, пожалуй, самый быстрый случай кэша. Но для какой-нибудь библиотеки магнитных лент обычный винт тоже вполне может считаться кэшем :)
Кэширование - это перенос данных в более быструю среду из более медленной с целью частого к ним обращения. Всё.
>Если да, то пусть создают гибридные системы, гдеоперативная память объединяется в массив и
подключается как жесткий диск.Вообще нормальные люди в AS/400 давно придумали single-level storage, но LLIколота же, как обычно, норовит вывернуть все наизнанку.
>в зависимости от контекста, следует использовать директории, на которые ссылаются переменные $XDG_RUNTIME_DIR, $XDG_CACHE_HOME или $XDG_DOWNLOAD_DIRА как же $TMPDIR
> А как же $TMPDIRdeprecated, этож федора