powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Out of memory errror - есть ли возможность Свопа ?
14 сообщений из 39, страница 2 из 2
Out of memory errror - есть ли возможность Свопа ?
    #39767545
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем если речь идет о 10-100% оверхеда по памяти - то лучше просто купить память на сервак и растянуть Xmx
по максимуму насколько это возможно.

Если OutOfMemory будет регулярным и есть тенденция что база вырастет очень резко - тогда надо действительно
key-value хранилище. Решать автору вобщем-то.
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767606
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вроде варианты очевидны:
1. ОЗУ на сервере не хватает и нет супер жестких требований по производительности - РСУБД
2. ОЗУ на сервере не хватает, но производителность РСУБД не устраивает - подбираем базу под свои экзотические потребности, смотрим всякие Key-value, NoSQL и маскирующиеся под РСУБД, но модные внутри (а-ля тарантул)
3. Ограничений по ОЗУ нет, требований по персистенсу нет, производительности модных СУБД не хватает, а просто приложению сложно ворочать много объектов в хипе - берем либу для off-heap cache
4. Ограничений по ОЗУ нет, но нужен персистенс и супер производительность - берем IMDG решение
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767652
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimir....
3. Ограничений по ОЗУ нет, требований по персистенсу нет, производительности модных СУБД не хватает, а просто приложению сложно ворочать много объектов в хипе - берем либу для off-heap cache
....

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

Не видел ни одной нормальной либы для off-heap. Нормальные (более-менее) есть, но они все для специфических задачь. Если value для Map'а могут быть разного размера, то удаление данных из off-heap, уже не тревиальная задача (фрагментация). Насколько стоит замусоривать память операционной системы и что этим при активной работе в режиме 24x7 можно достигнуть, лично мне не очень понятно. Но я бы на реальных PROD серверах эксперементировал бы с опаской.

IMHO & AFAIK

Если такое тащить в проект, то только понимая, что притащенный copy-past'ом из I-net'а код самому же придется и поддерживать. А тогда, проще уж свою либу написать (методом Copy-Past'а) заточенную под свои данные и паттерн нагрузки.
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767682
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще ... глубоко не вникая в детали. Я-бы установил Eclipse Memory Analyzer.
И посмотрел-бы что вообще лежит в этой хеш-мапе. Если там к примеру
есть дубликаты строк - то можно поиграть в справочники. Или заменить
толстые типы данных (Date) на атомарные (long) если бизнес-логика позволяет.
Булевы - слить пакетом в одно целое (по аналогии с С++ bitfields).

Вобщем до того как покупать память и ставить СУБД просто проанализировать
top 10 memory consumers. Вангую что там будет char[] но что внутри надо поисследовать.
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767684
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВангую что там будет char[].

Шерлок, но как?
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767686
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинmaytonВангую что там будет char[].

Шерлок, но как?
А он везде...
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767690
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА он везде...
+++

:-)
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767701
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, но да, понятно, что на свой страх и риск, но если надо, то что уж делать.
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767716
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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) смысла вообще не вижу.

Это с ходу. Могу ошибаться.
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767721
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 студента, так ведь?
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767723
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если взять исходный вопрос ТС, то сколько человек делает проект - не важно. Все равно получится:



...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767751
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevLeonid Kudryavtsev...Нормальные (более-менее) есть, но они все для специфических задачь....

LongLongHashMap все хранит в OffHeap:
1) AFAIK а разница в скорости доступа heap vs off heap, как бы не маленькая (должно быть разы, вплодь до порядков. Но не тестил!).
2) Маппа хранится одним куском. Что для ОЧЕНЬ большой маппы, плохо. Т.к. фрагментацию памяти в ОС никто не отменял. (на данном форуме был топик в подфоруме Delphi, что free памяти навалом, а массив не выделяется)

LongObjectHashMap values вроде хранить в обычном heap'е. Экономить на keys (с учетом потери скорости на offheap) смысла вообще не вижу.

А какую задачу решает LongLongHashMap? Там по API - непонятно. Нет внятного description.
Если индексы больше 2 Гига то это точно оно. Ибо декларировано. А насчет другого... ну лучшее враг
хорошего.
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767778
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще пару названий вспомнил.

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 используется. Опенсорцные разработки Оракла
замерли на какой-то версии. Кажется новых нет.
...
Рейтинг: 0 / 0
Out of memory errror - есть ли возможность Свопа ?
    #39767916
razliv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое, никогда раньше не работал с такими вещами - раньше стандартных Явовских
коллекций вполне хватало. Но теперь открыл для себя новую область :)

MapDB хватило для моих нужд, фурычит :)
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Out of memory errror - есть ли возможность Свопа ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]