Как определить причины зависания и падения производительности файловых баз 1С в терминальном режиме

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При эксплуатации файловых информационных баз конфигурации 1С:Бухгалтерия предприятия 3.0 в среде сервера терминалов нередко возникает ситуация, когда система некоторое время работает стабильно, а затем производительность резко падает: операции записи начинают занимать длительное время, запуск базы замедляется до десятков минут, а диспетчер задач показывает непрерывную утилизацию диска. Рассмотрим подробнее, почему возникает данная проблема и какими инструментами можно локализовать узкое место.

Анализ ключевых причин замедления

Для понимания природы деградации производительности проанализируем основные архитектурные ограничения и системные факторы, влияющие на работу 1С в файловом режиме:

  1. Ограничения адресного пространства и системных пулов памяти 32-разрядных ОС. В 32-битных версиях Windows адресное пространство ядра жестко ограничено 2 ГБ вне зависимости от объема физической памяти и использования механизмов расширения адресации. При одновременной работе нескольких терминальных сеансов и открытии множества баз дескрипторы окон, шрифты и системные пулы переполняются. В результате операционная система теряет возможность эффективно кэшировать дисковый ввод-вывод и начинает активный сброс страниц памяти на диск (свопинг).
  2. Механизм блокировок файловой СУБД 1Cv8.1CD. В файловом режиме блокировка при транзакциях записи накладывается на уровне целых таблиц. Когда несколько пользователей одновременно проводят документы или формируют тяжелые отчеты в одной базе, их сеансы выстраиваются в очередь ожидания освобождения таблиц, многократно опрашивая файловую систему и создавая лавинообразную нагрузку на дисковый накопитель.
  3. Фоновые и регламентные задания в сеансах пользователей. В типовой конфигурации 1С:Бухгалтерия 3.0 в файловом варианте регламентные процедуры выполняются непосредственно в пользовательских процессах 1cv8.exe. Индексация полнотекстового поиска, обновление классификаторов и загрузка курсов валют могут запускаться спонтанно, утилизируя до 100% дисковых ресурсов.
  4. Фрагментация дискового массива и состояние RAID. Работа с зеркальными массивами (RAID 1) на базе классических жестких дисков (HDD) при одновременных операциях случайного чтения и записи нескольких сеансов приводит к резкому росту задержек позиционирования головок накопителей. При сбоях одного из дисков или фоновой верификации массива производительность падает критически.
  5. Влияние антивирусного сканирования. Проверка каждого блока файла базы данных и временных файлов в реальном времени многократно увеличивает время отклика подсистемы ввода-вывода.

Методика диагностики с помощью системных утилит

Разберем по шагам, как выявить конкретный компонент, вызывающий зависание системы, без необходимости немедленной перезагрузки оборудования.

Шаг 1. Анализ счетчиков системного монитора производительности (Performance Monitor).

Запустим оснастку perfmon.msc и добавим ключевые счетчики производительности:

  1. PhysicalDisk \ Avg. Disk Queue Length — показывает среднюю длину очереди к физическому диску. Если значение стабильно превышает 2 на один физический диск, подсистема хранения является главным «бутылочным горлышком».
  2. PhysicalDisk \ % Idle Time — процент времени простоя накопителя. Падение значения до 0–5% свидетельствует о полной загрузке диска операциями ввода-вывода.
  3. Memory \ Pages/sec и Memory \ Page Faults/sec — высокая частота обращений к файлу подкачки подтверждает нехватку оперативной памяти сеансам 1С и активный свопинг.
  4. Memory \ Pool Paged Bytes и Memory \ Free System Page Table Entries (PTEs) — позволяют отследить критическое исчерпание пулов ядра операционной системы.

Шаг 2. Мониторинг процессов и активности ввода-вывода.

С помощью утилиты Process Monitor отфильтруем события по имени процесса 1cv8.exe и операциям ReadFile / WriteFile. Это позволит определить:

  1. Какой именно терминальный сеанс генерирует наибольший объем обращений к диску.
  2. К каким файлам идет обращение (к основному файлу 1Cv8.1CD, журналу регистрации 1Cv8.lgd или временным файлам в каталогах профилей).
  3. Каково реальное время задержки (параметр Duration) при обращении к файловой системе.

Шаг 3. Использование технологического журнала 1С.

Создадим файл конфигурации logcfg.xml в каталоге conf платформы 1С для сбора событий длительных блокировок и обращений к базе данных:


<config xmlns="http://v8.1c.ru/v8/tech-log">
    <dump location="C:\Logs\Dumps" create="false"/>
    <log location="C:\Logs\1C_Perf" history="24">
        <event>
            <eq property="name" value="TLOCK"/>
        </event>
        <event>
            <eq property="name" value="TTIMEOUT"/>
        </event>
        <property name="all"/>
    </log>
</config>

Анализ полученных логов покажет, на каких таблицах и запросах пользователи сталкиваются с таймаутами ожидания блокировок.

Практические шаги по устранению проблемы и оптимизации

После локализации проблемы выполним комплекс мер по оптимизации серверного окружения и конфигурации 1С:

1. Отключение ресурсоемких регламентных заданий.

В режиме 1С:Предприятие перейдем в раздел Администрирование — Обслуживание — Регламентные и фоновые задания. Отключим или перенесем на нерабочее время следующие задачи:

  1. Обновление индекса ППД и Слияние индексов ППД (полнотекстовый поиск).
  2. Загрузка курсов валют и Загрузка классификаторов.
  3. Автоматическая проверка обновлений и Новости.

2. Настройка исключений антивирусного ПО.

Добавим в список исключений постоянного мониторинга антивируса следующие объекты:

  1. Расширения файлов *.1CD, *.1CL, *.cfl, *.lgd, *.lgf.
  2. Каталоги расположения информационных баз.
  3. Папки временных файлов профилей пользователей (AppData\Local\Temp\1C...).

3. Обслуживание физической структуры информационной базы.

Выполним регулярное техническое обслуживание файла базы данных:

  1. Запустим утилиту проверки целостности chdbfl.exe (расположена в папке bin установленной платформы).
  2. В режиме Конфигуратор выполним пункт меню Администрирование — Тестирование и исправление... с обязательной установкой флага Сжатие таблиц информационной базы для удаления неиспользуемых фрагментов файла.
  3. Очистим кэш пользовательских сеансов путем удаления временных каталогов с буквенно-цифровыми именами в профилях пользователей.

4. Оптимизация аппаратной и системной части.

  1. Переход на 64-битную операционную систему. Это снимет критические ограничения на системные пулы ядра и позволит операционной системе полноценно использовать всю физическую оперативную память под дисковый кэш.
  2. Установка твердотельных накопителей (SSD). Размещение файлов баз данных и каталогов временных файлов на SSD позволяет многократно сократить задержки при случайном чтении и записи, устраняя дисковые очереди даже при одновременной работе нескольких сеансов.
  3. Переключение схемы электропитания. В панели управления ОС установим схему электропитания Высокая производительность, чтобы исключить сброс частоты процессора и парковку ядер в моменты простоя.
← На главную