LINUX.ORG.RU

Как арчеводы живут с /tmp в tmpfs?

 , , ,


2

3

Решил я себе тут Манджару переустановить. (про Манджара != Арч не будем) Давно я этого не делал и забыл придурь арчевскую, которую всегда приходится отключать - в арче /tmp подключен в tmpfs и занимает половину памяти, практически, не уменьшаясь при нехватке места. В Манджаре ничего с этим не меняли, так что тут сам дистр не при чём. Дурь эта идёт года, так, с 2007-го, наверное, я гневно ругался с ними тогда, но никого, вроде, это не волнует, всё так и осталось.

Висит лаптоп с памятью в 8 гигов поделённой пополам, половина под /tmp, половина под системную память со встройкой от Интела, в которую пытается рисовать браузер, в котором открыто 20-30 вкладок, которые, вроде как даже суспенднуты, потому что неактивны, но память всё жрётся, достигает предела, а на стороне /tmp тишь да благодать, «54МБ из 3.8ГиБ занято». НАХРЕНА ЭТО ПИХАЕТСЯ В ПАМЯТЬ???? ЗАЧЕМ? ЧТОБЫ ЭКОНОМИТЬ ЧТО? ССД? Шлёпнулись, чтоле?

Меня мучает такой вопрос - неужели я единственный кому это не нравится?

Неделю я мучаюсь, кляну судьбу и программистов пишущих современный вэб, поставил nohang, заказал уже 16 гигов памяти, и тут вспомнил, отключил монтирование в tmpfs и воцарился порядок. Сижу уже час, намеренно переключаю все вкладки, шныряю туда-сюда, но затыка нет и приблуда от hakavlad не висит на пол окна и не убивает мне кде, хдг и пайпварь (!!!ЫШС) чтобы браузер мог бесчинствовать дальше.

Как живут среднестатистические арчеводы, которые не отключают /tmp?

★★★★★

Последнее исправление: R_He_Po6oT (всего исправлений: 1)

Ответ на: комментарий от R_He_Po6oT

ну видишь как выходит, тебе абсолютно все в этой теме сказали, что tmp не выжирает память и не может влиять на работу (если ты не канпиляешь), но у тебя все равно «виноват арч и tmp»…

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

Дай угадаю, у тебя 16 гигов?

зачем угадывать? я это вообще то прямым текстом написал. Но если ты присмотришься, то увидешь, что у меня РАЗНЫЕ tmpfs. Есть на 8гиг, но есть и на 3гига.

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

Нету свопа

Сдурели уже совсем со своими бзиками. Деды учили - свопа должно быть дважды от оперативной памяти. И всё тут. Понапридумывают какой-то чепухи, а потом жалуются, что всё плохо.

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

«Все не могут быть не правы» :)

Абсолютно все в этой теме имеют больше 8 гигов, как я понимаю. И может быть и процы поновее и что-то не вызывает больше такой реакции?

Хотя... Я жене прошлой зимой купил распоследний интел. Пока настраивал, столкнулся с той же проблемой на 16-ти гигах и новом интеле. Так что, что-то тут не то. Вы меня обманываете. Нарочно. :)

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

П.с. Всё также, с теми же вкладками работает браузер, размер Geckomain даже уменьшился! Я вижу нормальную работу менеджера памяти! Я ведь я вновь и вновь прохожусь по вкладкам, шарюсь по амазону, ютубу и фирменным сайтам. Всё стабильно. В фоне работает Endless-sky, он любит процессор, и я только что говорил несколько раз по мессенджеру, и прямо сейчас на видеосвязи. Ни разу, НИ РАЗУ, ни одного разрыва. Только вентилятор жюжжит.

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

Про своп - отдельная тема боли. Своп съедает весь IO даже при свободной памяти. Это уже обсуждали.

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

Нет, но я не создавал zram, просто потому что. Сначала хотел понять что является причиной сжирания памяти.

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

Своп съедает весь IO

своп на zram не съедает IO. Даже наоборот, может экономить IO, сжимая неактивную память и освобождая место под кэш диска.

даже при свободной памяти

Вряд ли.

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

Деды учили

Догмы не нужны. Свопа нужно ставить в зависимости от задач. Нет задач - своп не нужен.

hakavlad ★★★
()
[viper@viper-manjaro ~]$ df /tmp/
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            64G  235M   64G   1% /tmp

вроде все ок

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

Вряд ли

Это я тебе когда-то уже показывал. Половина памяти свободна, даже кэшем не занята, а свап начинает мелко-мелко, но быстро серить. Ты же меня и убеждал, что своп «сломан» и классические настройки не очень на него влияют. Потому что ничто не влияло. В этот раз я создал временную установку, в ожидании нового ссд, поэтому хотел как можно меньше изменений носить. Просто не ожидал, что проблемы начнутся сразу после установки.

R_He_Po6oT ★★★★★
() автор топика

Как ни зайдешь на какой-нибудь вражеский форум, так там каждый второй неадекват - русскоговорящий. Если какое нибудь коммунити и кто-то гонит пургу, и при этом выделывается, грубит, скорее всего английский у него не родной (что видно по правописанию). Стим, ирка. Это что, ЛОР протекает? Как так?

ПС К ТС не относится, я даже не заходил на форум.

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

уже показывал

ссылку, пожалуйста.

половина памяти свободна, даже кэшем не занята, а свап начинает мелко-мелко, но быстро серить

На самом деле в это трудно поверить. Такие завления нплохо б сопровождать логами динамики изменения free, file и swap free памяти - как меняются из пропорции при этом.

kswapd не запускает своппинг, если объем свободной памяти не достиг low watermark (емнип).

hakavlad ★★★
()

неужели я единственный кому это не нравится?

Да, тему можешь пометить как решенную.

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

просто массив с говном

отличное описание питона

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

Ладно, по любому, своп - это отдельная тема. А поскольку я в последнее время не использовал «класический» своп, то надо ещё и проверить как оно работает теперь, сколько ядер уж сменилось? с 5.4, вроде, или раньше.

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

Дай угадаю, у тебя 16 гигов?

Пишу с ноута 8 гиг, /tmp в tmpfs, тоже firefox, памяти обычно перестает хватать только если запущу виртуалку на 2 гига и ide. Zswap, Ubuntu 20.04.

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

манджара виновата в том, что на арче питон с рандомными данными в массиве может занять почти всю памать и не сломаться?

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

своп на zram не съедает IO

Кстати, как я понял, zram делает своп в памяти, zswap то же самое, но когда он кончается, несжатая память пишется в своп файл. А как сделать то же самое, но чтобы свопфайл был сжатый?

goingUp ★★★★★
()

Давно я этого не делал и забыл придурь сантехническую, которую всегда приходится отключать - вывод унитаза подключен к канализации, в которую всё говно смывается

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

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

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

В дисковый своп пишутся несжатые страницы.

О, я думал пишутся сжатые. Сейчас чекнул — ты прав, при zswap в своп пишутся несжатые страницы.

anonymous
()

Настрой своп + zswap, отрегулируй swappiness. Если в качестве аллокатора выберешь z3fold, то память можно «растянуть» чуть ли не в три раза.

https://wiki.archlinux.org/title/zswap

/tmp в tmpfs обычно занимает немного памяти. У тебя, вон, всего 54 МБ — это ничто, по сравнению с тем, сколько занимают современные программы.

ps -eo rss,comm --sort rss
anonymous
()
Ответ на: комментарий от usi_svobodi

А покажи-ка вывод ulimit -a

Мой:

-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         unlimited
-m: resident set size (kbytes)      unlimited
-u: processes                       31392
-n: file descriptors                1024
-l: locked-in-memory size (kbytes)  1024
-v: address space (kbytes)          unlimited
-x: file locks                      unlimited
-i: pending signals                 31392
-q: bytes in POSIX msg queues       819200
-e: max nice                        0
-r: max rt priority                 0
-N 15:                              unlimited
а немного в афиге.

R_He_Po6oT ★★★★★
() автор топика
Ответ на: комментарий от R_He_Po6oT
-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         unlimited
-m: resident set size (kbytes)      unlimited
-u: processes                       93856
-n: file descriptors                1024
-l: locked-in-memory size (kbytes)  8192
-v: address space (kbytes)          unlimited
-x: file locks                      unlimited
-i: pending signals                 93856
-q: bytes in POSIX msg queues       819200
-e: max nice                        0
-r: max rt priority                 0
-N 15:                              unlimited
usi_svobodi
()
Ответ на: комментарий от Legioner

Деды учили - свопа должно быть дважды от оперативной памяти.

у меня гиг свопа, в 16 раз меньше чем надо, брат жив

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

я больше скажу, жил бы и без свопа, да деды не позволяют

anonymous
()
Ответ на: комментарий от Legioner
$ free -h
              total        used        free      shared  buff/cache   available
Mem:           503G        5.8G        495G        104M        2.8G        496G
Swap:          4.0G          0B        4.0G

Сколько свопа делать?

aquadon ★★★★★
()

браузер, в котором открыто 20-30 вкладок,

НАХРЕНА ЭТО ПИХАЕТСЯ В ПАМЯТЬ???? ЗАЧЕМ?

Вопрос к вам. Вот у меня сейчас открыто 5 вкладок, брат жив.

tiinn ★★★★★
()

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

papin-aziat ★★★★★
()

Федоравод, 32ГБ ОЗУ.

tmpfs /tmp tmpfs defaults,rw,nodev,nofail,noatime,nosuid,size=4G 0 0
free -h
               total        used        free      shared  buff/cache   available
Mem:            31Gi       3.5Gi        14Gi       1.1Gi        12Gi        26Gi
Swap:           16Gi          0B        16Gi

Мне даже нравится, что весь хлам в tmpfs.

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

Сдурели уже совсем со своими бзиками. Деды учили - свопа должно быть дважды от оперативной памяти. И всё тут. Понапридумывают какой-то чепухи, а потом жалуются, что всё плохо.

ну таки это давно было. При 16 гигах своп в 32 гб это как-то странно. Достаточно и половины объема, если ОЗУ большое. Просто, чтобы было время на реакцию при переполнении.

AVL2 ★★★★★
()

Попытаюсь объяснить, в меру собственных знаний, как работает tmpfs.

tmpfs является драйвером уровня ядра, эмулирующим файловую систему. Так же как и абсолютное большинство программ, tmpfs не пытается зарезервировать на старте максимальный объём оперативной памяти который может понадобиться, а запрашивает у менеджера памяти страницы по мере надобности. То есть когда в каталоге, расположенном в tmpfs создаются файлы или каталоги, то для записи используется не дисковое пространство, а запрошенные у операционной системы страницы оперативной памяти. Когда файлы или каталоги удаляются из пространства tmpfs, память, которую они занимали, драйвер tmpfs возвращает обратно менеджеру памяти. Так же как и программы запущенные в пользовательском режиме, tmpfs позволяет вытеснять занятые ею страницы в swap (пространство подкачки). Это означает, что при нехватке реальной оперативной памяти, менеджер памяти сможет вытеснить страницы памяти, на которых в данный момент размещены данные tmpfs (а это всё ещё существующие файлы и/или каталоги), в swap, таким образом, освободив нужное количество страниц физической оперативной памяти, для той программы, которой они понадобились в данное время.

Максимальный размер tmpfs, таким образом отражает лимит памяти, который данный экземпляр tmpfs может попросить у менеджера памяти.

Хочу ещё раз подчеркнуть: даже если полностью заполнить какой-либо экземпляр tmpfs до максимального лимита, это не будет означать, что все запрошенные этим экземпляром страницы постоянно будут занимать какой-то объём физической оперативной памяти. Драйвер tmpfs позволяет менеджеру памяти вытеснять ещё не освобождённые страницы в пространство подкачки. А когда файлы и/или каталоги, размещённые в tmpfs удаляются, виртуальная память, запрошенная для их размещения, возвращается обратно менеджеру памяти.

Данный пост написан на старом ноутбуке 2012 года. 8GiB RAM. Linux Manjaro. Каталог /tmp находится в tmpfs. Параллельно с браузером Firefox, запущена среда разработки Intellij IDEA. Иногда оперативной памяти не хватает и часть страниц попадает в swap. Глюков и тормозов не наблюдаю.

QsUPt7S ★★
()
Ответ на: комментарий от papin-aziat

Дык и я вялый, я окромя браузера ничего запустить не могу по вышеупомянутой причине. Но я упёреутый, блю-блю поставленную на второй диск по твоему наущению не трогаю, терплю. :)

Что интересно, комп без перезагрузки проработал сутки, не затыкался без свапа, не требовал всех убить, всё чинно-благородно. Потом я решил откатить изменения, проверить, я ли шибанутый. Вернул /tmp в память, перезагрузил, запустил браузер, он развернулся и... Как вы думаете что? Без долгих раздумий завис после пяти минут рандомного тыканья в страницы.

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

А с чего вы все решили что хлам там, в /tmp? Кэш браузера - вот где хлам! Только он и так в памяти сидит и не выковыряешь и не обрежешь.

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

Фиг знает, на федорах и EL-ах никаких проблем не встречал с ff и его кэшем в /tmp/firefox. Для интереса всякие настройки крутил-вертел в ФФ, играясь с кэшем, да ничего интересного не придумал, тупо оставил по умолчанию, кроме самого переноса кэша в /tmp/firefox, при включенном tmpfs.

Я использую две разные версии ФФ, кстати, и обе держат кэши в /tmp/firefox, оба использую активно и часто одновременно (87 — тытуб, ESR — сёрфинг), ну вообще никаких проблем.

papin-aziat ★★★★★
()
Ответ на: комментарий от R_He_Po6oT

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

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

usi_svobodi
()

Как живут среднестатистические арчеводы, которые не отключают /tmp?

Этот поведение по умолчанию для systemd, если точка монтирования /tmp не задана вручную: https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems/

Не сталкивался с проблемами и на ноутбуке с 4GB памяти, всегда помещал /tmp в память.

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

Вернул /tmp в память, перезагрузил, запустил браузер

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

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