Сколько ресурсов заложить на сервер
Точных цифр «под любую нагрузку» не существует — сильно зависит от числа одновременных
пользователей и выбранной СУБД. Но подсчитать приблизительную необходимую величину
можно.
Память — считаем по пулу подключений
Одно активное подключение в пуле (настройка «Макс. подключений в пуле» на карточке
«База данных», по умолчанию 30) стоит примерно 3 МБ памяти на стороне
приложения. Соответственно для пула на:
- 30 подключений (значение по умолчанию) — около 90 МБ;
- 100 подключений — около 300 МБ.
Это не вся память целиком, а только та часть, что растёт вместе с размером пула. К ней
нужно прибавить базовое потребление самого приложения и SQL-сервера в простое
(посмотрите в Диспетчере задач сразу после запуска, без нагрузки) и небольшой запас —
20–30% — на пики.
У самой СУБД тоже есть свои ограничения
- MS SQL Server Express — бесплатная редакция ограничена
1410 МБ буферного пула на инстанс. Это жёсткий лимит самой редакции
(не наша настройка) — при большой базе и активной нагрузке он может стать узким
местом раньше, чем память сервера. Платные редакции (Standard/Enterprise) такого
ограничения не имеют.
- MySQL — готового потолка по редакции нет, но и по умолчанию она
использует немного (буфер
innodb_buffer_pool_size из коробки — около
128 МБ) — под нагрузку его стоит увеличить вручную в настройках самого MySQL.
Процессор и диск
Это не CPU-интенсивное приложение — обычный веб CRUD (создание и чтение задач), а не
тяжёлые расчёты. 2–4 ядра обычно достаточно даже на команду в несколько сотен человек.
Куда важнее диск: под саму базу данных рекомендуется SSD — при параллельной записи
(несколько сотрудников одновременно сохраняют задачи) именно скорость диска, а не
процессор, обычно становится первым узким местом.
Какую СУБД выбрать
Обе СУБД совместимы и одинаково бесплатны — MS SQL Server в редакции
Express и MySQL Community не стоят ни копейки независимо от размера команды.
Для небольшой и средней команды (примерно 30–50 одновременных подключений к базе)
разница на практике не заметна — берите ту СУБД, с которой вам привычнее работать. На
больших командах (десятки одновременных пользователей, тяжёлые фильтры по большому
архиву заявок) на первый план выходит то, как вообще любая СУБД ведёт себя под
конкурентной нагрузкой — это общее свойство баз данных, а не особенность конкретно
Anjyta, и многое здесь тоже зависит от железа самого сервера. MS SQL Server, как
правило, увереннее держит много параллельных сложных запросов, чем MySQL с настройками
по умолчанию.
Уже определились? Ниже — пошаговая
установка выбранной СУБД и создание базы Anjyta под неё.
Требования к системе
Важно: установщик не разворачивает саму СУБД — предполагается, что
MS SQL Server или MySQL уже установлены и работают в вашей инфраструктуре. Установщик
только подключает к ним приложение. Перед установкой на сервере БД нужно заранее
создать пустую базу данных с именем Anjyta и учётную запись (логин и
пароль) с полным доступом к ней — имя базы фиксированное, изменить его нельзя.
| Операционная система | Windows (сервер или рабочая станция) с поддержкой служб Windows |
| СУБД |
MS SQL Server 2017 и новее
или
MySQL 5.7 и новее
|
| Клиент | Любой современный браузер — установка на рабочие места не требуется |
| Права установки | Права администратора (для регистрации службы Windows) |