Почему 1С работает медленно на Windows Server 2019 после обновления и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет
← На главную

Многие пользователи 1С сталкиваются с проблемой замедления работы системы после обновления серверного программного обеспечения, например, при переходе с Windows Server 2008 R2 на Windows Server 2019. Особенно остро эта проблема ощущается при использовании файловых баз 1С и работе через удаленный рабочий стол (RDP). Давайте вместе разберем основные причины такого поведения и рассмотрим комплексные подходы к диагностике и устранению замедлений.

Первоначально важно понять, что переход на более новую операционную систему, такую как Windows Server 2019, не всегда автоматически приводит к улучшению производительности, даже если увеличивается объем оперативной памяти. Современные ОС более требовательны к ресурсам, а также имеют ряд особенностей, которые могут негативно сказаться на работе специфических приложений, таких как 1С:Предприятие.

Если вы работаете в режиме удаленного рабочего стола (RDP) или через RemoteApp, то производительность клиентских компьютеров пользователей практически не влияет на скорость работы 1С. Все вычисления и операции с базой данных происходят непосредственно на сервере. Таким образом, любое замедление, которое ощущают пользователи, является прямым следствием проблем на стороне сервера. Запомните это, чтобы эффективно общаться с поставщиками услуг или системными администраторами.

Диагностика текущего состояния сервера и 1С

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

  1. Проверка общих симптомов замедления 1С:

    Для начала, давайте выясним, как именно проявляется замедление. Это поможет сузить круг поиска проблем. Мы должны задать себе следующие вопросы:

    • Долго ли запускается само приложение 1С?
    • Долго ли открываются списки документов или справочников?
    • Медленно ли проводятся документы?
    • Возникают ли блокировки при одновременной работе нескольких пользователей?
    • Тормозит ли система, когда работает много пользователей, или замедления наблюдаются даже при работе одного пользователя?

    Например, в нашем случае, пользователь жалуется на медленное проведение документов и ввод клиентов в списке заказов покупателей при отборе. Это указывает на проблемы с производительностью операций ввода/вывода (диска) и, возможно, с производительностью процессора при выполнении сложных запросов или проведении.

    Также важно оценить субъективное быстродействие самого сервера без запуска 1С. Попробуйте скопировать большой файл (например, размером в несколько гигабайт) внутри сервера или на сетевую папку. Быстро ли открывается оснастка services.msc (Панель управления -> Администрирование -> Службы)? Если даже эти базовые операции выполняются медленно, то проблема, скорее всего, кроется в общей производительности серверного оборудования или его настройках.

  2. Тестирование дисковой подсистемы:

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

    • Простое копирование файла: Возьмите большой файл (несколько гигабайт) и скопируйте его в пределах одного диска сервера, а затем с одного диска на другой (если их несколько). Замерьте время копирования. Сравните эти показатели со скоростью копирования на вашем локальном компьютере. Если сервер проигрывает, это уже серьезный повод для претензий к арендодателю.

    • Специализированные тесты: Используйте популярные утилиты для тестирования дисков. Например, CrystalDiskMark, AS SSD Benchmark или ATTO Disk Benchmark. Эти программы предоставят вам детальные показатели скорости последовательного и случайного чтения/записи, а также количество операций ввода/вывода в секунду (IOPS), которые критически важны для баз данных.

    • Тест Гилева: Этот тест является стандартом де-факто для оценки производительности 1С-систем. Он имитирует типичные операции 1С и выдает интегральную оценку производительности в баллах. Мы можем запустить его на новом сервере и, если это возможно, сравнить результаты с данными, полученными на старом сервере (если такие замеры делались). Это поможет численно выразить деградацию производительности.

    Важно помнить, что в виртуализированной среде (VMware Virtual Disk SCSI Disk Device) производительность виртуальных дисков напрямую зависит от настроек гипервизора и физической дисковой подсистемы хост-сервера. Если вы используете медленные HDD (7,2k RPM SATA), даже в RAID-массиве, это может быть недостаточным для 30 пользователей и интенсивной работы с базами 1С, особенно если база УНФ достигла 7 ГБ.

  3. Анализ загрузки процессора:

    Откройте Диспетчер задач и перейдите на вкладку "Производительность". Обратите внимание на загрузку процессора. Если она низкая, это не всегда означает, что процессор не является узким местом. 1С:Предприятие, особенно в файловом режиме, часто генерирует "импульсные" нагрузки и может быть чувствительна к однопоточной производительности процессора. Процессор с тактовой частотой 1.6 ГГц, даже если он 64-разрядный, является достаточно слабым для сервера с 30 пользователями и базами 1С. Минимальные требования Windows Server 2019 по частоте ЦП составляют 1.4 ГГц, что говорит о том, что ваш процессор едва соответствует этим минимальным требованиям и может стать серьезным ограничителем.

  4. Проверка настроек сети:

    Хотя при работе по RDP сеть до клиентских машин влияет на "отзывчивость" интерфейса, а не на скорость выполнения операций на сервере, важно убедиться в отсутствии проблем в сетевой подсистеме самого сервера. Мы можем проверить длину пинга от вашего компьютера до сервера (ping [IP_адрес_сервера]) и обратить внимание на стабильность задержек и отсутствие потерь пакетов. Внутренняя сетевая подсистема сервера (связь между дисками, процессором, памятью) также важна, но её диагностика сложнее.

  5. Использование инструментов 1С для оценки производительности:

    Сама платформа 1С предлагает мощные инструменты для измерения и анализа производительности:

    • Методика Apdex и подсистема "Оценка производительности": Если ваши базы построены на Библиотеке стандартных подсистем (БСП), то в них уже есть подсистема "Оценка производительности". Она позволяет настроить целевое время для ключевых операций и в дальнейшем получать числовые показатели прироста или снижения производительности. Это идеальный инструмент для сравнения "до и после".

    • "Стандартный нагрузочный тест" из "Корпоративного инструментального пакета": Этот пакет предоставляет возможность имитировать работу множества пользователей и измерять производительность системы под нагрузкой. Он также может быть использован для сравнения производительности на старой и новой конфигурации.

    Эти инструменты дают наиболее точную и релевантную информацию о производительности именно 1С:Предприятия. Для быстрой настройки сбора метрик подойдёт обработка для добавления ключевых операций в профиль производительности APDEX.

Оптимизация операционной системы Windows Server 2019

Windows Server 2019 — это современная и функциональная ОС, но для максимальной производительности, особенно в связке с 1С, требуется тонкая настройка. Мы должны рассмотреть следующие аспекты.

  1. Настройки плана электропитания:

    По умолчанию Windows Server может использовать сбалансированный режим электропитания для экономии энергии. Это приводит к тому, что процессор не всегда работает на своей максимальной тактовой частоте. Для сервера 1С это критично. Мы должны установить план электропитания Высокая производительность.

    Для этого:

    1. Откройте "Параметры" -> "Система" -> "Питание и спящий режим".
    2. Выберите "Дополнительные параметры питания".
    3. В открывшемся окне выберите схему "Высокая производительность".
    4. Нажмите "Настройка схемы электропитания", затем "Изменить дополнительные параметры питания".
    5. Найдите раздел "Управление питанием процессора". Убедитесь, что "Минимальное состояние процессора" установлено на 100%, а "Максимальное состояние процессора" также на 100%. Если вы видите только "Политика охлаждения системы", это часто указывает на то, что сервер работает в виртуализированной среде, и некоторые настройки питания управляются гипервизором. В таком случае, эти настройки нужно проверить на уровне хост-системы VMware.

    Отключение энергосберегающих технологий процессора (таких как Intel SpeedStep, AMD Cool'n'Quiet, C-States) в BIOS/UEFI хост-сервера также крайне рекомендуется для обеспечения постоянной максимальной частоты процессора.

  2. Влияние виртуализации:

    Пользователь утверждает, что у него "физический сервер", однако скриншоты из Диспетчера устройств (например, VMware Virtual Disk SCSI Disk Device) однозначно указывают на работу в виртуальной машине VMware. Виртуализация всегда добавляет накладные расходы на производительность. Мы должны учесть следующие моменты:

    • Накладные расходы гипервизора: Сам гипервизор VMware потребляет часть ресурсов физического сервера. Это естественный процесс.

    • Конфигурация ресурсов ВМ: Мы должны убедиться, что виртуальной машине выделено достаточно ресурсов. Если физически установлено 64 ГБ ОЗУ, мы должны убедиться, что все они доступны ВМ или что выделенного объема (например, 32-48 ГБ) действительно хватает и он зарезервирован.

    • Расположение виртуальных дисков: Если виртуальные диски ВМ расположены на медленных HDD (как указано в акте модернизации: 4 шт. HDD HP 2TB 2.5" SATA 7,2k), это является очень слабым местом. Физические диски 7.2k RPM обладают очень низкой производительностью IOPS, что критично для файловых баз 1С. Для ВМ с 1С настоятельно рекомендуется использовать SSD или NVMe накопители на хост-сервере, а еще лучше – полностью выделить SSD для дисков этой ВМ.

    • "Тонкие" или "толстые" диски: В VMware есть "тонкие" (thin provisioned) и "толстые" (thick provisioned) диски. "Тонкие" диски расширяются по мере заполнения, что может вызывать небольшие накладные расходы на производительность при первом обращении к новому блоку. Для максимальной производительности рекомендуется использовать "толстые" диски с немедленным выделением (eager zeroed thick).

    • Очередь ввода-вывода: На виртуальных дисках важно проверить настройки очереди ввода-вывода. Иногда ограничения накладываются на уровне гипервизора.

    Мы должны выяснить у арендодателя точную конфигурацию хост-сервера и настройки вашей виртуальной машины. Зачастую "медленная" работа на виртуальной машине объясняется именно неоптимальной конфигурацией виртуальной среды или недостаточными ресурсами на уровне физического хоста, который может быть общим с другими клиентами.

  3. Dynamic Fair Share Scheduling (DFSS):

    Начиная с Windows Server 2012, в службах удаленных рабочих столов появилась функция Dynamic Fair Share Scheduling (DFSS). Она предназначена для балансировки ресурсов (процессорное время, операции ввода/вывода, сетевой трафик) между пользователями терминального сервера, чтобы ни один пользователь не монополизировал ресурсы. В некоторых случаях, особенно с приложениями, активно использующими диск, эта функция может приводить к замедлениям работы 1С. Мы можем попробовать отключить её для тестирования:

    
    REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\TsAppSrv\Parameters" /v "fEnableFairShareProcessors" /t REG_DWORD /d 0 /f
    REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\TsAppSrv\Parameters" /v "fEnableFairShareDisk" /t REG_DWORD /d 0 /f
    REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\TsAppSrv\Parameters" /v "fEnableFairShareNetwork" /t REG_DWORD /d 0 /f
    

    После изменения реестра потребуется перезагрузка сервера.

  4. Windows Defender и исключения:

    В Windows Server 2019 встроенный антивирус Windows Defender работает более активно и эффективно. Для файловых баз 1С, которые постоянно создают и изменяют множество файлов, это может стать источником значительных накладных расходов, поскольку Defender будет сканировать каждый изменяемый файл. Мы должны добавить исключения для каталогов, где расположены:

    • Файлы баз 1С (файлы 1Cv8.CD и папки с журналами).
    • Платформа 1С (каталоги bin и conf).
    • Рабочие каталоги сервера 1С (если используется клиент-серверный вариант).
    • Каталог %TEMP% пользователей терминального сервера.

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

  5. Настройка файла подкачки (Page File):

    Хотя у вас 64 ГБ ОЗУ, правильная настройка файла подкачки все равно важна. Мы рекомендуем установить фиксированный размер файла подкачки (например, 1.5-2x от объема ОЗУ, но не менее 16-32 ГБ) на отдельном быстром диске (желательно SSD), отличном от диска, где расположены базы 1С. Это предотвратит фрагментацию файла подкачки и обеспечит его стабильную производительность.

  6. Отключение IPv6:

    Если в вашей сети не используется протокол IPv6, его отключение на сетевых адаптерах сервера может немного ускорить установление сетевых соединений и снизить нагрузку на стек TCP/IP.

Оптимизация платформы 1С и баз данных

Проблемы могут быть не только в железе или операционной системе, но и в самой конфигурации 1С и её использовании. Давайте посмотрим, что мы можем сделать на этом уровне.

  1. Переход на 64-разрядную платформу 1С:

    Вы используете 32-разрядную платформу 8.3.13.1644 x32. При наличии 64 ГБ оперативной памяти на сервере, использование 32-разрядной платформы является неэффективным. 32-битные приложения ограничены в объеме оперативной памяти, которую они могут использовать (обычно 2-4 ГБ на процесс). Это означает, что даже если на сервере много ОЗУ, 1С-процессы не могут использовать её полностью. Мы должны перейти на 64-разрядную версию платформы 1С:Предприятие 8.3. Это позволит приложению использовать гораздо больше оперативной памяти, что существенно снизит обращения к диску и улучшит общую производительность, особенно при работе с большими объемами данных и отчетами.

  2. Работа с журналом регистрации 1С:

    Журнал регистрации 1С (лог действий пользователей) в файловом режиме может разрастаться до огромных размеров (в вашем случае — 44 ГБ!). Каждая операция записи в этот журнал замедляет работу системы. Мы можем сделать следующее:

    • Удалить старые данные: Регулярно очищайте журнал регистрации от старых записей. Это можно сделать через консоль 1С.

    • Ограничить объем записи: В настройках журнала регистрации установите флаг "Регистрировать только ошибки". Это значительно уменьшит объем записываемых данных и, как следствие, нагрузку на дисковую подсистему. Пользователь уже удалил журнал и ограничил регистрацию ошибок, что является правильным шагом, хотя эффект может быть не мгновенным и не единственным решением.

    • Вынести журнал на отдельный диск: Если это возможно, выделите отдельный быстрый диск (предпочтительно SSD) для журнала регистрации.

  3. Переход на клиент-серверный вариант (SQL Server):

    Использование файловых баз 1С для 30 пользователей с базами УНФ 7 ГБ и Документооборот 1 ГБ является крайне неэффективным и, по сути, "приговором" для производительности. Хотя некоторые пользователи и утверждают, что файловые базы 50 ГБ могут работать, это, скорее, исключение и связано с очень специфическими условиями или низкими требованиями к скорости.

    Принято считать, что для файловых баз предел комфортной работы составляет около 5-10 пользователей и размер базы до 4 ГБ (хотя это ограничение скорее связано с рекомендациями и общей эффективностью, а не с техническим лимитом FAT32). После этих значений настоятельно рекомендуется переход на клиент-серверный вариант с использованием SQL Server. Это даст многократный прирост производительности за счет:

    • Перекладывания части логики на СУБД (SQL Server более эффективно работает с данными, чем файловый механизм 1С).
    • Оптимизации блокировок при одновременной работе пользователей.
    • Лучшего использования многоядерных процессоров и большого объема ОЗУ сервера.

    Даже с учетом затрат на лицензии SQL Server и работы по переходу, это является наиболее разумным и дальновидным решением для вашей ситуации. Бюджет в 370 тысяч рублей, упомянутый пользователем, вполне мог бы покрыть переход на 64-битную платформу и внедрение SQL Server.

  4. Использование публикации базы на веб-сервере (тонкий клиент):

    Если немедленный переход на SQL Server по каким-то причинам невозможен, мы можем рассмотреть промежуточное решение: публикацию файловой базы на веб-сервере (например, IIS или Apache) и подключение к ней через тонкий клиент. При этом, мы не обязательно выкладываем базу в интернет. Подключение тонкого клиента может осуществляться к веб-серверу, развернутому на том же сервере, где находится файловая база. Этот подход может частично решить проблемы с блокировками и улучшить быстродействие, так как тонкий клиент взаимодействует с веб-сервером, а не напрямую с файлом базы. Это может дать ощутимый прирост для файловых баз, особенно при большом количестве пользователей.

  5. RamDisk для файловых баз:

    Для очень требовательных к скорости файловых баз, где другие методы не дали достаточного эффекта, мы можем рассмотреть размещение базы на RamDisk. RamDisk – это виртуальный диск, который создается в оперативной памяти сервера и обладает феноменальной скоростью работы (в сотни раз быстрее SSD). Однако этот метод сопряжен с серьезными рисками: при аварийном отключении питания сервера все данные на RamDisk будут потеряны. Использование RamDisk требует крайне надежных источников бесперебойного питания и тщательной настройки регулярного сохранения данных с RamDisk на физический диск. Этот вариант стоит рассматривать только как крайнюю меру и с полным осознанием рисков.

  6. Свертывание и обслуживание баз:

    Хотя пользователь уже сворачивал базу (с 11 ГБ до 7 ГБ), и это не дало ощутимого эффекта на старом сервере, для дальнейшей оптимизации важно регулярно проводить обслуживание баз, а для автоматизации тестирования и создания резервных копий нескольких баз можно применить программу для технического обслуживания 1С. Это включает в себя:

    • Свертывание базы: Удаление старых, неактуальных документов за прошлые периоды.

    • Тестирование и исправление базы: Регулярное использование инструмента Тестирование и исправление в конфигураторе 1С для проверки логической целостности и исправления ошибок. В клиент-серверном варианте также важна регулярная переиндексация и сжатие баз средствами SQL Server.

  7. Ограничения файловых баз:

    Мы должны всегда помнить, что файловый режим 1С:Предприятия имеет естественные ограничения, которые невозможно преодолеть только оптимизацией ОС и железа. Эти ограничения включают:

    • Механизм блокировок: В файловом режиме используются файловые блокировки, которые менее эффективны и более подвержены конфликтам по сравнению с СУБД.

    • Использование ОЗУ: Каждый процесс 1С в файловом режиме загружает в память часть данных базы, что при большом количестве пользователей приводит к избыточному потреблению ОЗУ и дублированию данных в памяти.

    • Масштабируемость: Файловый режим плохо масштабируется при росте числа пользователей и объема данных.

    Поэтому, несмотря на все попытки оптимизации, файловая база на 30 пользователей с объемом 7 ГБ всегда будет работать хуже, чем клиент-серверный вариант, и достичь той же производительности будет крайне сложно.

Аппаратные улучшения (железо)

Если все программные методы оптимизации и диагностики не принесли желаемого результата, нам придется обратить внимание на аппаратное обеспечение сервера. Рассмотрим, что мы можем улучшить.

  1. Процессор:

    Как мы уже обсуждали, процессор Intel® Xeon® E5-2603 v2 1,80 ГГц является слабым местом. Даже если он "мало загружен" по общему показателю, его низкая тактовая частота и не самая высокая производительность на ядро могут быть причиной замедлений в 1С. 1С часто зависит от скорости выполнения операций на одном ядре. Мы должны рассмотреть возможность замены процессора на модель с более высокой тактовой частотой и/или большим количеством ядер, если архитектура сервера это позволяет. Сотрудники арендодателя, возможно, оценивают загрузку процессора только по общим показателям, не учитывая специфику нагрузок 1С.

  2. Дисковая подсистема (SSD):

    Это, пожалуй, наиболее критичный компонент для файловых баз 1С. Использование HDD HP 2TB 2.5" SATA 7,2k, даже в количестве 4 штук и в RAID-массиве, является серьезным ограничением для производительности. Современные SSD-накопители обладают на порядки большей скоростью случайного чтения/записи (IOPS) по сравнению с HDD, что жизненно важно для баз данных. Мы настоятельно рекомендуем перейти на SSD-накопители, а в идеале — на NVMe SSD, для размещения баз 1С и системных файлов сервера. Это даст самый ощутимый прирост производительности среди всех аппаратных изменений. Для виртуальной машины это означает, что виртуальные диски ВМ должны располагаться на SSD-хранилище хост-сервера.

  3. Оперативная память:

    Хотя у вас доступно 64 ГБ ОЗУ (физически 4 планки по 16 ГБ DDR4), что более чем достаточно для 30 пользователей, важно, чтобы эта память эффективно использовалась. Переход на 64-разрядную платформу 1С, о которой мы говорили выше, позволит использовать весь доступный объем ОЗУ и кэшировать больше данных, уменьшая количество обращений к диску.

Подводя итог, мы видим, что проблема замедления работы 1С на Windows Server 2019 с файловыми базами является комплексной. Она требует системного подхода к диагностике и устранению, затрагивая как аппаратное обеспечение, так и настройки операционной системы, а также архитектуру и конфигурацию самой системы 1С:Предприятия. Начните с тщательной диагностики, а затем последовательно применяйте описанные методы оптимизации, двигаясь от программных настроек к аппаратным улучшениям, и всегда помните о целесообразности перехода на клиент-серверный вариант для обеспечения стабильной и высокопроизводительной работы 1С. Для точного подбора параметров оборудования под количество пользователей и размер баз можно использовать калькулятор расчета серверного железа для 1С.

← На главную