LINUX.ORG.RU
ФорумTalks

Нужен ли swap в 2018 году?

 ,


0

3

Я тут задумался, нужен ли своп в 2018 году, когда оперативки много и она дешевая. За мои 16 гб я вышел только однажды (и соответственно начал юзаться своп) и своп мне не особо помог, все дико тормозило и с ним и без него. Так нужно ли держать эти большую часть времени неиспользуемые драгоценные на SSD 8 гб места в наши дни?

★★

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

Кстати, в книге этого вроде не было, и быть не могло. По первому же приказу сэра Баскервиля ему бы стали подавать нормальный завтрак.

В таких книгах описывался быт и замечательные персонажи из «старой доброй Англии», вымышленной страны, которой никогда не существовало. Элементарно Ватсон, это пропаганда, потому там может быть всё что угодно, от чего читатели воспылают любовью к эксплуататорам, пиратам, палачам, нарко и работорговцам. Тот же доктор Ватсон, чем занимался в Индии? Наверно местных индусов в могилу сводил и брал взятки, а тут он такой весь положительный и благородный. Следовательно, если в фильме и добавили овсянку, то этим лишь улучшили пропагандисткий эффект книги Конан Дойля, добавили то, что автор не догадался.

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

нужен ли своп в 2018 году, когда оперативки много и она дешевая

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

baka-kun ★★★★★
()
Ответ на: комментарий от iZEN

кстати, в чем причина

freebsd ~ # mv /usr/ports/ /usr/ports.bk
mv: rename /usr/ports/ to /usr/ports.bk: Operation not supported

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

# pkg version -l "<"

она действительно выдает список бинарных пакетов, чьи версии, видимо, действительно отстают от «портовых».

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

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

Подумай вот над чем: если памяти «достаточно», наличие свопа хуже не сделает, а вот помочь может.

baka-kun ★★★★★
()
Ответ на: комментарий от crypt

mv: rename /usr/ports/ to /usr/ports.bk: Operation not supported

А ты уверен, что /usr/ports — директория, а не точка монтирования FS?

# mount | grep /usr/ports
zroot/usr/ports on /usr/ports (zfs, local, noatime, nosuid)

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

Потому, что порт сперва собирается в бинарный пакет, а потом устанавливается и регистрируется в базе именно этой самой утилитой pkg.

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

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

Нет, мы убедились, что верующим в глупости объяснять что-либо бесполезно.

Подумай вот над чем: если памяти «достаточно», наличие свопа хуже не сделает,

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

а вот помочь может

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

vaddd ★☆
()
Ответ на: комментарий от baka-kun

очка монтирования

да, я уже когда от компа отошел через 5 минут сообразил:( линукс-то говорит «busy».:( привычка.

порт сперва собирается в бинарный пакет, а потом устанавливается и регистрируется в базе

а вот этого не знал, спасибо. может, это после 10ой версии появилось, либо я просто не обращал внимание.

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

убедились, что верующим в глупости объяснять что-либо бесполезно

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

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

Если система обращается, значит видит необходимость. Тебе осталось разобраться, для чего и почему.

явным недостатком памяти?

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

количество людей, отказавшихся напрочь от свопов значительно выросло

К сожалению, большинство из них даже не понимает, чего лишили ядро. Понимающие отключают своп вполне осознанно для решения определенных задач, отдавая себе отчет о последствиях и ограничениях.

baka-kun ★★★★★
()
Ответ на: комментарий от crypt

может, это после 10ой версии появилось

Порты всегда были исходниками пакетов. Когда-то давно порт устанавливался в систему, а потом файлы из plist упаковывались в архив пакета. В pkgng порт устанавливается в stage директорию, собирается в пакет, и уже он устанавливается средствами pkg add.

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

Ну и это тоже, конечно. Даже статью, обосновывающую и объясняющую использование свопа, верующий читает ровно наоборот.

Именно. Поскольку если бы читал эту статью вдумчиво, то ты бы увидел, что необходимость в свопе из нее никак не проистекает.

Если система обращается, значит видит необходимость. Тебе осталось разобраться, для чего и почему.

Cистема - это далеко не оптимальный набор кода. При пустой памяти система лезет в своп? Отключи своп и ты наверняка будешь поражен тем, что никаких ухудшений в надежности работы не произойдет.

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

Низачем. Плохо понимаемые тобой заклинания про анонимную память оставь при себе.

К сожалению, большинство из них даже не понимает, чего лишили ядро.

Бессмысленных операций по гонянию данных туда-сюда?

Понимающие отключают своп вполне осознанно для решения определенных задач, отдавая себе отчет о последствиях и ограничениях.

Протри глаза и оглянись - в мире миллиард мобильных линуксовых и родственных ему систем без свопа. Давно уже прекрасно умеют решать вопросы организации работы ОС без архаичного свопирования. Купи достаточно памяти, настрой кэширование пузатых программ и убиение ненужных, короче сделай работу системы осмысленной и забудь про свопирование как дурной сон нищеброда, не умеющего контролировать происходящее у него в системе.

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

необходимость в свопе

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

При пустой памяти система лезет в своп?

Если тебе нужна пустая память, вынь её из компьютера и положи на полку.

Что происходит на самом деле: система видит, что к каким-то блокам анонимной памяти давно не было обращений. Она в свободное время, никому не мешая, копирует данные в своп, блок добавляется в список потенциально свободных. Увеличивая тем самым доступную активным приложениям резидентную память. Если прямо сейчас эти данные кому-то понадобятся, читать их из свопа не придется. Зато у ядра появляется больше возможностей в управлении памятью, и больше возможностей сохранить в быстром доступе часто используемые данные файлового кеша.

в мире миллиард мобильных линуксовых и родственных ему систем без свопа

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

настрой кэширование пузатых программ и убиение ненужных

Так и поступают Android и iOS из-за недостатка памяти: приложения должны уметь свой «своп» — кешировать данные и скидывать на SD при запросе системы, а ядро убивает неугодных направо и налево.

На десктопах, а тем более на серверах, пришедший oom killer — это аварийная ситуация, когда уже не идет речи о пользовательских данных, а только о выживании системы. И именно наличие свопа позволяет ядру пережить критическую ситуацию и сохранить свои данные.

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

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

Когда-то давно порт устанавливался в систему

ну вот я помню, что еще совсем не так уж давно по моим меркам был make install прямо в систему:) все-таки FreeBSD подросла, это хорошо, надо попробовать использовать)

crypt ★★★★★
()
Ответ на: комментарий от baka-kun

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

О, уже лучше.

Нет практически ни одного смартфона, где памяти «достаточно» в твоем понимании.

«Памяти достаточно» - это не значит что есть терабайт никогда не используемой памяти. «Памяти достаточно» - это значит, что система способна длительно и надежно работать при данном составе рабочего софта и данной величине ОЗУ без потребности в свопировании.

На десктопах, а тем более на серверах, пришедший oom killer — это аварийная ситуация, когда уже не идет речи о пользовательских данных, а только о выживании системы. И именно наличие свопа позволяет ядру пережить критическую ситуацию и сохранить свои данные.

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

Да, своп помогает, но это не единственное его предназначение.

А это уже вопрос твоих верований и неверно понятых статей, опровергаемый реальностью и работой миллиарда безсвопных устройств.

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

«make package» в каталоге порта и в 2006 году производило то же самое, что и сейчас. Почему это является неочевидным в 2018 году?!

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

наверное, в инструкции было make install. откуда я помню, что там было неочевидного? я фрибзд тестировал примерно так: ага, пятый релиз пробуем - повис, через какое-то время шестой пробуем - еще какая-то проблема, потом там восьмой, девятый и десятый - только читаем пресс-релизы, ну вот 11 опять смотрим. инсталятор допилили, менеджер пакетов сделали. путаницу, когда порты с пакетами путаются и нельзя даунгрейд сделать, кажется, починили. на ноуте по-прежнему использовать невозможно, но на раб.станции почти норма.

так че там у вас, OOM прикольнее сделан?

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

Нет практически ни одного смартфона, где памяти «достаточно» в твоем понимании.

«Памяти достаточно» - работать без потребности в свопировании

И своп в zRam на Андроиде от достатка памяти. Да в смартфонах просто перманентный свопинг происходит — чуть ли не каждый раз при переключении задач кого-нибудь выносят из памяти, а потом загружают обратно с восстановлением состояния. Регулярно выносят «жестко», не давая ничего сделать. Много ты виден на ПК софта, для которого постоянный SIGKILL — штатный режим работы?

«Памяти достаточно» - это значит, что система способна длительно и надежно работать

Система способна длительно и надежно работать, даже когда почти вся память забита приложениями, а на кеши ничего не остается. Правда медленно и печально.

Не должно быть никаких подобных «критических ситуаций» в профессиональной системе.

Слова не мальчика, но админ локалхоста :)

Любое свопирование - это уже вопрос выживания системы и недосмотр админа.

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

Но ты опять сваливаешься в обсуждение крайностей. И даже не понимаешь, что без свопа проблемы при давлении на память начнутся намного раньше, а пробуксовка будет более жесткой при тех же запущенных задачах. Свопинг с отключенным свопом намного хуже, и начинается, когда до OOM ещё далеко.

А это уже вопрос твоих верований и неверно понятых статей

Дурака учить, только портить. Оставайся при своем мнении. Только постарайся выбрать менее требовательную к уровню знаний профессию, если учиться не способен.

baka-kun ★★★★★
()
Ответ на: комментарий от crypt

так че там у вас, OOM прикольнее сделан?

Во FreeBSD нет OOM в понимании Линукса (с overcommit) просто потому, что память выделяется сразу. Если прямо сейчас её недостаточно, malloc() вернет NULL. Даже сам термин overcommit означает разные вещи. В Линуксе это — наобещать приложениям столько памяти, сколько запросят, а выделять в момент использования (и убить, на кого бог пошлёт, когда не получается). Во FreeBSD — когда приложениям дают выделить больше анонимной памяти, чем может быть поддержано свопом.

То есть в Linux приходит злобный OOM killer, а во FreeBSD приложению говорят, «столько не дам, умерь аппетиты».

baka-kun ★★★★★
()
Ответ на: комментарий от burato

Зачем мне что-то для него делать ? Чтобы рэд хэт продавал мою работу ?

lenin386 ★★★★
()
Ответ на: комментарий от baka-kun

И своп в zRam на Андроиде от достатка памяти.

Zram не своп. Он и сделан как раз для избежания бессмысленного свопирования при недостатке озу.

Регулярно выносят «жестко», не давая ничего сделать

Ай-яй, какое горе, прибили ненужные процессы. Вместо того, чтобы как и положено в ХХ веке, тормозя систему долго складировать мусор в своп в надежде что он когда-нибудь пригодится.

Система способна длительно и надежно работать, даже когда почти вся память забита приложениями, а на кеши ничего не остается. Правда медленно и печально.

Купи память. Попроси мамку/директора выделить немножко денег. Так и скажи «я забил всю память приложениями, все до зарезу нужны, убивать их до слез жалко, и теперь у меня система медленно и печально свопируется»

Не должно быть никаких подобных «критических ситуаций» в профессиональной системе.
Слова не мальчика, но админ локалхоста :)

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

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

Чушь. Очередные религиозные страшилки. «Кто выключит своп - гореть тем в геенне огненной медленно и мучительно». Научись проектировать и настраивать систему и контролировать то, что происходит в памяти. Чтобы не было «давления на память». Чтобы не буксовало.

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

Zram не своп

Блочное устройство со сжатием, которое подключают как

modprobe zram
mkswap /dev/zram0
swapon /dev/zram0
Это как раз и есть своп. Для того, чтобы система могла выкидывать из резидентной памяти редко используемые анонимные блоки. Да, хранятся они там же в ОЗУ в сжатом виде. И задача zRam не столько в увеличении доступной памяти, а в росте отзывчивости при её нехватке и невозможности создать своп другими средствами.

Ай-яй, какое горе, прибили ненужные процессы.

С чего бы ненужные? Только переключился из браузера в PdfView, чтобы посмотреть документ, проверил почту, возвращаешься в браузер, а его уже давно в ОЗУ нет, запускается заново, подгружает из своего «свопа»-кеша последнее состояние, перерендеривает страницы… И так по кругу. Смартфоны с их вечным недостатком памяти — это ещё то счастье. А ты агитируешь на ПК «ненужные» (по мнению системы) процессы убивать.

Купи память.

Добито до максимума, а через некоторое время после старта в свопе несколько гигов. Правда оперативной памяти в результате всем на сервере хватает. Без свопа были бы тормоза. да.

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

Я тебе даже больше скажу. Элементарно создается в многозадачной системе ситуация, когда потенциально свободной памяти дофига, но из-за отсутствия свопа система постоянно лезет к диску при переключении контекста вплоть до постановки системы колом. И никакой OOM killer не поможет, потому что никто не просит памяти больше, чем ядро может дать, освободив inactive.

Очередные религиозные страшилки.

Технология всегда выглядит для непосвященных как магия или религия.

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

Блочное устройство со сжатием, которое подключают как

Угу, сначала делаем устройство на другом носителе. Потом оказывается, что можем сделать устройство в озу и сжать. Потом можем сделать блочное устройство в памяти и не сжимать. А потом можем вообще обойтись без лишних действий. Видишь, как расширяются возможности и повышается производительность по мере увеличения памяти до соответствия объема решаемым задачам?

при её нехватке

Купи память. Переделай систему. Нехватка памяти - это такое же состояние, как нехватка мощности электросети, нехватка места в офисе для сотрудников, нехватка денег для выплаты зарплат.

С чего бы ненужные?

Неиспользуемый процесс == ненужный.

Только переключился из браузера в PdfView, чтобы посмотреть документ, проверил почту, возвращаешься в браузер,

И этот человек, у которого на компьютере браузеры, вьюеры, почты, да еще и при этом не хватает памяти для сего скудного набора что-то говорил про админов локалхоста? :) Это очевидный бездельник в нищей фирме или мамкин админ.

А ты агитируешь на ПК «ненужные» (по мнению системы) процессы убивать.

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

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

Очевидный вывод - система спроектирована неверно, занимается не своими делами, несоответствующими объему памяти.

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

И эту ситуацию, когда по определению в нищебродскую систему питаются впихнуть невпихуемое, ты предлагаешь решать свопированием, то есть заменить одно постоянное лазание к диску на другое лазание к диску с тем же самым колопоставлением? Хе-хе.

Технология всегда выглядит для непосвященных как магия или религия.

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

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

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

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

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

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

Спасибо, капитан

Приложения переднего плана получают приоритет в запросах к подсистеме памяти, а остальные процессы вытесняются в SWAP. Эта процедура, если она повторяется регулярно, довольно неприятная, но не аварийная, а штатная, позволяющая спланировать затраты на оптимизацию: выделить деньги на покупку модулей памяти требуемого объёма

Да, капитан. И естественно - для экспериментальной системы. Причем нет особой разницы, что будет признаком необходимости доработок - вытеснение в своп или работа ООМ киллера. Но мы то говорим не об экспериментальной системе, а о «строевой» работающей. И там обе эти ситуации - аварийные.

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

Я видел и я верю.

Найдется еще большее количество людей, видевших то, как наличие свопа вызывает точно такие же проблемы торможения и зависания системы. Своп - это не лекарство для лечения проблем кривизны системы и нехватки памяти. Это припарка, в некоторых случаях позволяющая отсрочить решение проблем.

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

Это припарка, в некоторых случаях позволяющая отсрочить решение проблем.

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

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

Человеку не должно нравится, когда его система становится однозадачной.

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

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

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

Но мы то говорим о профессиональных системах, где в первую очередь важны надежность и эффективность работы. В этом случае уже не все эти способы годятся.

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

Интересно, наличие недостаточного объёма HBM у процессора что-то скажет о «профессиональных системах», где есть SWAP?

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

Угу, сначала делаем…

Ну, то есть zRam — это всё таки своп?

А потом можем вообще обойтись без лишних действий.

Но ведь смартфон с zRam (свопом) работает лучше, чем без него. Как же так?

Купи память.

В смартфон?

И этот человек, у которого на компьютере браузеры, вьюеры…

Ты потерял нить разговора? Мы обсуждали «миллиарды линуксов без свопа», в которых всё должно было быть «зашибись» по твоему мнению. А на деле в Андроиде катастрофическая нехватка памяти и куча подпорок с вытеснением данных по малейшему чиху.

Очевидный вывод - система спроектирована неверно

Очевидный для тебя вывод неверен. :)

по определению в нищебродскую систему
давно устаревшую морально технологию разруливания проблему нехватки памяти

Я не понимаю, почему тебя так тянет обсуждать «нищебродство» и нехватку памяти. Проецируешь?

Все твои «аргументы» (рационализация) — «своп плохой потому, что у нищебродов мало памяти», и ни одного технического. А ты своп отключил, значит не нищеброд. Поэтому и скатываешь всё время только в этот крайний случай.

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

Ах, да - операцинке есть где достать код. ;)

iZEN ★★★★★
()
Ответ на: комментарий от baka-kun

Ну, то есть zRam — это всё таки своп?

Хотите по формальному признаку выделенный кусок ОЗУ засчитать за своп - пожалуйста.

Но ведь смартфон с zRam (свопом) работает лучше, чем без него. Как же так?

Естественно - за счет сжатия. Будете все складывать в память в сжатом виде - она еще больше «расширится». То есть как видите - очередной костылик в ситуации недостатка памяти.

В смартфон?

У вас других вариантов и аргументов нет? Вы смартфонный админ?

Ты потерял нить разговора? Мы обсуждали «миллиарды линуксов без свопа», в которых всё должно было быть «зашибись» по твоему мнению. А на деле в Андроиде катастрофическая нехватка памяти и куча подпорок с вытеснением данных по малейшему чиху.

Вы сами то следите за тем что пишете или просто не понимаете о чем пишу я? Естественно, в смартфонах нехватка памяти. Но это как раз пример того, как можно организовать сравнительно надежную работу в ситуации, когда пользователь впихивает в систему очевидно невпихуемый набор ПО. Понимаете? Система аккуратно убирает ненужное по своему усмотрению, коль уж пользователь не заморачивается. Но вы, я все еще надеюсь, не такой пользователь и в состоянии решить где граница - что можно воткнуть в подобную систему, а для каких задач она мала?

Очевидный вывод - система спроектирована неверно
Очевидный для тебя вывод неверен. :)

То есть для вас система, в которой вскоре после старта в свопе загружено несколько гигов (это ваши слова) - спроектирована нормально? Система, в которой катастрофически не хватает памяти сразу после включения и которая большую часть своих ресурсов тратит на то, чтобы гнать в своп гигабайты мусора , а потом доставать этот мусор обратно - правильная? Я начинаю сомневаться, что разговариваю с технически образованным человеком.

Все твои «аргументы» (рационализация) — «своп плохой потому, что у нищебродов мало памяти», и ни одного технического. А ты своп отключил, значит не нищеброд. Поэтому и скатываешь всё время только в этот крайний случай.

Своп плохой потому, что это снижающая скорость и надежность системы бессмысленная трата ресурсов системы в ситуации нехватки памяти. Я достаточно техничен? Если вам необходим своп - в большинстве случаев вы либо не имеете ресурсов на приобретение соответствующего задачам оборудования, либо неграмотно спроектировали систему

Возьмите еще один пример, который перед глазами чуть ли не у каждого. Миниатюрный профессионально спроектированный сервер достаточно высокой надежности, в которых по дефолту своп отсутствует. Роутер. Что фирменные прошивки, что альтернативные (ddwrt, openwrt, lede) по дефолту свопа не имеют. И несмотря на это могут годами работать не выключаясь без всяких ваших страшилок с зависаниями. Потому что оборудование соответствует задаче. И несмотря на то, что память в мегабайтах, а не в гигабайтах.

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

У вас других вариантов и аргументов нет?

Ты же сам притащил этот аргумент — «на смартфонах свопа нет, все проблемы прекрасно решены». На деле «прекрасно» — это возложить на приложения заботу о сохранности данных и управление памятью, а потом убивать фоновые задачи. Как только таким же образом начнут писать для ПК — приходи, обсудим. А пока SIGKILL на десктопе равнозначен потере данных пользователя.

Система, в которой катастрофически не хватает памяти сразу после включения

Нет, доступной памяти там намного больше, чем занято в свопе. Это всё легко могло бы остаться в резидентной памяти, и система продолжила бы работать. Правда с существенной потерей производительности.

Своп плохой потому, что это снижающая скорость и надежность системы бессмысленная трата ресурсов системы в ситуации нехватки памяти.

Ты с чего-то решил, что своп используется только при нехватке памяти. Это заблуждение. Данные в своп попадают не в тот момент, когда кому-то потребовалась память, а заблаговременно. Система в свободное время копирует (а не переносит) в своп блоки анонимной памяти, начиная с самых старых и редко используемых. Если приложение с этим блоком работает, он из очереди на освобождение удаляется, и ничего с диска читать не нужно. И только когда блок пройдет всю очередь, он переносится в список свободных, и может быть использован. Это дает системе возможность передать занимаемую бесцельно память туда, где она нужнее. А в случае неожиданной потребности в ресурсах быстро их предоставить. Тем самым увеличивая надежность и производительность. Без свопа система может освобождать только отображенную на файл память, а её обычно намного меньше, чем анонимной.

Потому что оборудование соответствует задаче.

Потому что задача одна и заранее хорошо известна. Десктоп — не мобильный телефон и не эмбедщина, на которую ты ссылаешься. Это система общего назначения, где потребность в ресурсах в общем случае непредсказуема.

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

Ты же сам притащил этот аргумент — «на смартфонах свопа нет, все проблемы прекрасно решены». На деле «прекрасно» — это возложить на приложения заботу о сохранности данных и управление памятью, а потом убивать фоновые задачи.

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

Как только таким же образом начнут писать для ПК — приходи, обсудим. А пока SIGKILL на десктопе равнозначен потере данных пользователя.

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

Система, в которой катастрофически не хватает памяти сразу после включения

Нет, доступной памяти там намного больше, чем занято в свопе. Это всё легко могло бы остаться в резидентной памяти, и система продолжила бы работать. Правда с существенной потерей производительности.

Да-да. Система перестала выполнять самые тормозные действия по загрузке-выгрузке данных на другой носитель, все приложения при этом прекрасно работают и это называется «потеря производительности»? Смешно. Ты оторвался от реальности и не в состоянии представить систему, перекачивающую гигабайты на диск? Или настолько веришь в бессвопные страшилки, что ради этого готов отрицать реальность?

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

Нет, ты меня не понял. Одна из проблем как раз в том, что своп может использоваться при достатке памяти. Но это не значит, что его использование при этом нужно. Напоминаю, система - это не идеальный ум, который все делает правильно. То, что она делает и насколько оптимально, решает пользователь своими настройками. Есть излишек памяти? Значит система лезет в своп зазря, ухудшая производительность.

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

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

Потому что задача одна и заранее хорошо известна. Десктоп — не мобильный телефон и не эмбедщина, на которую ты ссылаешься. Это система общего назначения, где потребность в ресурсах в общем случае непредсказуема.

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

И зря ты так пренебрежительно отзываешься об «эмбедщине». Роутер - это полноценный сетевой сервер, который может решать свои задачи на нескольких мегабайтах памяти. А ПК имеет несколько гигабайт и соответственно может решать гораздо более объемные задачи. Без свопа. Просто надо уметь пользоваться этой памятью и четко представлять что должен выполнять компьютер.

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

Смартфон и роутер - примеры устройств с однозадачной логикой выполнения. На них все системные процессы, хоть они выполняются параллельно, считаются подзадачами одного системного процесса. И только пользовательские задачи могут внести хоть какую-то неожиданность в автоматическое распределение вычислительных ресурсов. На роутерах Zyxel, например, можно включить SWAP и задать его размер, если установленные пользовательские сервисы нуждаются в большем объёме памяти, чем есть на борту. Смартфоны физически ограничивают запуск нескольких пользовательских программ переднего плана одной выполняемой и приостановкой других в режиме ожидания активации. В таких условиях распределять свободную память легче и не нужно вымещать что-то куда-то - проще закрыть ожидающее приложение и восстановить по запросу.

Хотите превратить ПК в подобие смартфона с неожиданным пропаданием запущенных задач? Отключите SWAP к чертям собачьим!

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 2)

НУЖНО

И это не обсуждается.

/thread

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

Смартфон и роутер - примеры устройств с однозадачной логикой выполнения

Команды ps или top дают вам список из одной позиции? ) Очевидно вы считаете, что если вы в состоянии словами четко очертить круг задач компьютера, то он является однозадачным? )

И только пользовательские задачи могут внести хоть какую-то неожиданность в автоматическое распределение вычислительных ресурсов.

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

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

Да почти все альтернативные прошивки имеют возможность и активации свопа и подключения «навески». Только, как видите, это делается на тот случай, когда в систему пытаются воткнуть задачи, для которой она изначально не предназначалась. Примерно как к спроектированному профессионалами дому, творческие жильцы начинают к нему пристраивать кто курятник, кто манснарду, кто балкончик. Всегда ведь хочется побольше, побольше, а если я запущу еще вот это? А теперь еще вот это? )

Хотите превратить ПК в подобие смартфона с неожиданным пропаданием запущенных задач? Отключите SWAP к чертям собачьим!

Я уже как-то говорил - я отказался от свопов везде, где это решение находится в моей компетенции, уже 20 лет как. Ничего не пропадает. При том, что речь как правило идет о системах, где желателен многомесячный аптайм. Потому что заранее известно для чего эти системы будут использоваться и известен требуемый объем памяти. И потому что походить к проектированию надо примерно так же, как разработчики роутеров, в которых, как вы видите, ничего не пропадает.

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

Это и есть - отлично решены.

И ты хочешь такое же «отлично» на десктопах?

Как только таким же образом начнут писать для ПК — приходи…

Да давно так делают

Где? Покажи мне приложения на десктопе, написанные как для смртфона, рассчитанные на SIGKILL в штатном режиме.

Да-да.

Смешно. Ты мне будешь рассказывать, как оно тут работает?

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

Да нет там никаких постоянных загрузок-выгрузок. В своп улетели очень редко используемые блоки, освободив место под горячие данные файлового кеша, благодаря чему доступ к накопителям значительно ускорился.

все приложения при этом прекрасно работают и это называется «потеря производительности»?

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

не в состоянии представить систему, перекачивающую гигабайты на диск?

Нет никакой постоянной «перекачки» гигабайтов в своп. Не фантазируй. В конце концов, кто из нас видит этот сервер суть ли не каждый день, ты или я?

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

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

Есть излишек памяти?

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

о компе школьника
прихоти начальника-бездельника

Ты так ярко и с пафосом описываешь, что ни остается никакого сомнения в большом опыте :) А я тебе мечту о безграничной памяти без свопа ломаю, фантазировать мешаю. :)

«Непредсказуемая потребность в ресурсах» - главный признак непрофессионализма

Ты ведь даже потребности в памяти своего браузера предсказать не в состоянии. Но впечатление складывается однозначное: «профессионал» — это админ локалхоста, всё время которого уходит на мониторинг загрузки памяти по иконкам в трее и убивание лишних процессов, чтобы памяти всегда было «достаточно». :)

baka-kun ★★★★★
()
Ответ на: комментарий от vaddd

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

Очевидно, под словом «задача» он не имел в виду «процесс ядра». Специализированное решение оно на то и специализированное, что создано для выполнение узкого и четко определенного круга задач.

В отличие от компьютеров общего назначения.

я отказался от свопов везде, где это решение находится в моей компетенции, уже 20 лет как.

И что же за системы у тебя были в 1998 году? Cyrix 6x86? А может быть целый Pentium MMX и 16 мегабайт памяти, или вдруг даже целых 32?

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

Где? Покажи мне приложения на десктопе, написанные как для смртфона, рассчитанные на SIGKILL в штатном режиме.

Их не нужно писать специально. OOM killer - это _штатное_ системное средство. Оно как раз и предназначено для пользователей, которые не в состоянии расширить память, не умеют предсказать нагрузки и не контролировать свои желания. Это примерно та же группа, которая использует своп.

Смешно. Ты мне будешь рассказывать, как оно тут работает?

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

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

У вас даже не возникает мысли о том, что сочетание «очень редко используемые блоки» как раз и говорит о бессмысленности свопа?

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

Система гоняет мусор («очень редко используемые блоки») гигабайтами, а доступ к накопителям получается «значительно ускорился». Какими еще чудесами технической логики вы нас собираетесь поразить?

Нет никакой постоянной «перекачки» гигабайтов в своп.

Да на кой он тогда нужен, если перекачки нет? ) Либо данные из свопа нужны, и он их качает обратно, либо не нужны, если не качает ) Предчувствую в ответ словосочетание «качает очень-очень редко» )

В конце концов, кто из нас видит этот сервер суть ли не каждый день, ты или я?

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

Поэтому, если памяти «достаточно», своп не оказывает отрицательного влияния на производительность

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

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

Если система постоянно читает-пишет файлы - ей вообще не до свопа. Хочется хранить в памяти больше файлов - увеличивай память.

Ты так ярко и с пафосом описываешь, что ни остается никакого сомнения в большом опыте :)

Это картину хоть раз в жизни видели очень многие околокомпьютерные служивые - как по поручению начальника пытаются впихнуть задачи в имеющуюся систему. «Денег нет, но вы держитесь»

А я тебе мечту о безграничной памяти без свопа ломаю, фантазировать мешаю. :)

Видите, вы уже в попытке защитить свою религию пытаетесь извращать мои слова до абсурда. Слабенько что-то.

Ты ведь даже потребности в памяти своего браузера предсказать не в состоянии.

Могу. Системы, на которых я «браузерю», тоже свопа не имеют. Не зависают. Киллер системой не задействуется. Посмотрите первые страницы топика - таких уже большинство.

«профессионал» — это админ локалхоста, всё время которого уходит на мониторинг загрузки памяти по иконкам в трее и убивание лишних процессов, чтобы памяти всегда было «достаточно». :)

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

vaddd ★☆
()
Ответ на: комментарий от baka-kun

Очевидно, под словом «задача» он не имел в виду «процесс ядра». Специализированное решение оно на то и специализированное, что создано для выполнение узкого и четко определенного круга задач.

Это и есть сервер. Или в более широком смысле - профессиональная система.

В отличие от компьютеров общего назначения.

А это и есть непрофессиональная система.

И что же за системы у тебя были в 1998 году? Cyrix 6x86? А может быть целый Pentium MMX и 16 мегабайт памяти, или вдруг даже целых 32?

Хе-хе. Вы очевидно забываете, что для каждого времени имелся свой круг задач и когда-то система помещалась на несколько дискеток, а софт был такой, что мог и 640к обходиться ) Еще раз напоминаю - профессионализм состоит не а абсолютных значениях цифр, а в соответствии задач системе. Как тот же роутер - он и наше время может работать на паре десятков мегабайт.

PS. Когда-то и на альтависту можно было зайти в текстовом режиме )

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

Их не нужно писать специально. OOM killer - это _штатное_ системное средство.

Ты действительно не понимаешь, или только делаешь вид? OOM killer — штатное средство Linux, но нет ни одного Unix приложения, для которого SIGKILL был бы штатным средством «приостановить работу».

Я вам рассказываю не как оно работает, а для чего оно работает.

Ты лучше меня, видимо, знаешь, для чего оно тут работает? :)

сочетание «очень редко используемые блоки» как раз и говорит о бессмысленности свопа

А куда их ещё девать? В резидентной памяти они большую часть времени только мешаются, забирая место у кеша, совсем выбросить их невозможно — это же анонимная память. Что ты предлагаешь?

Предчувствую в ответ словосочетание «качает очень-очень редко»

Сам спросил, сам ответил. Да, каждое обращение в своп за этими данными экономит в среднем несколько сотен тысяч обращений к дискам основного датасета. А некоторые блоки в свопе лежат до самого завершения работы.

Хочется хранить в памяти больше файлов - увеличивай память.

А говоришь, что не фантазируешь о бесконечной памяти? Набор данных на дисках превышает размер памяти любого доступного компьютера, а на кластер плохо ложится. Вернее, счетная задача параллелится с горем пополам, но данные — нет.

Могу.

Смешно, да. Хочешь ссылку, которая непредсказуемо выжрет всю твою память и убьет браузер (в лучшем случае)? Подход, «купим памяти с запасом — она дешевая», ошибочен.

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

А кто с этим спорит? Извини, но это ты здесь агитируешь, «своп никому и никогда не нужен», и не в состоянии понять его задачи и пользу. Я же на предлагаю превращать любой компьютер в мобильник, маршрутизатор или контроллер холодильника, я на стороне науки и здравого смысла — в каждом случае железо выбирается в соответствие с задачей. Но решение отключить на персоналке своп в подавляющем большинстве случаев идиотское.

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

Ты действительно не понимаешь, или только делаешь вид? OOM killer — штатное средство Linux, но нет ни одного Unix приложения, для которого SIGKILL был бы штатным средством «приостановить работу».

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

Ты лучше меня, видимо, знаешь, для чего оно тут работает? :)

Похоже, что так.

А куда их ещё девать? В резидентной памяти они большую часть времени только мешаются, забирая место у кеша, совсем выбросить их невозможно — это же анонимная память. Что ты предлагаешь?

Я что, недостаточно раз это повторял? В профессиональной системе должно быть памяти достаточно для тех процессов, на которые она рассчитана. И в этой ситуации система сама разбирается с памятью без бессмысленных свопирования или убиения.

Да, каждое обращение в своп за этими данными экономит в среднем несколько сотен тысяч обращений к дискам основного датасета.

«Обращение к дискам экономит обращение к дискам». «Внутри земного шара имеется другой шар, значительно больше наружного». Купи достаточно памяти и у тебя вообще не будет лишних обращений к дискам.

А говоришь, что не фантазируешь о бесконечной памяти? Набор данных на дисках превышает размер памяти любого доступного компьютера, а на кластер плохо ложится. Вернее, счетная задача параллелится с горем пополам, но данные — нет.

И при чем тут вообще своп? ) Логика работы с большим количеством файлов вообще не имеет никакого отношения к свопированию. Ты не понимаешь даже таких простых вещей? В своп данные с файлов с дисков не кладутся ) Данные с файлов находятся либо в памяти, либо на диске )

Смешно, да. Хочешь ссылку, которая непредсказуемо выжрет всю твою память и убьет браузер (в лучшем случае)?

Ты опять не понимаешь что своп тут опять вообще не при чем? При запуске процессов, бесконтрольно выжирающих память свопы не помогают ) Похоже ты никогда не видел, как может захлебываться система со свопом, намертво вешая систему.

Подход, «купим памяти с запасом — она дешевая», ошибочен.

Нет, это подход «сделаем своп - он спасет от проблем с запуском бесконечного количества задач» ошибочен.

Извини, но это ты здесь агитируешь, «своп никому и никогда не нужен»,

Удивительные глупости рождаются у тебя в голове. Давай порождение твоего воображения и твоей дислексии ты мне приписывать не будешь.

в каждом случае железо выбирается в соответствие с задачей

Естественно.

Но решение отключить на персоналке своп в подавляющем большинстве случаев идиотское.

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

И это без учета того, что ты опять мило пытаешься срулить с обсуждения профессиональных систем на персоналки в неопределенным кругом задач ) Впрочем, я уже привык, что ты не спорщик, а угорь на сковородке )

vaddd ★☆
()

Я тут задумался, нужен ли своп в 2018 году, когда оперативки много и она дешевая. За мои 16 гб я вышел только однажды

Оперативки могло хватать очень давно. Даже 10 лет назад во времена 2Гб. Но выключение свопа часто приводило и приводит к _снижению_ быстродействия :) — Подключение свопа увеличивает скорость системы, однако! :)

А 16Гб сегодня это не много. Так что история всё та же. И даже SSD ситуацию смягчает, но не на 100% :)

KRoN73 ★★★★★
()

Берегу диски - своп отключил

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