Потоки и пулы потоков SberMobile Server

Здесь перечислены наиболее важные потоки и пулы потоков, используемые SberMobile Server. Это помогает опытным системным администраторам и разработчикам модулей/решений основательно понимать статус внутреннего сервера и устранять проблемы во время работы.

Получить доступ к текущему статусу и трассировкам стека всех потоков сервера (включая описанные здесь) можно через переменные действий и статуса корневого контекста (такие переменные, как Все потоки, Статистика пулов потоков и Статистика потоков доступны через действие Просмотр статуса сервера).

Префикс имени потока

Информация о потоке и пуле потоков

Action/

Потоки действий выполняют действия сервера. Такой поток может либо выполнять код действия на стороне сервера, либо блокироваться в ожидании ответа пользователя на UI процедуру.

ClientCommandProcessor/

Пул потоков обработки команд клиентов обрабатывает команды десктопных и API-клиентов, а именно, Get/Set Variable, Call Function и Subscribe/Unsubscribe Event.

После начала обработки команды имя потока обработки меняется так, чтобы отражать суть команды, по следующем шаблону:

  • G/context_name/variable_name - при обработке команды Get Variable
  • S/context_name/variable_name - при обработке команды Set Variable
  • C/context_name/function_name - при обработке команды Call Function

ClientThread/

Клиентские потоки обслуживают подключения десктопных и API-клиентов. Для каждого подключения создается отдельный поток.

ContextOperationExecutor/

Пул потоков операций контекста используется для ускорения параллельно выполняемых действий контекстов сервера. Он используется, в большей степени, при запуске и остановке сервера. Например, каждый ресурс (такой, как тревога) в контексте контейнера инициализируется в отдельной задаче, которая предъявляется пулу исполнителей операций контекстов.

Именно поэтому проверка статуса пулов потоков может очень пригодиться для диагностики производительности сервера при запуске и остановке.

EventDispatcher/

Потоки диспетчера событий получают события из очередей событий и вызывает слушателей событий, которые эти события обрабатывают. Таким образом, проверка статуса диспетчеров событий может быть хорошей идеей при увеличении очереди событий или при общем запаздывании обработки событий, с точки зрения пользователя.

Основной поток диспетчера событий сервера называется EventDispatcher/Master.

Master

Имя основного потока SberMobile Server.

Synchronizer/

Потоки синхронизирующих устройств выполняют синхронизацию устройств. Потоки вызывают драйвера устройств и увязывают данные между драйвером и контекстом устройства.

Проверка состояния потоков синхронизатора следует проводить для диагностики запаздывания синхронизации устройств и других связанных проблем. Это особенно касается пользовательских драйверов устройств, созданных на базе набора для разработки драйверов.

SyncTimer/

Потоки данного пула - это потоки таймера, который отвечает за начало периодической синхронизации устройств.