Нехватка оперативной памяти под Linux

PitBull
Дата: 01.06.2015 15:59:27
Всем доброго времени суток.

Вопрос к знатокам - разрабатываю высоконагруженная система с высоким потреблением оперативной памяти (должна оперировать сотнями тысяч объектов). В процессе разработки пришёл к тому, что в итоге просто не хватает оперативной памяти (вернее, система не занимает все 100 процентов, но где-то на 80 linux сам завершае приложение). Поэтому вопрос - может кто подкинет ссылки на эту тему, либо имеет опыт в таких системах. Сразу скажу, что сейчас перерабатывать алгоритм фактически нереально (задумка как это сделать уже родилась, но времени в притык, в будущем возможно и переделаю).

Заранее всем спасибо
Dimitry Sibiryakov
Дата: 01.06.2015 16:06:24

PitBull
Сразу скажу, что сейчас перерабатывать алгоритм фактически нереально

Значит выход только один: сгонять в магазин за дополнительными планками ОЗУ.

Posted via ActualForum NNTP Server 1.5

Dima T
Дата: 01.06.2015 16:10:31
PitBull
не хватает оперативной памяти (вернее, система не занимает все 100 процентов, но где-то на 80 linux сам завершае приложение)

Где-то читал что линукс по умолчанию не даст одному процессу занять всю память. Это лечится доп.настройками, какими - не подскажу.
MasterZiv
Дата: 01.06.2015 16:21:05
Dima T,

man limits должно быть...
PitBull
Дата: 01.06.2015 16:45:19
MasterZiv
man limits должно быть...


ulimit -a
virtual memory (kbytes, -v) unlimited

оппаньки =(((((((
Anatoly Moskovsky
Дата: 01.06.2015 16:46:50
Скорее всего большой расход памяти вызван фрагментацией из-за постоянных переаллокаций.
Проверить это можно сравнив объем фактический и тот который должен быть.
Лечится с помощью аллокаторов.

То что система убивает процесс - это правильно и с этим бороться не нужно.
Бороться нужно с перерасходом.
PitBull
Дата: 01.06.2015 16:56:40
Anatoly Moskovsky
То что система убивает процесс - это правильно и с этим бороться не нужно.
Бороться нужно с перерасходом.


Спасибо! Направление понял. Тему закрывать пока не буду, может кто ещё поделится опытом или материалами
MasterZiv
Дата: 01.06.2015 17:20:58
PitBull
MasterZiv
man limits должно быть...


ulimit -a
virtual memory (kbytes, -v) unlimited

оппаньки =(((((((


ну анлимитед то он анлимитед, но всю память зажрать тебе ядро никогда не даст, будет kernel panic и фсё.
MasterZiv
Дата: 01.06.2015 17:22:08
Anatoly Moskovsky
То что система убивает процесс - это правильно и с этим бороться не нужно.
Бороться нужно с перерасходом.


Так вроде бы это с самого начала было очевидно, нет ?
Или это надо было в явном виде топикстартеру сообщить ?
Anatoly Moskovsky
Дата: 01.06.2015 17:24:07
MasterZiv
Так вроде бы это с самого начала было очевидно, нет ?
Или это надо было в явном виде топикстартеру сообщить ?

Я думаю это было не очевидно как минимум тем, кто про лимиты писал ))