Оптимизация использования памяти
В этой главе собраны наиболее важные опции, свойства и настройки для оптимизации использования памяти SberMobile Server.
Отключение кэширования в памяти для значений переменных модели
Модели являются основными инструментами для обработки данных в SberMobile Server. Часто результаты расчетов данных хранятся в одной или нескольких переменных модели.
Вы можете настроить свойство переменной Кэширование значений в памяти сервера на состояние Хранить пока достаточно памяти . Это предотвратит переполнение памяти, но общая производительность операций чтения переменных модели может снизиться.
Отключение неиспользуемых плагинов
Плагин SberMobile в виде JAR-файла обычно не очень большой, но может включать сторонние библиотеки со значительной активностью выделения памяти. Например, плагин Универсальный поиск использует стороннюю библиотеку для индексации контекстных данных, которая, в свою очередь, сильно зависит от файлов, отображаемых в памяти, и может вызывать значительные скачки потребления памяти.
Чтобы проверить, какие плагины доступны на сервере, и переключить их, откройте Конфигурацию сервера и перейдите на вкладку Активные плагины. Снимите флаг Активный, чтобы отключить данный плагин. Перезапустите сервер SberMobile, чтобы новая конфигурация вступила в силу.
Управление кэшем и режим низкой памяти
Сервер SberMobile использует постоянный и непостоянный кэш для обработки значений переменных во время выполнения. Непостоянный кэш работает в памяти и использует часть памяти сервера, выделенную виртуальной машине Java. Почти все значения переменных помещаются в кэш после считывания из базы данных, чтобы ускорить последующие считывания. При нормальной работе сервера SberMobile обычно начинает использовать почти всю выделенную память, поскольку все больше переменных считывается из базы данных и помещается в кэш.
Когда размер кэша достигает определенного порога, фоновый процесс удаляет редко используемые переменные и уменьшает размер кэша до нужного уровня. Во время нормальной работы сервера эта операция очистки будет включаться и выключаться по мере необходимости, чтобы обеспечить достаточный объем памяти для нормальной работы системы с учетом общей нагрузки.
Статистика работы операции очистки памяти отображается в переменной Очистка памяти в Информации сервера, где указано, сколько раз запускалась операция Очистка памяти, когда она была запущена в последний раз и сколько времени занял последний запуск.
Режим нехватки памяти
Активация режима нехватки памяти может указывать на то, что объем памяти, выделенный серверу, недостаточен для удовлетворения потребностей сервера. SberMobile Администраторам может потребоваться выяснить, как снизить нагрузку на сервер или увеличить объем доступной памяти, если режим нехватки памяти регулярно активен. |
В некоторых случаях, например, когда запущены процессы, требующие много памяти, и значения переменных добавляются в кэш быстрее, чем могут быть удалены операцией очистки памяти, SberMobile активирует режим нехватки памяти, направленный на предотвращение ошибок Out Of Memory. Режим нехватки памяти сокращает использование памяти сервером, останавливая обслуживание клиентских соединений, предотвращая отправку или обработку новых событий, приостанавливая обновления от устройств и ограничивая некоторые другие функции сервера до тех пор, пока не будет доступно достаточно памяти для нормальной работы.
Продолжительность и активация режима нехватки памяти указаны в переменной Server Information (Информация о сервере ) Memory Clearing (Очистка памяти). Режим нехватки памяти активируется в качестве защитной меры для сохранения минимального объема работы сервера.
Обратите внимание, что короткие периоды режима нехватки памяти, длящиеся несколько секунд, не обязательно указывают на ненормальную работу сервера, а скорее позволяют ему справляться с большими скачками входящих потоков данных или пиками внутренней активности.
Однако администраторам SberMobile следует изучить возможности увеличения доступной памяти и снижения нагрузки на сервер, если режим нехватки памяти активируется на более длительные периоды времени.