LINUX.ORG.RU
ФорумTalks

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

 ,


0

3

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

★★

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

Не приостановить, а закрыть приложения.

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

«Обращение к дискам экономит обращение к дискам»

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

В своп данные с файлов с дисков не кладутся

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

Данные с файлов находятся либо в памяти, либо на диске

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

При запуске процессов, бесконтрольно выжирающих память свопы не помогают

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

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

И опять ты про крайние случаи…

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

порождение твоего воображения

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

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

ССЗБ

baka-kun ★★★★★
()

Такие темы всплывали ещё со времён Win98 и 512 Мб. памяти

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

так им! этим химсторам! купили себе озу за 100 баксов !

Я за свои первые 32кБ выложил 2x50 рублей. Почти что зарплату молодого инженера :D Это нынешних тысяч 15 рублей :D Или баксов $200…250, что по текущему курсу, что по тогдашним 67 копеек + инфляция :)

И получается где-то 500 млн. нынешних рублей за гигабайт :)

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

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

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

Покажи приложения на ПК, которые «давно так делают».

Это делают не приложения. Такие вещи регулирует либо пользователь, либо, если он не умеет, то система

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

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

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

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

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

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

И опять ты про крайние случаи…

Только потому что ты мне рассказываешь про крайние случаи )

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

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

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

ССЗБ

Это больше относится к таким свопистам как ты )

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

swap используется для хибирнейта, нет?

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

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

И получается где-то 500 млн. нынешних рублей за гигабайт :)

Что не потрачено, то сэкономлено. :))

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

Предлагаю объявить бойконт дорогущей RAM - купить 2Gb модуль самой дешёвой памяти, поддерживаемой процессором, наряду с этим приобрести наиболее быстродействующий NVMe SSD на сколько хватит денег. На SSD установить систему, программы и сделать SWAP (в виде файла или в отдельном разделе - не важно) размером 16-24ГБ. И поработать на такой конфигурации. По деньгам выйдет в два-три раза дешевле, чем с таким же объёмом RAM. По быстродействию? Скорее всего, из офисных служащих тоже никто не заметит подмены.

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

Это делают не приложения.

В смартфонах это делают именно приложения. Андроид просто убивает программу, может вызвать onDestroy(), но не гарантированно. Когда пользователь возвращается в приложение, оно должно восстановить своё состояние, вплоть до содержимого полей ввода и положения курсора, чтобы прозрачно продолжил работу.

пропускается состояние между «явная нехватка памяти» и «памяти столько, что в нее можно запихнуть все файлы с диска»

«…при любом размере оперативной памяти…»

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

У меня ничего память бесконтрольно не выжирает.

То есть ты в состоянии заранее предсказать расход памяти браузером? :)

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

Определи «достаток памяти».

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

В смартфонах это делают именно приложения. Андроид просто убивает программу, может вызвать onDestroy(), но не гарантированно. Когда пользователь возвращается в приложение, оно должно восстановить своё состояние, вплоть до содержимого полей ввода и положения курсора, чтобы прозрачно продолжил работу.

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

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

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

То есть ты в состоянии заранее предсказать расход памяти браузером? :)

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

Определи «достаток памяти».

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

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

Это значит лишь то, то приложение постоянно кэширует некоторые данные.

Приложение записывает на диск каждое действие пользователя, хранит и обновляет своё текущее состояние. Именно так «прекрасно» решена проблема на смартфонах. «Как только таким же образом начнут писать для ПК — приходи, обсудим».

Между этими крайностями своп проявляет свои положительные качества - пытается спасти систему от нищих и/или криворуких пользователей

То есть «нищие и/или криворукие» — это те, у кого нет явной нехватки памяти, но при этом все файлы в неё не помещаются?

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

Где технические аргументы? Какие конкретно качества свопа «без надобности»? Или ты думаешь убедить специалистов эмоциональным аргументом «своп для нищих и/или криворуких»? Да ты у нас Д'Артаньян. Или Алонсо Кехана.

То есть я не делаю ничего того, что делают классические компьютерные бездельники.

Что же ты такой весь правильный весь в белом делаешь на LOR-е? Ну, кроме того, что доставляешь мне очередные лулзы, конечно. :)

«Достаточно памяти» - это когда системе не нужно ни свопиться, ни убивать процессы.

То есть, вторая крайность — «памяти столько, что в нее можно запихнуть все файлы с диска»?

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

Приложение записывает на диск каждое действие пользователя, хранит и обновляет своё текущее состояние. Именно так «прекрасно» решена проблема на смартфонах. «Как только таким же образом начнут писать для ПК — приходи, обсудим».

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

Где технические аргументы? Какие конкретно качества свопа «без надобности»?

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

Или ты думаешь убедить специалистов эмоциональным аргументом «своп для нищих и/или криворуких»? Да ты у нас Д'Артаньян. Или Алонсо Кехана. Что же ты такой весь правильный весь в белом делаешь на LOR-е?

Смеюсь над твоим деревянным мышлением. Для чего еще лоровские толксы? А до тебя это все еще не доходит.

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

Софта, который запоминает то или иную информацию, необходимую для восстановления и продолжения - полно.

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

ненужные дисковые операции тормозят работу

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

Для чего еще лоровские толксы?

Доставлять мне лулзы. А ещё это такая «соцсеть» для классических компьютерных бездельников — в удовольствие почесать языком. И я действительно не понимаю, что такой Д'Артаньян делает в этом сборище пи^Hрофессионалов.

PS. Можешь даже сделать вид, что просто троллил. Я сделаю вид, что поверил. Мне не сложно, а тебе приятно.

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

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

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

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

Ну и если у тебя 32 гига рамы - размещай своп в zram.

А лучше даже не zRam, а zswap с нормальным разделом на диске, чтобы не лишать себя счастья уйти в hibernate, например. Или пережить действительно серьезный скачек в потреблении памяти.

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

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

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

Именно. И если ты не понимаешь, как в обсуждаемом случае своп уменьшает количество дисковых операций, то давай прекратим.

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

Доставлять мне лулзы.

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

PS. Можешь даже сделать вид, что просто троллил. Я сделаю вид, что поверил. Мне не сложно, а тебе приятно.

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

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

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

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

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

При достатке свободной памяти своп уменьшает количество дисковых операций?

Да. Если под «достатком памяти» ты не подразумеваешь, «памяти столько, что в нее можно запихнуть все данные с диска».

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

Да. Если под «достатком памяти» ты не подразумеваешь, «памяти столько, что в нее можно запихнуть все данные с диска».

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

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

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

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

Я попробую объяснить последний раз. Острую нехватку памяти не рассматриваем, «бесконечную» память — тоже.

Когда читается с диска хоть один байт, система берет чистый сегмент (сегменты) памяти (обычно по 4к), загружает его целиком и передает приложению запрошенный кусок. Если затем снова происходит чтение из этого блока, обращения к диску не происходит, отдается уже загруженное — это файловый (страничный) кэш системы. Когда приложению нужна память, будь то brk() или mmap(MAP_ANON), система так же берет чистый сегмент (сегменты) и передает приложению.

Рано или поздно наступает момент, когда чистые блоки подходят к концу (ведь памяти меньше, чем данных с диска, включая код приложений и тому подобное), и нужно принять решение, какой сегмент освободить. Линукс поступает просто — берет тот, к которому дольше всего не было обращений. Некоторые системы поступают умнее, и помимо LRU списка держат ещё и LFU, поэтому лучше знают «температуру» данных в сегментах памяти. Если у нас нет свопа, освободить можно только прочитанный когда-то с диска блок. Своп позволяет освобождать сегменты, полученные с помощью malloc() и mmap(MAP_ANON), а такой памяти в системе обычно значительно больше, чем кода, а зачастую — кода и кэша вместе взятых. В любом случае освобождается сегмент, к которому не обращались дольше (или реже) всего. В результате повторения процесса в памяти остаются самые востребованные, «горячие» данные, и их не приходится каждый раз читать с диска.

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

Я опускаю нюансы: например, если страница была изменена, её перед освобождением нужно записать на диск. Или то, что vm.swappinness задает коэффициент сравнения «температуры» анонимной памяти с файловой.

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

Если этого объяснения тебе недостаточно для понимания, как своп уменьшает количество дисковых операция, я умываю руки. «Против глупости сами боги бороться бессильны».

baka-kun ★★★★★
()
Последнее исправление: baka-kun (всего исправлений: 3)
Ответ на: комментарий от Shadow

Потому, что перетасовка страниц памяти для каждого процесса работает с учётом наличия свопа.

Она работает и без учета наличия свопа. Отсутствие свопа - это полноценное штатное состояние системы.

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

что там насчет роутеров без свопа?

Смартфоны и маршрутизаторы — это две противоположные крайности.

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

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

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

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

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

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

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

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

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

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

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

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

Вот как можно было из написанного придти к такому выводу? Это не лечится. Нет в том моей вины.

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

Вот как можно было из написанного придти к такому выводу? Это не лечится. Нет в том моей вины.

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

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

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

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

Прости, сейчас времени копаться в ядре нет. Раньше хреново работала. Своп - это виртуальная память, а виртуальная память - это доступное процессу адресное пространство.

Доступное процессу пространство должно быть в озу, а не на дисках.

Даже винда без свопа глючит.

Кстати и винда тоже не глючит. Что же вы, свопопоклонники, такие оторванные от реальности в своих убеждениях?

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