LINUX.ORG.RU
решено ФорумAdmin

Как сделать, чтобы при заполнении оперативной памяти, процессы не убивались?


0

2

Памяти 4 Гигабайта, при заполнении - прибивает процессы в какой-то непонятной последовательности.

Как сделать, чтобы процессы не прибивались, оставались в памяти?
Просто - чтобы система подтормаживала, но ничего не трогала?

★★★★★

Сделай своп побольше.

Памяти 4 Гигабайта, при заполнении...

Чем ты там её заполняешь?

Nao ★★★★★
()

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

anarquista ★★★★★
()

> Просто - чтобы система подтормаживала, но ничего не трогала?

Как ты себе это представляешь? Память нужна, а «никто не обижен»?

Вообще, если хочешь гарантии, что при нехватке памяти приложения не будут запускаться делай vm.overcommit_memory=2 (less /usr/share/doc/$KERNELDOC/overcommit-accounting)

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

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

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

Чем ты там её заполняешь?


Ничем, но однажды потекло 12 небольших самописных программок (забыл в
цикле free() сделать) - каждая начала разрастаться до 1.4 Гигабайт.

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

>Хотелось бы просто чтобы память не выделялась - а уже процессы думали - почему, и подтормаживали самостоятельно.

Феерично.

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

>>Хотелось бы просто чтобы память не выделялась - а уже процессы думали - почему, и подтормаживали самостоятельно.

Феерично.


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

Неужели сейчас системы стали настолько чувствительны к объему свободной памяти?

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

> своп не?

Ну, да, своп даст некий запас прочности. Но хотелось бы каким-то образом «объяснить» процессам, что памяти нету. Без их прибивания.

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

в posix этого по-моему не предусмотренно, да и собственно если не хватает памяти, что же тогда делать то с процессами?!

Неужели сейчас системы стали настолько чувствительны к объему свободной памяти?

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

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

> в posix этого по-моему не предусмотренно

OK. Вопрос закрыт.

pacify ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

> malloc в цикле - это пять баллов.

Логически всё верно, там различные объемы могли выделяться.

Утилита для обработки изображений.

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

> Логически всё верно, там различные объемы могли выделяться.

Тогда - мои извинения.

i-rinat ★★★★★
()
Ответ на: комментарий от unanimous

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

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

Ну, да, своп даст некий запас прочности. Но хотелось бы каким-то образом «объяснить» процессам, что памяти нету. Без их прибивания

Насколько я понимаю, любой процесс, если в нём явно не сделано иное, считает, что память есть. И если её нет, то оно отвалится на любом malloc или mmap.

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