|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
Вобщем если речь идет о 10-100% оверхеда по памяти - то лучше просто купить память на сервак и растянуть Xmx по максимуму насколько это возможно. Если OutOfMemory будет регулярным и есть тенденция что база вырастет очень резко - тогда надо действительно key-value хранилище. Решать автору вобщем-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 12:53 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
Да вроде варианты очевидны: 1. ОЗУ на сервере не хватает и нет супер жестких требований по производительности - РСУБД 2. ОЗУ на сервере не хватает, но производителность РСУБД не устраивает - подбираем базу под свои экзотические потребности, смотрим всякие Key-value, NoSQL и маскирующиеся под РСУБД, но модные внутри (а-ля тарантул) 3. Ограничений по ОЗУ нет, требований по персистенсу нет, производительности модных СУБД не хватает, а просто приложению сложно ворочать много объектов в хипе - берем либу для off-heap cache 4. Ограничений по ОЗУ нет, но нужен персистенс и супер производительность - берем IMDG решение ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 14:18 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
just_vladimir.... 3. Ограничений по ОЗУ нет, требований по персистенсу нет, производительности модных СУБД не хватает, а просто приложению сложно ворочать много объектов в хипе - берем либу для off-heap cache .... При этом аккуратно смотрем, кто из студентов делал эту мега-либу. Если есть фотка и девочка-студент грудастая - можно за ней либу потестить. Если фотки нет, то оно Вам надо, за студентами их студенческие поделки тестить? Не видел ни одной нормальной либы для off-heap. Нормальные (более-менее) есть, но они все для специфических задачь. Если value для Map'а могут быть разного размера, то удаление данных из off-heap, уже не тревиальная задача (фрагментация). Насколько стоит замусоривать память операционной системы и что этим при активной работе в режиме 24x7 можно достигнуть, лично мне не очень понятно. Но я бы на реальных PROD серверах эксперементировал бы с опаской. IMHO & AFAIK Если такое тащить в проект, то только понимая, что притащенный copy-past'ом из I-net'а код самому же придется и поддерживать. А тогда, проще уж свою либу написать (методом Copy-Past'а) заточенную под свои данные и паттерн нагрузки. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 15:08 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
Еще ... глубоко не вникая в детали. Я-бы установил Eclipse Memory Analyzer. И посмотрел-бы что вообще лежит в этой хеш-мапе. Если там к примеру есть дубликаты строк - то можно поиграть в справочники. Или заменить толстые типы данных (Date) на атомарные (long) если бизнес-логика позволяет. Булевы - слить пакетом в одно целое (по аналогии с С++ bitfields). Вобщем до того как покупать память и ставить СУБД просто проанализировать top 10 memory consumers. Вангую что там будет char[] но что внутри надо поисследовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 15:50 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
maytonВангую что там будет char[]. Шерлок, но как? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 15:51 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
ОзверинmaytonВангую что там будет char[]. Шерлок, но как? А он везде... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 15:56 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
maytonА он везде... +++ :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 16:15 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevjust_vladimir.... 3. Ограничений по ОЗУ нет, требований по персистенсу нет, производительности модных СУБД не хватает, а просто приложению сложно ворочать много объектов в хипе - берем либу для off-heap cache .... При этом аккуратно смотрем, кто из студентов делал эту мега-либу. Если есть фотка и девочка-студент грудастая - можно за ней либу потестить. Если фотки нет, то оно Вам надо, за студентами их студенческие поделки тестить? Не видел ни одной нормальной либы для off-heap. Нормальные (более-менее) есть, но они все для специфических задачь. Если value для Map'а могут быть разного размера, то удаление данных из off-heap, уже не тревиальная задача (фрагментация). Насколько стоит замусоривать память операционной системы и что этим при активной работе в режиме 24x7 можно достигнуть, лично мне не очень понятно. Но я бы на реальных PROD серверах эксперементировал бы с опаской. IMHO & AFAIK Если такое тащить в проект, то только понимая, что притащенный copy-past'ом из I-net'а код самому же придется и поддерживать. А тогда, проще уж свою либу написать (методом Copy-Past'а) заточенную под свои данные и паттерн нагрузки. Ну вот, например, вроде Паньгин не тянет на грудастую девочку студентку, но думаю, что если прижмет и задача будет требовать off heap кэша, то его либой можно уж и воспользоваться https://github.com/odnoklassniki/one-nio, но да, понятно, что на свой страх и риск, но если надо, то что уж делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 16:31 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev...Нормальные (более-менее) есть, но они все для специфических задачь.... https://github.com/odnoklassniki/one-nio, Дело же не в либе, а что бы ей еще и правильно пользоваться и по назначению. Например глянул на класс allocator. Если, не дай бог, выделять маленькими блоками, то смысла никакого. Т.к. при allocate создается еще и служебные объекты в Heap'е. Т.ч. данные запихиваемые в OffHeap нужно как-то объединять в достаточно большие блоки. Что, для произвольных данных, уже не очень тревиально. LongLongHashMap все хранит в OffHeap: 1) AFAIK а разница в скорости доступа heap vs off heap, как бы не маленькая (должно быть разы, вплодь до порядков. Но не тестил!). 2) Маппа хранится одним куском. Что для ОЧЕНЬ большой маппы, плохо. Т.к. фрагментацию памяти в ОС никто не отменял. (на данном форуме был топик в подфоруме Delphi, что free памяти навалом, а массив не выделяется) LongObjectHashMap values вроде хранить в обычном heap'е. Экономить на keys (с учетом потери скорости на offheap) смысла вообще не вижу. Это с ходу. Могу ошибаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 16:53 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevLeonid Kudryavtsev...Нормальные (более-менее) есть, но они все для специфических задачь.... https://github.com/odnoklassniki/one-nio, Дело же не в либе, а что бы ей еще и правильно пользоваться и по назначению. Например глянул на класс allocator. Если, не дай бог, выделять маленькими блоками, то смысла никакого. Т.к. при allocate создается еще и служебные объекты в Heap'е. Т.ч. данные запихиваемые в OffHeap нужно как-то объединять в достаточно большие блоки. Что, для произвольных данных, уже не очень тревиально. LongLongHashMap все хранит в OffHeap: 1) AFAIK а разница в скорости доступа heap vs off heap, как бы не маленькая (должно быть разы, вплодь до порядков. Но не тестил!). 2) Маппа хранится одним куском. Что для ОЧЕНЬ большой маппы, плохо. Т.к. фрагментацию памяти в ОС никто не отменял. (на данном форуме был топик в подфоруме Delphi, что free памяти навалом, а массив не выделяется) LongObjectHashMap values вроде хранить в обычном heap'е. Экономить на keys (с учетом потери скорости на offheap) смысла вообще не вижу. Это с ходу. Могу ошибаться. На всякий случай уточню, что мы ведь оба понимаем, что если вдруг дело дошло до того, что мы стали задумываться об off heap кэшах, то у нас уже проект не совсем уж на коленке деланный и в команде не 1.5 студента, так ведь? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 17:01 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 17:05 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevLeonid Kudryavtsev...Нормальные (более-менее) есть, но они все для специфических задачь.... LongLongHashMap все хранит в OffHeap: 1) AFAIK а разница в скорости доступа heap vs off heap, как бы не маленькая (должно быть разы, вплодь до порядков. Но не тестил!). 2) Маппа хранится одним куском. Что для ОЧЕНЬ большой маппы, плохо. Т.к. фрагментацию памяти в ОС никто не отменял. (на данном форуме был топик в подфоруме Delphi, что free памяти навалом, а массив не выделяется) LongObjectHashMap values вроде хранить в обычном heap'е. Экономить на keys (с учетом потери скорости на offheap) смысла вообще не вижу. А какую задачу решает LongLongHashMap? Там по API - непонятно. Нет внятного description. Если индексы больше 2 Гига то это точно оно. Ибо декларировано. А насчет другого... ну лучшее враг хорошего. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 17:44 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
Еще пару названий вспомнил. https://hazelcast.com/ - возможно есть коммерческая ветка. Где возможностей больше. Надо проверять. https://github.com/dain/leveldb - порт сишного LevelDB на Java. Лично я не юзал. Я какраз брал его С++ ную часть в составе Infinispan. Внизу документации пишут что юзается в ActiveMQ https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html - Беркли. Это старый проверенный конь который работает в Линуксах уже давно. Кажется в DNS используется. Опенсорцные разработки Оракла замерли на какой-то версии. Кажется новых нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 18:30 |
|
Out of memory errror - есть ли возможность Свопа ?
|
|||
---|---|---|---|
#18+
Спасибо большое, никогда раньше не работал с такими вещами - раньше стандартных Явовских коллекций вполне хватало. Но теперь открыл для себя новую область :) MapDB хватило для моих нужд, фурычит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 09:32 |
|
|
start [/forum/topic.php?fid=59&msg=39767778&tid=2121509]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 329ms |
total: | 467ms |
0 / 0 |