Рано или поздно любая растущая компания сталкивается с проблемой, когда привычная и экономная файловая база 1С начинает невыносимо тормозить. Ситуация, описанная автором темы, классическая: в штате около 50 сотрудников, каждый из которых запускает по несколько баз одновременно. Вся эта инфраструктура работает на файловом сервере с обычными HDD-дисками через стомегабитную локальную сеть. Итог закономерен — жуткие зависания у всех пользователей, постоянный скрежет жестких дисков на сервере и периодические «падения» интернета во всей компании.
В этой статье мы подробно проанализируем технические причины этой катастрофы, разберем, почему простая покупка дешевых SSD не решит проблему (а может даже усугубить ее), и предложим пошаговые варианты модернизации ИТ-инфраструктуры — от бесплатных архитектурных изменений до построения отказоустойчивого сервера баз данных.
На первый взгляд кажется странным, почему при работе в 1С у пользователей пропадает доступ в интернет, а сетевая карта сервера загружена всего на 30–50% (показывая скорость 50–90 Мбит/с в 100-мегабитной сети). Давайте разберем физику этого процесса по шагам.
1. Особенности работы протокола SMB и блокировок (Oplocks)
Когда база 1С лежит на сетевой шаре (обычной папке общего доступа), общение клиента с сервером происходит по сетевому протоколу SMB (Server Message Block). Если с базой работает всего один пользователь, операционная система Windows разрешает ему кэшировать данные локально на его ПК — это механизм оппортунистических блокировок (Oplocks). Но как только к файлу базы данных 1Cv8.1cd подключается второй (и тем более 50-й) пользователь, сервер принудительно отзывает эти блокировки. Локальное кэширование полностью отключается. Теперь любое минимальное действие в программе (открытие формы, проведение документа, поиск контрагента) требует от клиентского ПК прямой отправки сотен и тысяч мелких сетевых запросов чтения/записи к файлу базы на сервере.
2. Сетевой шторм из мелких пакетов
В этот момент сеть забивается не большим объемом информации (в мегабайтах), а колоссальным количеством мелких сетевых пакетов в секунду (параметр PPS — Packets Per Second). Сетевая карта сервера перегружается обработкой этих мелких транзакций. Бюджетные неуправляемые коммутаторы (свитчи) и простенькие роутеры, выполняющие роль точек доступа, просто «захлёбываются» от переполнения таблиц коммутации и буферов. В результате сетевое оборудование начинает отбрасывать пакеты, а роутер теряет пакеты внешней сети — именно поэтому у пользователей начинает «отваливаться» интернет.
3. Дисковая очередь (Disk Queue Length) на HDD
Обычные жесткие диски (HDD) созданы для последовательного чтения и записи. В условиях файловой 1С по сети на HDD обрушивается поток случайных запросов на чтение и запись мелких блоков размером 4KB от десятков пользователей одновременно. Считывающие головки HDD начинают непрерывно метаться по пластинам диска, издавая характерный скрежет. Время отклика диска (latency) вырастает с нормальных 5–10 мс до катастрофических 500–1500 мс. База 1С просто замирает в ожидании ответа от дисковой подсистемы.
4. Иллюзия тонкого клиента
Многие системные администраторы полагают, что использование «тонкого клиента» автоматически решает проблему сети. Но если базы 1С открываются напрямую по сетевому пути типа \\server\1c_bases\trade, то никакого тонкого клиента на самом деле нет. Платформа лишь эмулирует его работу локально на ПК пользователя, а по сети по-прежнему гоняются сырые куски огромного файла базы данных. Настоящий тонкий клиент работает только тогда, когда база опубликована на веб-сервере.
---
Это самое быстрое, эффективное и абсолютно бесплатное решение, которое позволит «оживить» работу 1С даже на старой 100-мегабитной сети и слабом сервере. Нам не потребуется покупать лицензии на сервер 1С или СУБД SQL.
Рассмотрим, как это работает. Вместо того чтобы предоставлять пользователям прямой доступ к файлу базы по сети, мы устанавливаем веб-сервер (IIS от Microsoft или бесплатный Apache) непосредственно на том компьютере, где физически лежат базы данных. На этом же компьютере настраивается публикация баз 1С.
Разберем по шагам преимущества этой схемы:
Oplocks. Скорость работы дисковой подсистемы возрастает в разы.1Cv8.1cd на флешку.Выясним, какой веб-сервер выбрать:
Важное ограничение метода: Хотя веб-сервер и решает проблемы с сетью, сама база данных внутри остается файловой. При записи данных в файловую базу происходит так называемая табличная блокировка (блокируется вся таблица целиком на время транзакции). Если 50 пользователей одновременно начнут активно проводить документы, они все равно будут периодически сталкиваться с ошибками блокировок. Но это решение в разы стабильнее и быстрее, чем прямая работа по сети.
---
Директор компании из примера негативно относится к твердотельным накопителям (SSD), так как у них уже был опыт потери базы данных из-за выхода из строя одного SSD. Такое часто происходит, если в погоне за экономией в сервер устанавливают обычные бытовые (потребительские) диски. Разберем разницу между ними подробнее.
Почему бытовые SSD (например, серии Samsung EVO, Kingston A400, Crucial MX) выходят из строя в серверах 1С и теряют данные?
Проанализируем критерии выбора серверных Enterprise SSD, которые гарантируют сохранность данных и высокую скорость работы 24/7:
Рекомендуемые линейки серверных SSD, на которые стоит обратить внимание:
D3-S4610, D3-S4620 (интерфейс SATA) или высокоскоростные NVMe серии D5-P5520.PM893, PM897 (SATA) или корпоративные NVMe PM1733.7450 PRO и 7450 MAX.---
Даже самый надежный серверный SSD может выйти из строя. Для обеспечения непрерывности бизнеса диски на сервере обязательно должны быть объединены в RAID-массив.
Посмотрим на особенности настройки RAID для SSD-накопителей:
Ни в коем случае не используйте RAID 5 или RAID 6 для SSD под базы данных!
В этих массивах используется расчет контрольных сумм. При любой записи даже самого мелкого блока данных контроллеру приходится считывать соседние блоки, пересчитывать четность и записывать новые данные. Возникает эффект «штрафа на запись» (Write Penalty). Это приводит к лавинообразному увеличению количества циклов перезаписи ячеек памяти SSD (эффект Write Amplification). Диски в RAID 5 изнашиваются в несколько раз быстрее и могут выйти из строя практически одновременно, похоронив все данные.
Правильный выбор для SSD под базы данных:
Важное примечание по контроллерам:
Если вы используете классические серверные SSD с интерфейсом SATA или SAS, вам необходим хороший аппаратный RAID-контроллер (например, от Broadcom/LSI или HPE) обязательно с собственной кэш-памятью и модулем защиты кэша (батарейкой BBU или суперконденсатором Supercap). Без аппаратного кэша скорость записи на диски в RAID будет крайне низкой. Если же вы планируете использовать современные ультрабыстрые накопители NVMe, аппаратный контроллер не нужен (он станет узким местом). Для NVMe-накопителей используют программный RAID средствами операционной системы (например, «Автономные пулы носителей» в Windows Server или mdadm в Linux).
---
Файловый режим работы для 50 активных пользователей — это мина замедленного действия. Рано или поздно база вырастет, возникнут логические ошибки индексов, а частые аварийные завершения работы пользователей приведут к порче таблиц. Единственным архитектурно верным решением является переход на клиент-серверный вариант (SQL).
Разберем основные страхи и мифы руководства, мешающие переходу на SQL:
Миф 1: «Это очень дорого, лицензии стоят миллионы»
Как верно подметили участники обсуждения на форуме, многие путают правила лицензирования. Нам не нужно покупать 250 лицензий на каждую запущенную базу. Для 50 пользователей достаточно приобрести один USB-ключ (или комплект программных лицензий) на 50 рабочих мест. Сами пользователи могут при этом открывать хоть по 10 разных баз на своем компьютере — лицензия расходуется на сеанс работы или на физический компьютер (в зависимости от типа ключа).
Миф 2: «Лицензия на СУБД MS SQL Server стоит слишком дорого»
Нам совершенно необязательно покупать дорогой Microsoft SQL Server. Платформа 1С:Предприятие официально и абсолютно бесплатно поддерживает работу с СУБД PostgreSQL. Существуют специальные готовые сборки PostgreSQL от компании «1С», которые оптимизированы под особенности работы платформы. PostgreSQL отлично справляется с нагрузками в 50 и более пользователей, работает стабильно и не требует затрат на покупку лицензий СУБД.
Что мы получаем в итоге при переходе на связку 1С:Сервер + PostgreSQL?
chdbfl.exe.---
Если бюджет компании жестко ограничен, а базы 1С тормозят прямо сейчас, рекомендуем действовать по следующему плану:
Samsung PM893) с защитой от потери питания (PLP). На этом этапе вы полностью забудете про дисковые очереди и зависания системы.