Обзор сервера

Что такое сервер?

Можно создать любое количество экземпляров сервера с помощью программного обеспечения MATLAB® Production Server™. Каждый экземпляр сервера может разместить любое количество развертываемых архивов, содержащих код MATLAB. Можно найти полезным создать один сервер для всех архивов, относящихся к конкретному приложению. Можно также создать один сервер, чтобы разместить код строго для тестирования и так далее.

server instance считается одним уникальным configuration продукта MATLAB Production Server. Каждая настройка имеет свой собственный файл опций (main_config) и диагностические файлы (файлы log, Идентификация Процесса (pid) файлы и файлы endpoint).

Кроме того, каждый сервер имеет свою собственную папку auto_deploy, которая содержит развертываемые архивы, которые вы хотите, чтобы сервер разместил для клиентов.

Сервер также управляет MATLAB Runtime (MATLAB Compiler), который позволяет коду MATLAB выполниться. Настройки в main_config определяют, как каждый сервер взаимодействует с MATLAB Runtime, чтобы обработать клиентские запросы. Можно установить эти параметры согласно требованиям к производительности и другим переменным в среде IT.

Как сервер справляется с работой?

Серверные процессы транзакция с помощью этих шагов:

  1. Клиент отправляет вызовы функции MATLAB процесса главного сервера (основной процесс на сервере).

  2. Вызовы функции MATLAB передаются одному или нескольким MATLAB Runtime workers.

  3. Функции MATLAB выполняются рабочим по MATLAB Runtime.

  4. Результаты выполнения функции MATLAB пасуются назад к процессу главного сервера.

  5. Результаты выполнения функции MATLAB пасуются назад для обработки клиентом.

Сервер является посредником в среде MATLAB Production Server™. Это одновременно принимает связи от клиентов, и затем диспетчеризирует рабочих по MATLAB Runtime — сеансы работы с MATLAB — клиенту процесса запрашивают к MATLAB Runtime. Путем определения и корректировки количества рабочих и потоков, доступных серверу, вы настраиваете способность и пропускную способность соответственно.

  • Рабочие (управление емкостью) (num-workers) — Количество рабочих по MATLAB Runtime, доступных серверу.

    Каждый рабочий отправляет один запрос выполнения MATLAB MATLAB Runtime, взаимодействующему с одним клиентом за один раз. Путем определения и настройки количества рабочих, доступных серверу, вы определяете номер параллельных запросов выполнения MATLAB, которые могут быть обработаны одновременно. num-workers должен примерно соответствовать количеству ядер, доступных на локальном хосте.

  • Потоки (управление пропускной способностью) (num-threads) — количество потоков (модули обработки) доступный процессу главного сервера.

    Поток данных MATLAB Production Server от клиента к серверу и Назад

    Сервер не выделяет уникальный поток каждой клиентской связи. Скорее когда данные будут доступны на связи, необходимая обработка планируется на pool потоков. --num-threads устанавливает размер того пула (количество доступных потоков обработки запросов) в процессе главного сервера. Потоки в пуле не выполняют код MATLAB непосредственно. Вместо этого существует один поток в рамках каждого рабочего процесса MATLAB Runtime, который выполняет код MATLAB от имени клиента.