Оптимизация производительности

SberMobile - это сложная система, производительность которой зависит от многих факторов. В этом разделе приведены советы по оптимизации для различных компонентов системы.

Оптимизация архитектуры вашего приложения

SberMobile  - очень гибкая платформа малокодовой разработки. В большинстве случаев функционал одного приложения можно реализовать множеством способов, используя разные модули SberMobile. Существует бесконечное количество сценариев конфигурирования для этих модулей.

Все модули, методы и шаблоны, используемые для создания готового бизнес-приложения или сервиса, составляют архитектуру этого приложения/сервиса. Если архитектура спроектирована не лучшим образом, это отрицательно скажется на эффективности готового приложения с точки зрения использования ресурсов.

Таким образом, даже если в вашем приложении нет очевидных программных ошибок, в случае слишком большого потребления ресурсов следует внимательно пересмотреть архитектуру приложения. Обычно обнаружение и устранение всего нескольких узких мест способно повысить производительность в 10, а то и 100 раз.

Апгрейд оборудования

SberMobile Server

SberMobile Server - это центральный компонент системы, и его производительность во многом влияет на остальные компоненты системы. Есть три ключевых фактора, которые влияют на производительность сервера:

  • Количество процессоров/ядер и их частота
  • Объем установленной оперативной памяти
  • Производительность ввода-вывода подсистемы хранения данных

Рекомендуемые параметры оборудования можно найти в разделе Системные требования. Однако для некоторых драйверов устройств требуется большой объем памяти и/или вычислительная мощность.

В целом, SberMobile Server следует перенести на сервер с большей производительностью, если долгосрочная средняя нагрузка CPU превышает 50%. Такая высокая нагрузка может вызвать проблемы или даже утрату данных во время максимальных нагрузок.

Увеличение памяти может потребоваться в следующих случаях:

  • Если обнаружено интенсивное использование своп или участились прерывания Page Fault
  • Если в процессе работы SberMobile Server увеличивается время отклика
  • Если в файле журнала сервера появляется сообщение java.lang.OutOfMemoryError: Java heap space

Рекомендуемая последовательность для решения проблем с памятью:

  • Увеличить лимиты памяти для Виртуальной машины Java SberMobile Server
  • Физически добавить оперативную память в ПК, на котором запущен SberMobile Server
  • Переключиться на выделенный сервер БД
  • Увеличение лимита памяти JVM SberMobile Server

    Вопрос расхода ресурсов памяти следует тщательно проанализировать, если датчик использования памяти SberMobile Server сообщает об объемах использования выше 90%. Важно знать, что Виртуальная машина Java SberMobile Serverа, аналогично любой другой JVM, никогда не будет использовать всю RAM, доступную на ПК, на которой она запущена. Использование памяти JVM контролируют два параметра:

    • Начальный объем памяти, назначенный JVM
    • Максимальный объем памяти, который может использовать JVM

    Эти параметры описаны здесь.

    Если датчик использования памяти сообщает о высоком проценте использования памяти, необходимо увеличить параметр (-Xmx) максимального объема памяти в параметрах загрузчика SberMobile Server . Рекомендуется установить значение до половины от доступной оперативной памяти.

    Установление максимального объема памяти может вызвать проблему с запуском SberMobile Server , поскольку JVM необходима эта память, чтобы быть доступной в одном сплошном блоке (дополнительную информацию см. здесь). Если Вы столкнулись с такой проблемой, рекомендуется установка дополнительной памяти.

    Переключение на выделенный сервер БД

    При крупных инсталляциях SberMobile с тысячами устройств, SberMobile Server обычно работает при большой нагрузке, получая миллионы событий и выполняя сотни одновременных синхронизаций. Все данные сохраняются в базе данных. В некоторых случаях даже производительность многопроцессорной системы оказывается недостаточной для выполнения обработки всех данных.

    При таких крупных инсталляциях, и SberMobile Server, и сервер БД, запущенные на одной и той же машине, могут вызвать серьезное снижение производительности. Мы рекомендуем разместить Ваш сервер БД на выделенной машине, которая подключена к машине SberMobile Server через высокоскоростной сетевой интерфейс.

    Рассмотрите возможность перехода на выделенный сервер БД, если:

    • У Вас более 10 000 устройств, управляемых одной инсталляцией SberMobile Server
    • Ваша БД содержит более 100 миллионов событий
    • Существуют устройства, чья история событий содержит более 1 миллиона событий (и, таким образом, есть таблицы баз данных с более чем 1 миллионом записей)
    • Объем памяти, необходимый для хорошей производительности для Вашего сервера БД, составляет больше 50% от физически установленной на ПК, на которой запущены SberMobile Server и сервер БД.
    • Общая производительность Вашей системы SberMobile низкая из-за высокой загрузки CPU или интенсивного использования файла подкачки.