Приветствуем, коллеги! Мы сталкиваемся с распространенной проблемой: замедление работы 1С:Бухгалтерии 3.0 на терминальном сервере, где размещено более 30 файловых баз, и с ними работают около 10 пользователей. Сервер оснащен процессором i5, 32 ГБ оперативной памяти и SSD-накопителем. В процессе работы базы постоянно добавляются, а количество пользователей растет, что приводит к дальнейшему ухудшению производительности. Рассмотрим, как можно решить эту проблему и разогнать систему.
Прежде чем принимать какие-либо решения об апгрейде железа или изменении архитектуры, нам необходимо точно определить, что именно является «бутылочным горлышком» нашей системы. Для этого воспользуемся встроенными средствами мониторинга операционной системы.
СредняяДлинаОчередиКДиску. Если это значение постоянно выше нуля (например, 1 и более), это сигнализирует о том, что диск не справляется с потоком операций ввода-вывода. Также посмотрим на скорость чтения/записи. Мы можем использовать утилиты вроде CrystalDiskMark для базовой оценки скорости, но реальная нагрузка на диск может быть выше, чем показывают синтетические тесты.ДлинаОчередиКДиску равна 0, а загрузка процессора также невысока. Это выглядит как несовпадение: система тормозит, но основные счетчики показывают простаивающие ресурсы. Это может указывать на специфические проблемы 1С или на нехватку памяти, не отраженную напрямую очередью к диску, или же на медленную работу одного ядра процессора, которую не видно на общем графике.Даже если счетчики не показывают явных перегрузок, аппаратные ограничения текущей конфигурации очевидны для такой нагрузки. Рассмотрим направления для усиления.
Наш i5, скорее всего, не справляется с многопользовательской нагрузкой 1С, особенно в файловом режиме, где многие операции выполняются последовательно и сильно зависят от производительности одного ядра. Основной приоритет при выборе процессора для 1С — это высокая тактовая частота ядра, а не только количество ядер. Для 10+ пользователей стоит рассмотреть более мощные серверные процессоры (например, из линеек Intel Xeon E или AMD EPYC/Ryzen Threadripper Pro) с высокой базовой частотой и хорошей однопоточной производительностью. Даже если общая загрузка ЦП невысока, тормоза могут возникать из-за загруженности одного процессорного ядра.
32 ГБ ОЗУ категорически недостаточно для 10+ пользователей, работающих с 30+ файловыми базами 1С:Бухгалтерии 3.0 на терминальном сервере. Файловый тонкий клиент 1С может потреблять до 1.5 ГБ оперативной памяти на одну сессию. Если 10 пользователей открывают по несколько баз, легко представить, что потребуется 15-20 ГБ только для самих клиентских приложений. Учитывая потребности ОС и других процессов, 32 ГБ быстро закончатся, и система начнет активно использовать файл подкачки, что приводит к замедлениям, даже если диск быстрый. Для комфортной работы 10 пользователей с файловыми базами мы рекомендуем минимум 64 ГБ ОЗУ, а лучше 128 ГБ.
Важно понимать, что в файловом режиме каждый сеанс 1С обособлен и не разделяет значимые объемы памяти с другими сеансами, в отличие от клиент-серверного режима, где код платформы и данные баз могут быть кэшированы и разделяться между сеансами, существенно снижая общее потребление памяти.
Использование SSD является обязательным, но и они бывают разными. Ваши показатели CrystalDiskMark показывают хорошие скорости последовательного чтения/записи, но случайные операции (Random 4KB) при высокой глубине очереди (QD=32) дают 599 МБ/с на чтение и 409 МБ/с на запись, что для SATA SSD очень хорошо, а для NVMe – средние показатели. Мы рекомендуем переход на NVMe SSD корпоративного уровня, так как они обеспечивают значительно более высокую скорость передачи данных, снижение задержек и параллельную обработку операций ввода-вывода. Это может увеличить производительность в 2-5 раз по сравнению с SATA SSD.
Для оптимальной работы также необходимо разделить логические диски: операционная система, базы 1С и резервные копии должны находиться на разных физических дисках. Это позволит избежать конкуренции за ресурсы дисковой подсистемы.
Самые радикальные и эффективные изменения связаны с изменением архитектуры работы 1С:Предприятия.
Это наиболее рекомендуемое решение для многопользовательской работы, особенно для той базы, где все 10 пользователей работают одновременно. В этом режиме запросы пользователей обрабатываются сервером 1С, который взаимодействует с системой управления базами данных (СУБД), значительно ускоряя операции. Это позволяет базе «переваривать» большой поток данных и операций, обеспечивая высокую скорость проведения документов и построения отчетов.
Преимущества:
Что потребуется:
Перевод на клиент-серверный режим существенно снизит остроту проблемы замедлений до приемлемого уровня, особенно для активно используемых баз.
Это может быть более экономичным шагом, чем полноценный клиент-сервер. Публикация файловых баз через веб-сервер (Apache или IIS) позволяет пользователям работать с базами через тонкий клиент, взаимодействующий с веб-сервером по HTTP/HTTPS протоколу, или даже через веб-браузер. Это может быть быстрее, чем прямое сетевое подключение к файловой базе.
Преимущества:
Нюансы и недостатки:
Использование веб-сервера может быть полезным промежуточным решением или для баз с небольшой активностью, но не решит проблему активно используемой многопользовательской файловой базы в корне.
Если все 30+ баз представляют собой филиалы или отдельные юридические лица, но используют одну и ту же конфигурацию, мы можем рассмотреть вариант ведения учета нескольких организаций в одной базе 1С:Бухгалтерии 3.0. Это возможно, и позволяет значительно сократить количество информационных баз, упрощая администрирование и резервное копирование.
Однако такой подход часто встречает сопротивление бухгалтеров или вызван политическими причинами (например, нежеланием показывать налоговой инспекции лишние юрлица при выгрузке данных). В этом случае, если разделение данных возможно, оно позволит перейти на меньшее количество, но более производительных серверных баз.
Помимо аппаратных и архитектурных изменений, мы можем провести ряд программных оптимизаций.
Многие типовые конфигурации 1С:Бухгалтерии 3.0 включают регламентные задания, которые могут потреблять значительные ресурсы. Нам следует проанализировать список активных регламентных заданий (например, полнотекстовый поиск, обновления новостей, отправка статистики, актуализация индексов) и отключить те, которые не являются критически важными, или перенести их выполнение на нерабочее время (ночью).
// Пример доступа к регламентным заданиям (для программиста)
СписокЗаданий = РегламентныеЗадания.ПолучитьСписок();
Для Каждого Задание Из СписокЗаданий Цикл
// Анализируем Задание.Имя, Задание.Использование
// Можем изменить Задание.Использование = Ложь для отключения
КонецЦикла;
Регулярное выполнение процедуры «Тестирование и исправление» с опциями реиндексации таблиц, пересчета итогов и сжатия таблиц может помочь устранить ошибки в структуре файловой базы и оптимизировать ее. Это особенно важно для файловых баз, которые со временем накапливают фрагментацию и ошибки.
Программный кэш 1С и временные файлы, которые создаются в каталогах пользователя (например, в %LOCALAPPDATA%\1C\1cv8), могут накапливаться и замедлять работу. Регулярная очистка этих каталогов может немного ускорить запуск и работу программы. Однако, как показали наши эксперименты, наличие 30 тысяч файлов в темповой директории вместо 70 не оказало существенного влияния на время запуска 1С (16 секунд против 18), поэтому это скорее вспомогательная мера.
На сервере необходимо установить схему электропитания «Максимальная производительность» как в настройках Windows, так и, если возможно, в BIOS сервера. Это гарантирует, что процессор будет работать на своей максимальной тактовой частоте постоянно, а не снижать ее для экономии энергии.
Для терминальных серверов с Windows Server 2012 R2 и выше иногда может помочь отключение механизма Dynamic Fair Share Scheduling (DFSS). Этот механизм призван балансировать ресурсы сервера между пользователями, но в некоторых случаях может вызывать замедления в 1С. Это делается изменением параметров реестра:
regedit).HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System.EnableCpuQuota и EnableFairShare с 1 на 0.Антивирус может потреблять значительные ресурсы и замедлять работу 1С, постоянно сканируя обращения к файлам баз данных. Настроим его протоколы проверки, отключив ненужные режимы фонового сканирования для каталогов, где расположены базы 1С и временные файлы платформы. Полную проверку следует запланировать на нерабочее время.
Запуск 1С может тормозить из-за длительного поиска лицензий. Убедимся, что ключи прописаны корректно и легко находятся системой.
Ситуация, когда сервер на базе i5 с 32 ГБ ОЗУ и SSD обслуживает 10 пользователей и 30+ файловых баз 1С:Бухгалтерии 3.0, является критической. Файловый режим работы 1С:Предприятия 8.3 предназначен для небольшого количества пользователей (до 3-5) и баз объемом до 10 ГБ. При одновременной работе 5 и более человек, особенно с одним типом документов, файловая база не успевает обрабатывать запросы, так как все обращения выстраиваются в одну очередь. Также существует ограничение на размер внутренних таблиц в 4 ГБ, при приближении к которому база начинает зависать, а при превышении – перестает открываться в файловом режиме.
Наиболее эффективным и долгосрочным решением, хотя и требующим инвестиций, является переход на клиент-серверную архитектуру (1С:Сервер + SQL Server/PostgreSQL) с выделением отдельных серверов для терминальных сессий и сервера 1С/СУБД. Если этот вариант пока невозможен из-за бюджета на лицензии, то мы должны сфокусироваться на максимально возможной оптимизации текущей конфигурации:
Помните, что комплексный подход и постепенное внедрение улучшений, с постоянным мониторингом результатов, позволят добиться наилучших показателей производительности. Начните с диагностики и поэтапно реализуйте предложенные решения, двигаясь от самых доступных к более капиталоемким.