При проектировании архитектуры для работы с платформой 1С:Предприятие часто возникает вопрос: целесообразно ли размещать сервер 1С и сервер базы данных (СУБД) на одной физической машине? Разберем этот вопрос подробно, проанализируем плюсы и минусы такого подхода, а также рассмотрим лучшие практики настройки.
Рассмотрим подробнее, какие выгоды мы получаем, оставляя службы 1С и SQL на одном сервере.
Shared Memory. Для PostgreSQL на операционных системах Linux используется аналогичный механизм — Unix domain sockets. Это позволяет обмениваться данными напрямую через оперативную память, минуя сетевой стек, что дает прирост производительности примерно на 10-15%.Посмотрим на оборотную сторону медали. Совмещение ролей требует более вдумчивого администрирования. Выясним причину возможных "тормозов".
rphost) также потребляют память, причем часто непредсказуемо (особенно при формировании тяжелых отчетов или закрытии месяца). Если память закончится, сервер начнет использовать файл подкачки, что приведет к катастрофическому падению производительности.Проанализируем ситуацию, когда системные администраторы решают разместить 1С и SQL на одном физическом хосте, но в разных виртуальных машинах (VM) "для надежности". Делать так категорически не рекомендуется. В таком сценарии вы теряете главное преимущество — протокол Shared Memory. Весь трафик начинает ходить через виртуальный сетевой адаптер гипервизора. Хотя это и быстрее физической сети, это накладывает дополнительные расходы на процессор для обработки сетевых пакетов.
Кроме того, никогда не совмещайте на этом же сервере терминальный сервер (RDP). Сессии пользователей и отрисовка графики будут отнимать драгоценные ресурсы у СУБД и 1С.
Если вы приняли решение совмещать роли, разберем по шагам, как правильно настроить сервер, чтобы избежать проблем с производительностью:
Max Server Memory. Оставьте достаточный резерв для операционной системы и процессов кластера 1С.Подводя итог, проанализируем статистику и практический опыт интеграторов. Совмещение 1С и SQL на одном сервере является оптимальным решением (Best Practice) для небольших и средних баз. Практика показывает, что такая схема отлично держит нагрузку до 100-300 активных пользователей.
Однако, если у вас крупная база с 500-1500 пользователями, или вы используете тяжелые конфигурации вроде 1С:ERP с огромным количеством фоновых заданий (особенно в период закрытия месяца), архитектуру необходимо разделять. Разделение позволит вам независимо масштабировать вычислительные мощности сервера приложений и сервера баз данных, а также повысит отказоустойчивость системы в целом.