LINUX.ORG.RU

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

 


5

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/

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

То, что вы имеете в виду - выгружается в дисковый кэш программы

Какой дисковый кэш программы, о чём ты?

а не в своп в случае отсутствия оного

Ты пьян? В случае отсутствия свопа, конечно, ничего в него не выгружается.

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

Опять крайности.

Принципиальная то разница в эфективности в чем?

В том, что у меня дисковый кэш больше, чем у тебя. Если количество памяти одинаковое.

Я вас плавно подвожу к выводу о том, что наличие свопа - такие же потери на загрузку-выгрузку с диска.

Откуда должны появиться потери?

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

Какой дисковый кэш программы, о чём ты?

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

Ты пьян? В случае отсутствия свопа, конечно, ничего в него не выгружается.

Ты тормоз? Не в состоянии проследить о чем речь?

В том, что у меня дисковый кэш больше, чем у тебя. Если количество памяти одинаковое.

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

Откуда должны появиться потери?

Тук-тук, откройте. От операций дискового ввода-вывода. Своп, что, забесплатно читается-пишется?

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

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

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

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

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

Об этом и написано в статье фейсбучного инженера: «мы попросту переносим disk I/O из-за swapping'а на сброс горячего страничного кэша и сегментов кода, которые нам скоро понадобятся»

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

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

Кстати, об анонимной памяти. Кто-нибудь проводил вообще исследования о соотношении swappable, syncable и discardble страниц в некоей средней системе? Софт, использующий большое количество swappable вряд ли является оптимальным, потому что это постоянный источник проблем с нерациональным использованием памяти. Включая и свопирование.

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

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

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

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

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

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

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

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

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

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

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

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

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

Вообще такое впечатление, что темой свопа очень давно никто не занимается

Да. Дешевизна RAM всех испортила.

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

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

А при чём здесь это?

Ты тормоз? Не в состоянии проследить о чем речь?

Да нет, это ты не в состоянии.

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

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

Тук-тук, откройте. От операций дискового ввода-вывода. Своп, что, забесплатно читается-пишется?

Каким образом обращение к свопу мешает работе с данными, которые в оперативке?

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

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

Ясно. Ваш уровень представления предмета поразительно убог. Хочу вас разочаровать - дисковый кэш в оперативке не живет. Прочитайте хотя бы эту книжку-малышку: https://www.linuxatemyram.com/

Каким образом обращение к свопу мешает работе с данными, которые не в свопе?

Таким же, как и любые операции дискового ввода-вывода ) Выполнением ненужных действий.

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

Да ничего подобного )

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

Swap is essentially emergency memory; a space set aside for times when your system temporarily needs more physical memory than you have available in RAM. It’s considered “bad” in the sense that it’s slow and inefficient, and if your system constantly needs to use swap then it obviously doesn’t have enough memory. […] If you have enough RAM to handle all of your needs, and don’t expect to ever max it out, then you should be perfectly safe running without a swap space.

А потом пишет, что это заблуждение: "It is unfortunately also, however, a misunderstanding of the purpose and use of swap, especially on modern systems."

Swap is primarily a mechanism for equality of reclamation, not for emergency “extra memory”.Swap is not what makes your application slow – entering overall memory contention is what makes your application slow.

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

Ясно. Ваш уровень представления предмета поразительно убог. Хочу вас разочаровать - дисковый кэш в оперативке не живет. Прочитайте хотя бы эту книжку-малышку: https://www.linuxatemyram.com/

OMG, я даже не знаю, что тебе на это сказать. Трудно быть тобой. Да, почитай свою же ссылку. https://www.linuxatemyram.com/play.html

Таким же, как и любые операции дискового ввода-вывода ) Выполнением ненужных действий.

Дисковые операции тормозят работу с оперативной памятью? Это что-то новенькое.

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

Ну как же нет, когда это говорится в статье прямым текстом.

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

Увеличить память - и ее будет хватать )

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

Дисковые операции тормозят работу с оперативной памятью? Это что-то новенькое.

Любые ненужные действия тормозят работу всей системы. Зачем они нужны? Или вы думаете, что при переходе с hdd на sdd они пропали? Или вы хотите сказать, что ускоряют?

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

пишет, что это заблуждение: «It is unfortunately also, however, a misunderstanding of the purpose and use of swap, especially on modern systems.»

А следовало бы написать не на «modern systems», а на «Facebook systems» или «systems I care about».

Swap is primarily a mechanism for equality of reclamation, not for emergency “extra memory”

Primarily это именно extra memory.

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

Любые ненужные действия тормозят работу всей системы.

Во-первых, не неужные, во-вторых, нет.

Зачем они нужны?

Ты не поймёшь, тебе тут несколько страниц объясняют.

Или вы думаете, что при переходе с hdd на sdd они пропали?

Что-то себе придумывать - это твоя прерогатива.

Или вы хотите сказать, что ускоряют?

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

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

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

Я же тебе даже конкретные фразы привел в предыдущем посте. То, что говоришь ты, он называет misunderstanding.

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

Во-первых, не неужные, во-вторых, нет.

Кому и зачем нужно свопирование при достатке памяти?

Ты не поймёшь, тебе тут несколько страниц объясняют.

Это я вам и вашей малограмотной братии несколько страниц объясняю.

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

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

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

Я же тебе даже конкретные фразы привел в предыдущем посте. То, что говоришь ты, он называет misunderstanding.

А вы всю статью прочитайте, а не одно слово. Потому что он начал с фраз о пользе свопа, а потом всю статью пытается доказать, что своп нужен при недостатке памяти. Естественно, своп нужен при недостатке памяти. Вынужденная припарка при недостатке памяти ) Я же так и сказал.

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

Кому и зачем нужно свопирование при достатке памяти?

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

Это я вам и вашей малограмотной братии несколько страниц объясняю.

Человек, который не знает, что такое дисковый кэш, называет тех, кто знает, малограмотными?

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

Перечитай тред, градусник надо ставить тебе. Хотя, думаю, это тебя уже не спасёт.

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

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

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

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

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

Именно она и является ключевой для понимания: вся память в работающей системе максимально занята. Это не значит, что «памяти недостаточно»: приложения могут занимать хоть 50%, хоть 10%, но остальная память тоже используется с выгодой.

При недостатке памяти

Забудь про крайние случаи. В них своп тоже помогает, конечно, но речь не об этом.

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

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

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

Человек, который не знает, что такое дисковый кэш, называет тех, кто знает, малограмотными?

Мне вас уже до слез жалко. Давайте еще раз, медленно, по слогам, но постарайтесь осилить:

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 ★★ ()
Ответ на: комментарий от bigbit

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

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

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

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

Можешь собрать статистику самостоятельно. Всё равно же никому не поверишь, думаю.

Логика очень простая: выкинутые в своп редко используемые анонимные страницы востребованы намного реже данных, для которых они освободили место.

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

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

Ты админ локалхоста, я угадал?

Мне вас уже до слез жалко.

Ты уже прочитал, что такое дисковый кэш, и где он находится?

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

Это далеко не всегда так.

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

Логика очень простая: выкинутые в своп редко используемые анонимные страницы востребованы намного реже данных, для которых они освободили место.

т.е. обоснований этому утверждению нет, всё основано на вере?

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

Логика очень простая: выкинутые в своп редко используемые анонимные страницы востребованы намного реже данных, для которых они освободили место.

т.е. обоснований этому утверждению нет

Тебя совсем не учили, как работает вытеснение в системах с VM?

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

о чем сыр-бор? Сколько этой анонимной памяти в среднем по больнице? Килобайты? Мегабайты?

Подавляющее большинство ПО работает ради создания этой анонимной памяти — существующих только в ОЗУ данных. Начиная с буфера обмена системы, отрендеренных браузером web-страниц, редактируемого в текстовом процессоре документа, буфера отмены графического редактора, промежуточных данных счётной задачи… Заканчивая сценой игрушки и данными AI противников. Подавляющее большинство занятых программами страниц — анонимная память.

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

т.е. обоснований этому утверждению нет, всё основано на вере?

Это как бы базовые знания по устройству операционных систем, а не rocket science.

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

Именно она и является ключевой для понимания: вся память в работающей системе максимально занята.

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

Это не значит, что «памяти недостаточно»: приложения могут занимать хоть 50%, хоть 10%, но остальная память тоже используется с выгодой.

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

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

Сколько этой анонимной памяти в среднем по больнице? Килобайты? Мегабайты? Ну и хрен с ними

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

Почитай хотя бы про требования к свопу у Oracle Database:

RAM 	                Swap Space
Between 1 GB and 2 GB 	1.5 times the size of RAM
Between 2 GB and 16 GB 	Equal to the size of RAM
More than 16 GB 	16 GB

https://docs.oracle.com/cd/B28359_01/install.111/b32002/pre_install.htm#LADBI205

Думаешь, у Oracle просто так такие требования?

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

Подавляющее большинство ПО работает ради создания этой анонимной памяти — существующих только в ОЗУ данных. Начиная с буфера обмена системы, отрендеренных браузером web-страниц, редактируемого в текстовом процессоре документа, буфера отмены графического редактора, промежуточных данных счётной задачи… Заканчивая сценой игрушки и данными AI противников. Подавляющее большинство занятых программами страниц — анонимная память.

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

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

Много раз видел системы со всяким энтерпрайзным софтом, где с свопе стабильно валяется несколько гигабайт. Причем активного пейджинга не наблюдается, т.е. это действительно ненужная память, к которой нет обращений. Не было бы свопа, эти несколько гиг понапрасну расходовали бы ОЗУ. Думаешь, у Oracle просто так такие требования?

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

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

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

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

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

С какого перепугу вы решили, что все эти буфера - это именно анонимная память?

Она не ассоциирована с файлом на диске. Сравни размеры .bss, кучи, стека и mmap(MAP_ANON) (всё анонимная память) своих приложений с .code и .data. Более того, исполняемый код на динамических языках (с jit) — тоже анонимная память.

Обычно бо́льшая часть занятой приложениями памяти — анонимная.

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

где с свопе стабильно валяется несколько гигабайт

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

У Oracle ситуация осложняется тем, что множество этого кода — результат jit, то есть никуда кроме свопа его деть нельзя.

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

а почему у айфонов свопа нет :)

Это всё же не ПК. Они пошли другим путем: жестким ограничением на фоновые задачи и требованием к приложениям уметь освобождать память по требованию. Разработчикам приходится выкручиваться, вмещаясь в ограниченные ресурсы. С дисковым I/O, которому должен помогает кеш в ОЗУ, там тоже несколько другая ситуация.

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

Она не ассоциирована с файлом на диске.

Это ничего не значит. И ваш тезис:

Обычно бо́льшая часть занятой приложениями памяти — анонимная.

- неверен. Проверить элементарно, правда ведь? Берете систему без свопа и убеждаетесь что память освобождается.

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

Это всё же не ПК. Они пошли другим путем: жестким ограничением на фоновые задачи и требованием к приложениям уметь освобождать память по требованию. Разработчикам приходится выкручиваться, вмещаясь в ограниченные ресурсы. С дисковым I/O, которому должен помогает кеш в ОЗУ, там тоже несколько другая ситуация.

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

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

Это ничего не значит.

Это строгое определение анонимной памяти. :)

Проверить элементарно, правда ведь?

Правда. «Сравни размеры .bss, кучи, стека и mmap(MAP_ANON) своих приложений с .code и .data». :)

Берете систему без свопа и убеждаетесь что память освобождается.

Ты путаешь тёплое с мягким. :)

админ, следящий за задачами.

Админ локалхоста. :)

PS. Чем дальше, тем твои ответы всё смешнее и глупее. Но ты не останавливайся, «слабоумие и отвага»!

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

Чем дальше, тем твои ответы всё смешнее и глупее. Но ты не останавливайся, «слабоумие и отвага»!

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

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

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

один перл насчет того, что вся память всегда занята чего стоит

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

вы несли вообще ахинею

Я всегда утверждал одну истину: своп решает задачу вытеснения из оперативной памяти давно неиспользуемых анонимных данных, лежащих мертвым грузом.

Достаточное - это когда у системы нет потребности в свопе

Включи своп (swapon, swappiness не ноль и т.д.), и там что-нибудь обязательно окажется. Добавь памяти, и снова система воспользуется свопом. Поменяй материнку, забей памятью до упора, но через какое-то время своп не будет пустым. Вывод: ты нищеброд, который не может купить достаточно памяти.

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

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

других вариантов для вашего оправдания у меня увы, нет

Знатная зеркалочка. Ты правда за сотню баксов бухгалтерию эникеишь? У меня для тебя есть идеальное определение: ламер обыкновенный. Мало того, что в предмете не разбирается, так ещё и воинственно сопротивляется знаниям.

PS. Дурака учить — только портить. Не вижу смысла продолжать.

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

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

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

Я всегда утверждал одну истину: своп решает задачу вытеснения из оперативной памяти давно неиспользуемых анонимных данных, лежащих мертвым грузом.

Горе нищеброда - задача вытеснять информацию из-за недостатка памяти

Включи своп (swapon, swappiness не ноль и т.д.), и там что-нибудь обязательно окажется. Добавь памяти, и снова система воспользуется свопом. Поменяй материнку, забей памятью до упора, но через какое-то время своп не будет пустым. Вывод: ты нищеброд, который не может купить достаточно памяти.

Отключи своп и система продолжит работу без тормозов на совершенно ненужное свопление. Удивдивительная ситуация - памяти достаточно, а система все рано свопится. Зачееем? )

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

Как свопление может идти на пользу системе, если при достатке памяти система не свопится и ей это попросту ненужно? )

У меня для тебя есть идеальное определение: ламер обыкновенный. Мало того, что в предмете не разбирается, так ещё и воинственно сопротивляется знаниям.

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

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

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

Попадание данных в своп использует zram, при этом нет никакого замкнутого круга.

hakavlad ()

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

Использую бзерспейсный ООМ киллер, обрабатывающий нехватку памяти мягко, быстро и вовремя.

А к чему приводит запрет оверкоммита - см https://imgur.com/a/p9j67KA

Лучшая практика - это безоговорочное разрешение оверкоммита (overcommit=1) + использование юзерспейсного киллера, см https://github.com/hakavlad/nohang

hakavlad ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)