Рассмотрим распространенную проблему, с которой сталкиваются владельцы небольших баз 1С: при выполнении тяжелых операций или расчетов нагрузка на центральный процессор выглядит странно — например, ровно 50% на двухъядерном процессоре. Разберем, почему это происходит и как выжать максимум из имеющегося оборудования.
Первое, что мы выясним — это принцип работы платформы 1С:Предприятие. Большинство операций, выполняемых в файловом варианте базы (в файле 1Cv8.1CD), являются однопоточными. Это означает, что для вычисления одного конкретного тяжелого запроса или проведения документа 1С использует только одно ядро процессора.
Если у вас установлен двухъядерный процессор (например, Intel G4400), то диспетчер задач покажет ровно 50% нагрузки, так как одно ядро занято на 100%, а второе простаивает. Если бы у вас было 4 ядра, загрузка составила бы 25%. Таким образом, покупка процессора с большим количеством ядер для файловой базы практически бесполезна для ускорения одного сеанса. Для 1С важна не многопоточность, а производительность на одно ядро (тактовая частота и архитектура процессора).
Разберем, почему возникают «тормоза» при одновременной работе нескольких пользователей. В файловой базе при записи данных или тяжелых расчетах происходит блокировка таблиц (а иногда и всего файла базы данных). Это создает очередь: кассы и другие рабочие места вынуждены «ждать», пока завершится операция одного пользователя. Это «узкое горлышко» не лечится заменой железа на более мощное — это ограничение самой архитектуры.
Чтобы кардинально изменить ситуацию, проанализируем следующие варианты действий:
Тестирование и исправление (ТИИ), чтобы уменьшить размер файла и индексную структуру. Однако помните, что это лишь временная мера.PostgreSQL. Для небольших организаций существует бюджетный вариант лицензирования — Сервер МИНИ на 5 подключений.PostgreSQL потребуется больше оперативной памяти. ОЗУ желательно увеличить как минимум до 16-32 Гб, так как сервер будет активно кэшировать данные.При переходе на SQL-версию многие совершают критическую ошибку, перенося базу на обычные жесткие диски (HDD) ради их объема или «долговечности». Разберем, почему это недопустимо: серверы баз данных совершают тысячи мелких операций ввода-вывода (IOPS) в секунду. Обычный HDD физически не способен справиться с такой нагрузкой, что приведет к замедлению работы системы в разы. Использование SSD — строго обязательно, а для защиты от износа лучше использовать серверные модели SSD с высоким ресурсом записи (TBW).
Если вы опасаетесь, что после перехода на SQL-сервер перестанет работать удаленный доступ для бухгалтера через веб-сервер (IIS или Apache), спешим вас успокоить: веб-сервер штатно работает с клиент-серверными базами. После публикации базы на веб-сервере просто меняется тип подключения в настройках, а для пользователей (включая удаленных) процесс работы остается абсолютно прозрачным и привычным.
Подводя итог, проанализируем текущую конфигурацию: если база стала тяжелой из-за маркировки товаров и обновлений, оптимальным путем станет развертывание 1С:Сервер МИНИ в связке с PostgreSQL на SSD-накопителе. Это решит проблему блокировок и позволит базе полноценно масштабироваться в рамках серверной архитектуры.