LINUX.ORG.RU
ФорумTalks

Открыл для себя vm.overcommit_memory

 


6

2

Да, я слоупок: более 5 лет пользуюсь линуксом, даже программист вроде как, и только сейчас обнаружил эти отличные опции для `/etc/sysctl.conf`:

vm.overcommit_memory = 2
vm.overcommit_ratio = 100

Перегрузил опции командой `sudo sysctl --system` и попал прямо в райские кущи. Можно открыть браузер, три IDE и запустить виртуалку Virtual Box - и результатом станет не зависание системы намертво с необходимостью делать hard reset, а просто ошибка в Virtual Box (работа виртуальной машины прервана).

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

А как вы боретесь с традиционным для Linux зависанием намертво при нехватке памяти?

P.S. для справки, настройку выполнял согласно этому былинному посту: http://avz.org.ua/wp/2011/04/24/overcommit-memory/

★★★★

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

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

Щас все пойдет по второму кругу. Своп - это вынужденная припарка для тех, кто не имеет возможности использовать ОЗУ достаточного размера.

Нет.

Все

Нет, не всё.

Никаких других предназначений и никаких преимуществ у него нет.

Есть, и тебе про них писали.

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

Есть, и тебе про них писали.

Давайте я еще раз повторю:

Своп - это вынужденная припарка для тех, кто не имеет возможности использовать ОЗУ достаточного размера. Все. Никаких других предназначений и никаких преимуществ у него нет.

Когда разберетесь как он работает и для чего нужен - приходите.

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

Своп - это вынужденная припарка для тех, кто не имеет возможности использовать ОЗУ достаточного размера. Все. Никаких других предназначений и никаких преимуществ у него нет.

Ещё раз, нет. Когда разберёшься, как в Linux работает виртуальная память, приходи.

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

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

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

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

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

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

Да прочитайте наконец хоть что-нибудь о том как выделяется память. Ну хотя бы это:

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

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

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

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

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

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

https://www.linuxatemyram.com/

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

Никогда не слышал.

А мне приходилось. Это не про Rust, а вообще про подход некоторых разработчиков.

mc, забытый на vty2, уйдет в своп и освободит немного RAM

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

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

Борьба кеша со свопом при дефолтном swappiness = 60 начнётся от 60% заполнения ОЗУ

Никакого отношения к заполнению ОЗУ swappiness не имеет. Этот параметр задаёт, в каком отношении можно вытеснять анонимную память к страницам с бэкендом на диске. При swappiness = 0 вытесняться из памяти будет только дисковый кеш и за-mmap-ленные образы приложений. При swappiness = 100 анонимная память и «кеш+код» будут вытесняться с равной вероятностью.

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

не принципиально, на что она начнет тратить время - на свопирование или на чтение по новой после очистки кэша.

Вот так взял и одним махом помножил на ноль принцип работы кеша. :)

скушайте пилюльку в виде статьи попроще

Ты смело раздаешь ссылки на то, что не читал и/или не понимаешь.

Ознакомься со своей ссылкой. Пойми, что в здоровой работающей системе used всегда стремится сравняться с total, а free — с нулём. При этом, чтобы система не встала колом без свопа, должно быть достаточно available — используемой системой памяти, которую можно быстро выделить ценой вытеснения из памяти кеша и буферов.

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

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

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

Пойми, что в здоровой работающей системе used всегда стремится сравняться с total, а free — с нулём.

Это все, что вы смогли почерпнуть из статьи?

При этом, чтобы система не встала колом без свопа, должно быть достаточно available — используемой системой памяти, которую можно быстро выделить ценой вытеснения из памяти кеша и буферов.

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

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

В том то и дело, что обычно в своп данные, которые обрабатываются, не попадают, и им достаётся больше ОЗУ для обработки (а thunderbird в этот момент спит в свопе, например)

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

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

Пробежал по диагонали. Ха-ха-ха!

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

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

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

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

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

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

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

Своп - это вынужденная припарка для тех, кто не имеет возможности использовать ОЗУ достаточного размера.

Нет.

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

А это вы погнали уже полную отсебятину.

Нет, именно так и работает виртуальна память.

Вычеркните слова «без свопа».

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

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

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

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

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

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

А теперь замените «с диска» на «из свопа» )

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

Да прочитайте же статью, еханы бабай! ) Там большими буквами написано: disk caching only borrows the ram that applications don't currently want. It will not use swap. If applications want more memory, they just take it back from the disk cache. They will not start swapping.

vaddd ★☆
()

Вопрос адептам нужности свопа, почему свопа обычно нет на embedded устройствах? Есть ли своп в андроидных лопатофонах и айфонах? Ведь там тоже может быть дисковый^Wфлешечный кэш, который должен вытеснять неиспользуемые страницы памяти!

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

Вопрос адептам нужности свопа, почему свопа обычно нет на embedded устройствах?

Почему ты так считаешь? Что ты знаешь о целях разработки zswap?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner
zswap basically trades CPU cycles
for potentially reduced swap I/O.  This trade-off can also result in a
significant performance improvement if reads from the compressed cache are
faster than reads from a swap device.

NOTE: Zswap is a new feature as of v3.11 and interacts heavily with memory
reclaim.  This interaction has not been fully explored on the large set of
potential configurations and workloads that exist.  For this reason, zswap
is a work in progress and should be considered experimental.

Во-первых, не своп в традиционном понимании, а костыль к нему для экономии I/O, во-вторых недостаточно протестировання экспериментальная недоделка

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

отвечу себе сам насчёт лопатофонов

https://discussions.apple.com/thread/2732434

в айфонах свопа нет

https://stackoverflow.com/questions/17478196/why-dont-most-android-devices-ha...

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

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

в айфонах свопа нет

if the amount of free memory drops below a certain threshold, the system asks the running applications to free up memory voluntarily to make room for new data. Applications that fail to free up enough memory are terminated.

Отличная замена свопу.

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

Вы отстаиваете свою сумбурную идею, что в системе не бывает свободной памяти

Неиспользуемая память бывает только непосредственно после запуска. Потом очень быстро used приближается к total.

А дальше, «мы выдали всем память, все процессы довольны, и внезапно память у нас закончилась. Теперь нам нужно ее как­-то освобождать. Процесс поиска и выделения свободной памяти в ядре называется Page Reclaiming. В памяти могут находится страницы памяти, которые нельзя забирать, – залокированные страницы (locked). Помимо них есть ещё четыре категории страниц. Cтраницы ядра, которые выгружать не стоит, потому что это затормозит всю работу системы; cтраницы Swappable – это такие страницы анонимной памяти, которые никуда, кроме как в swap устройство выгрузить нельзя; Syncable Pages – те, которые могут быть синхронизированы с диском, а в случае открытого файла только на чтение – такие страницы можно с лёгкостью выбросить из памяти; и Discardable Pages – это те страницы, от которых можно просто отказаться».

Читай умные книжки. Пойми хотя бы те статьи, на которые ссылаешься.

что без свопа она встанет колом. Все это ничем не подверждается - ни теорией, ни практикой.

Фантазёр такой фантазёр. Без свопа при давлении на память живётся плохо, вплоть до локапа, и ООМ-киллер не всегда помогает. Но если закончится ещё и своп, то будет совсем грустно.

Так сделайте достаток available - купите память.

Это же ты всё время норовишь обсуждать крайний случай — острый недостаток доступной используемой памяти. Сколько бы ты не докупал, всегда used будет стремиться к total, всегда потребуется использовать механизмы вытеснения данных из памяти.

А теперь замените «с диска» на «из свопа» )

Нужно бы знать, что код в своп не попадает. :)

disk caching only borrows the ram that applications don't currently want.

А кто с этим спорит?

If applications want more memory, they just take it back from the disk cache. They will not start swapping.

А вот это — некоторое упрощение статьи для начинающих. Иначе у тебя не был бы использован своп при наличии доступной для освобождения неанонимной памяти. Если это «They will not start swapping» — источник твоих знаний, лучше почитай умные книжки.

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

< Неиспользуемая память бывает только непосредственно после запуска.

Любой индикатор потребления памяти с вами не согласится )

Потом очень быстро used приближается к total.

Да почитайте же что-нибудь, мама мия ) В той статье, специально для вас это выделено заголовком большими буквами: Why does top and free say all my ram is used if it isn't? Эта память выделена условно, то есть она освобождается по первому же щелчку любого приложения, запрашивающего память. С точки зрения потребности в свопировании эта память свободна )

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

Не закончилась. Вам только кажется, что она закончилась. Еще раз возвращайтесь к чтению.

Теперь нам нужно ее как­-то освобождать. Процесс поиска и выделения свободной памяти в ядре называется Page Reclaiming. В памяти могут находится страницы памяти, которые нельзя забирать, – залокированные страницы (locked). Помимо них есть ещё четыре категории страниц. Cтраницы ядра, которые выгружать не стоит, потому что это затормозит всю работу системы; cтраницы Swappable – это такие страницы анонимной памяти, которые никуда, кроме как в swap устройство выгрузить нельзя; Syncable Pages – те, которые могут быть синхронизированы с диском, а в случае открытого файла только на чтение – такие страницы можно с лёгкостью выбросить из памяти; и Discardable Pages – это те страницы, от которых можно просто отказаться».

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

Без свопа при давлении на память живётся плохо, вплоть до локапа, и ООМ-киллер не всегда помогает. Но если закончится ещё и своп, то будет совсем грустно.

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

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

if the amount of free memory drops below a certain threshold, the system asks the running applications to free up memory voluntarily to make room for new data. Applications that fail to free up enough memory are terminated.

Отличная замена свопу.

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

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

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

аналог этого - как если бы своп был в tmpfs

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

Любой индикатор потребления памяти с вами не согласится )

«Любой индикатор» показывает тебе available, а не free. То есть используемую системой память, которую можно вытеснить ценой уменьшения попаданий в кеш. Читай уже книжки, не позорься.

она освобождается по первому же щелчку любого приложения

Конечно. При этом кеш/буферы I/O уменьшаются на запрошенный размер.

С точки зрения потребности в свопировании эта память свободна )

А при наличии свопа эта память даже растёт. Ничего удивительного.

Не закончилась.

Закончилась. Конечно, всегда есть незначительный объем free, который нужно поддерживать в живом состоянии. Новую память для приложений отбирают у кеша/буферов (и вытесняя старые анонимные блоки в свап, если есть).

О, вы наконец заглянули в первую статью, ура!

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

Теперь вам осталось понять что это значит и как работает на практике.

Я знаю, как это работает, поскольку видел этот код своими глазами. Равно как и разные BSD, Solaris и несколько других систем.

из этих фраз никак не проистекает потребность в свопе.

Где я такое утверждал? Ты удивляешь всё больше и больше, хотя, казалось бы, дальше некуда.

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

Меня всегда умиляют люди, которые прибегают к ad hominem на основании собственных предубеждений, имеющих слабое отношение к действительности.

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

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

Это всегда происходит. Если говорить конкретно, alloc_pages() берет страницы из списка свободных, который по возможности пополняется неактивными страницами, которые берутся из старых активных. Система стремится поддерживать список свободных (free) в небольшом ненулевом состоянии, чтобы быстрее выдавать память. Если ты просишь больше, страницы также прокачиваются из active через inactive во free, а потом приложению.

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

«Любой индикатор» показывает тебе available, а не free. То есть используемую системой память, которую можно вытеснить ценой уменьшения попаданий в кеш.

Скажите, зачем вы пытаетесь рассказывать вещи которые не имеют никакого отношения к работе свопа? Система разбирается с available памятью сама.

Закончилась. Конечно, всегда есть незначительный объем free, который нужно поддерживать в живом состоянии. Новую память для приложений отбирают у кеша/буферов (и вытесняя старые анонимные блоки в свап, если есть).

Да не закончилась она ) Система освобождает available память без свопирования. Она просто отдает ее другому приложению, которому она нужна. Понимаете?

Я знаю, как это работает, поскольку видел этот код своими глазами. Равно как и разные BSD, Solaris и несколько других систем.

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

Меня всегда умиляют люди, которые прибегают к ad hominem на основании собственных предубеждений, имеющих слабое отношение к действительности.

Так это же в вашей реальности система «встает колом» при отсутствии свопа ) Тяжело объяснять, что это всего лишь глупые страшилки, если вы этого не понимаете, а просто верите в это.

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

Система стремится поддерживать список свободных (free) в небольшом ненулевом состоянии, чтобы быстрее выдавать память. Если ты просишь больше, страницы также прокачиваются из active через inactive во free, а потом приложению.

Так и зачем в этой схеме своп? )

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

Вот по поводу «небольшого состояния» и есть вопросы именно к линуксу. Фря при свопинге во времена 2.2-2.4 vs fbsd4.5-5.0 была не просто быстрее: она работала а линукс коматозил. Т.е. политика фри явно была лучше линуксовой.

И, судя по до не давнего времени мучавшего пингвина 12309, не сильно то пингвин с тех пор поумнел.

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

не имеют никакого отношения к работе свопа?

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

Своп (в линуксе) отключают на десктопах для улучшения интерактивности, но интегрально он приносит только пользу.

Да не закончилась она

Она используется. Вся память занята (даже те блоки во free_list, которые могут быть перекинуты обратно в inactive и active) данными, большинство из которых приложения могут быстро получить из памяти, а не с диска. Можно их выкинуть, а когда-нибудь потом прочитать обратно.

Она просто отдает ее другому приложению, которому она нужна.

Отдаёт конечно, не нервничай так. Данные, которые могли бы быть получены из памяти, а не с диска, вытесняются, а блок передаётся как свободный приложению. Без обращения к свопу. Ценой перечитывания вытесненных данных с диска, если они кому-нибудь понадобятся.

Тяжело объяснять, что это всего лишь глупые страшилки

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

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

Фря при свопинге во времена 2.2-2.4 vs fbsd4.5-5.0 была не просто быстрее: она работала а линукс коматозил. Т.е. политика фри явно была лучше линуксовой.

Она и сейчас лучше.

Кардинальное отличие управления памятью в том, что в BSD она выделяется сразу при malloc(), а в Linux — после page fault при попытке записать в «дырку».

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

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

А при наличии достаточного количества памяти на диск ничего вытеснять не надо.

Оставив горячие данные дискового кеша в памяти. Что статистически достоверно уменьшает дисковый I/O в нормальных системах.

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

Своп (в линуксе) отключают на десктопах для улучшения интерактивности, но интегрально он приносит только пользу.

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

Она используется. Вся память занята (даже те блоки во free_list, которые могут быть перекинуты обратно в inactive и active) данными, большинство из которых приложения могут быстро получить из памяти, а не с диска. Можно их выкинуть, а когда-нибудь потом прочитать обратно.

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

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

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

Можешь верить хоть в Санта Клауса, но объективная реальность не на твоей стороне.

Я не занимаюсь верованиями. Я просто не использую своп. И половина регистрантов здесь тоже успешно не используют своп. А ваша страшилочная реальность - виртуальная, выдуманная. И абсолютно не аргументированная.

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

Что статистически достоверно уменьшает дисковый I/O в нормальных системах.

где можно посмотреть на эту статистику, кто и как её собирал, что такое «нормальная система»?

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

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

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

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

Да. А пока это не так, и мы вынуждены в оперативке держать кэш медленного диска, лучше иметь возможность выгружать в своп ненужные страницы.

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

Для этого нужно иметь объём оперативки больший, чем все файловые системы.

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

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

Хорошая мысль ) Но достаточно поместить то, что используется регулярно.

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

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

В чем принципиальная разница между выгрузкой в своп и выгрузкой в никуда (удалением)? В том и в другом случае потом нужно повторно читать диск и повторно загружать в память.

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

Так есть в сети немало таких экспериментов - система при старте копирует себя в tmpfs и работает дальше только оттуда

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

В чем принципиальная разница между выгрузкой в своп и выгрузкой в никуда (удалением)?

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

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

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

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

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