Comments 18
К сожалению, некоторые (примером у меня был popcorn-desktop) думают иначе насчёт /tmp и забрасывают туда гигабайтные файлы (а тот самый popcorn-desktop — торрент-клиент, и удаляет скачанное только при закрытия программы).
А не надо от свапа отказываться. Тогда tmpfs не проблема.
Тогда смысл в VFS, если не только данные упадут на диск, но ещё и можем пару приложений отправить страдать если у вас своп не на NVMe SSD.
Как бы вам сказать, 90-е кончились. Современный Linux не использует подкачку как это делает Windows 95. То, что падает в swap не удаляется из памяти. Оно лишь может быть резко выброшено, если возникнет срочная потребность в памяти. При достатке памяти для повседневных задач, как и должно быть у вас, если вы отказываетесь от него, у вас не возникнет тормозов. Зато можно будет пользоваться преимуществами его наличия, спокойно используя tmpfs и не беспокоясь, что туда кто-нибудь понапишет гигабайтов.
То, что падает в swap не удаляется из памяти.Зато то, что падает в swap, обычно из него уже не возвращается.
При достатке памяти для повседневных задач, как и должно быть у вас, если вы отказываетесь от него, у вас не возникнет тормозов.Пример я уже дал, возможность хапнуть гигабайты в /tmp в моих повседневных задачах предостаточно, благо SATA SSD прекрасно справляется. И swap у меня есть, просто кроме ядра, которому он нужен, никто туда и не попадает. Problem solved.
Хозяин — барин. Преимущества tmpfs + swap — нет журналирования данных/метаданных, не нужно писать на диск изменения списка блоков/каталогов. В простых случаях запись на диск вообще не производится и происходит гораздо быстрее SSD. tmpfs + swap на SSD замечательно справляются в моих повседневных задачах.
При достатке памяти для повседневных задач, как и должно быть у вас, если вы отказываетесь от него, у вас не возникнет тормозов.Увы, на современных ядрах система встает колом, и почти ничего сделать нельзя.
bugzilla.kernel.org/show_bug.cgi?id=196729
Трудно пока сказать почему у него такое происходит, я с таким не сталкивался, но он с самого начала признаётся, что у него не хватает памяти (без свапа приходит OOMKiller), т.е. он по определению работает с недостатком ресурсов.
Вы про автора бага? У меня то же самое, достаточно открыть много программ.
Тоже на нехваткe памяти? (Когда без свапа OOM будет?) В Windows 9x был эффект (у которого было красивое английское название, но я его забыл), когда при свапе производительность резко проваливалась из-за того, что страницы постоянно выгружались, чтобы дать работать одному процессу и тут же загружались, чтобы дать поработать другому, вызывая толчею и затык на шине IDE. Возможно здесь есть похожий эффект, когда в свап попадают страницы критически важных для десктопа процессов, вызывая их блокировку и какие-нибудь отвалы по timeout. В конце-концов выбор страниц для помещения в свап — эвристика, а у эвристик могут появляться худшие случаи.
В качестве попытки решения могу предложить параллельно настроить zswap, отдав ему четверть или даже треть памяти и назначить ему большие приоритет, чем свапу на ssd. По идее сжатый свап в памяти не сможет создавать таких затыков и ситуация может сильно сгладиться.
В качестве попытки решения могу предложить параллельно настроить zswap, отдав ему четверть или даже треть памяти и назначить ему большие приоритет, чем свапу на ssd. По идее сжатый свап в памяти не сможет создавать таких затыков и ситуация может сильно сгладиться.
Это называется thrashing.
Я пробовал уже все что можно, и zram, и zswap. На ядре 4.9 ещё сносно, на ядрах новее — невозможно пользоваться. На Windows гораздо лучше работает система при недостатке памяти.
Вот человек не может использовать Linux на планшете с 1 ГБ RAM, т.к. всё тормозит сразу после установки — www.reddit.com/r/linux/comments/94u116/gnulinux_on_12gb_ram_tablets_how_it_really_works
А вот человек пытается это починить — gist.github.com/constantoverride/84eba764f487049ed642eb2111a20830
Я пробовал уже все что можно, и zram, и zswap. На ядре 4.9 ещё сносно, на ядрах новее — невозможно пользоваться. На Windows гораздо лучше работает система при недостатке памяти.
Вот человек не может использовать Linux на планшете с 1 ГБ RAM, т.к. всё тормозит сразу после установки — www.reddit.com/r/linux/comments/94u116/gnulinux_on_12gb_ram_tablets_how_it_really_works
А вот человек пытается это починить — gist.github.com/constantoverride/84eba764f487049ed642eb2111a20830
Лично у меня при активном swap начинает люто тормозить даже курсор мыши. И это при том, что оперативки свободно 8 гигабайт. Приходится вырубать swap и врубать его временно только перед запуском ресурсоёмких задач во избежание OOMKiller
Поддержу и дополню: «некоторые» делают так, что, даже при перезагрузке ОС, в /tmp (в случае когда раздел на блочном устройстве, а не в памяти) не очищается и на кой-то ляд хранят в этой точке монтирования временные (возможно для них «время» — понятие относительное :-) ) файлы.
Все знают, что хранение / tmp на физическом носителе – безумие!
«Все» — это лично Вы?
Очень приятно словить «глюк» если «не подрасчитал» — пример выше показателен.
Как kubuntu может ввести ступор обычный firefox когда сожрет всю память, если открывать что попало (например гиговые html :)) я не по наслышке знаю.
У меня как-то основной процесс firefox выжрал 12 с лишним гигабайт и полез в своп. Система колом, гуй не откликается, кое как в tty1 смог разглядеть, что происходит, и убить процесс. А своп, между прочим, на ssd Samsung 740, нон пенис канина.
Никаких гиговых хтмль, пару суток несколько роликов в ютубе стояли на паузе, и вдруг у лисы случилась течка.
Квантум такой квантум.
Вот не хватает понятных простых примеров. Рассказали бы про замечательный PingFS, про то, как быстренько на питончике превратить в файловую систему что угодно (скажем текстовый файл с выхлопом `ls -Rs`), как примонтировать tar-файл или ftp в качестве каталога…
Практической пользы и понимания от таких примеров было бы в разы больше.
Практической пользы и понимания от таких примеров было бы в разы больше.
Sign up to leave a comment.
Виртуальные файловые системы в Linux: зачем они нужны и как они работают? Часть 1