Перейти к содержанию
Обсудить задачу →
Статьи и инструкции

Почему тормозит 1С: диагностика сервера, базы и сети

Как найти причину медленной 1С: замеры операций и APDEX, тесты, конфигурация и доработки, версии ОС и СУБД. Совместная диагностика администратора и разработчика.
Концептуальная иллюстрация серверов и секундомера для сравнения времени работы операций

Если 1С долго открывается, медленно проводит документы или зависает на отчёте, сначала определите, где теряется время. Причиной могут быть рабочее место, сеть, код конфигурации, блокировка базы или нехватка ресурсов. По одному проценту загрузки CPU выбрать лечение нельзя. Ниже — последовательность диагностики: замеры операций и APDEX, совместная работа администратора и разработчика, проверка конфигурации, ОС и СУБД, доработка и приёмка результата.

Для руководителя

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

Для администратора и разработчика

Связать показатели Windows/Linux и СУБД с замером кода, проверить гипотезу и сравнить время рабочих операций.

Границы примеров

1С:Предприятие 8.3; команды ОС — для Windows Server 2019–2025 и Linux с procps/sysstat; SQL-примеры — PostgreSQL 16 и SQL Server 2019/2022. Это диагностические заготовки, сопоставленные с документацией, а не отчёт об испытании клиентской базы. Перед применением проверьте совместимость своей сборки 1С и СУБД. Имена серверов, баз и численные примеры условные.

Что сделать в первые 15 минут

  1. Назовите операцию: не «всё медленно», а «проведение реализации», «открытие списка», «отчёт за месяц». Запишите параметры и время начала с часовым поясом.
  2. Определите масштаб: один сотрудник или все, одна база или несколько, офис или удалённые подключения.
  3. Сопоставьте изменения: обновление платформы, конфигурации, расширения, антивируса, резервного копирования, сети или ресурсов ВМ.
  4. Снимите состояние во время задержки: ОС, сеансы 1С, СУБД и, если есть виртуализация, физический узел.
  5. Повторите контролируемый сценарий: несколько запусков с одинаковыми параметрами; отдельно отметьте первый и повторные запуски.
До перезапуска сохраните свидетельства

Перезапуск может убрать текущие ожидания, но не объяснить причину. Если сервис уже не работает и требуется восстановление, действуйте по аварийному регламенту; время, журналы и доступные показатели сохраните до вмешательства, насколько это возможно.

Где искать задержку: схема пути операции

01Рабочее место

Отрисовка формы, локальные файлы, внешние компоненты.

Проверка: другой клиент с тем же сценарием.
02Сеть и доступ

DNS, задержки, потери, VPN, веб-публикация.

Проверка: тот же сценарий по другому пути.
03Сервер 1С

Код, серверные вызовы, фоновые задания, управляемые блокировки.

Проверка: сеанс, замер, технологический журнал.
04СУБД и хранение

SQL, ожидания блокировок, CPU, память, ввод-вывод.

Проверка: запросы и метрики в тот же момент.
Упрощённая схема клиент-серверной 1С. Для файловой базы сервер 1С и СУБД отсутствуют: вместо них проверьте файловый ресурс и SMB. Для веб-клиента добавьте веб-сервер; для RDP — терминальный сервер и его сеанс.

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

Симптом → первая проверка → следующий шаг

Что наблюдаемС чего начатьЧем подтвердить
Медленно у одного пользователяКлиент, профиль, сеть, локальные компонентыТот же пользователь и сценарий на другом рабочем месте
Замедлились все базы сразуОбщий узел, хранилище, сеть, задания обслуживанияСовпадение времени задержек и общей нагрузки
Тормозит только один отчётОтборы, объём данных, код и SQLЗамер проблемного участка и план соответствующего запроса
Документы ждут друг другаДлительная транзакция, управляемые и SQL-блокировкиКто ждёт, кто удерживает ресурс и чем занят блокирующий сеанс
Плохо в одно и то же времяОбмены, закрытие периода, backup, проверки и обновленияОбщий график заданий и показатели в момент жалобы
По RDP быстрее, чем тонким клиентомЧисло сетевых обращений, канал, клиентская работаОдинаковые параметры операции и измерения обоих путей

Это направления поиска, а не диагнозы. Например, разница между RDP и тонким клиентом меняет сразу несколько условий: сеть, клиентскую машину и место исполнения. Она сама по себе не доказывает неисправность провайдера.

Как измерять: сценарий, повторения и понятный результат

Зафиксируйте входные условия

  • Версии платформы, конфигурации и расширений.
  • Документ, период, отборы, пользователь и права.
  • Клиент: тонкий, веб, толстый или RDP.
  • Активная нагрузка, задания и состояние кэша.

Заранее согласуйте приёмку

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

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

Учебный пример, не результат внедрения

Пять запусков отчёта заняли 8, 9, 9, 10 и 44 секунды. Среднее — 16 секунд, медиана — 9 секунд, но пользователю всё равно пришлось ждать 44 секунды. Разберите этот запуск отдельно и сопоставьте его время с журналами и заданиями.

APDEX: измерять удобство работы, а не только загрузку сервера

APDEX (Application Performance Index) сводит время отклика выбранной операции к индексу от 0 до 1. Сначала согласуют целевое время T. Успешные выполнения до T включительно считаются удовлетворительными, дольше T и до 4T включительно — терпимыми, дольше 4T — неудовлетворительными. Распознанные ошибки операции учитывают как неудовлетворительные, даже если ответ пришёл быстро.

APDEX = (S + P / 2) / N

S — число удовлетворительных выполнений; P — терпимых; N — все измеренные выполнения, включая неудовлетворительные. При N = 0 индекс не рассчитывают. Порог T задают до сравнения и сохраняют одинаковым для «до» и «после».

70 выполнений ≤ 2 с

Удовлетворительные при выбранном T = 2 секунды.

20 выполнений: 2–8 с

Терпимые: строго больше 2 и не больше 8 секунд.

10 выполнений > 8 с

Неудовлетворительные. В этом примере ошибок нет.

APDEX = 0,80

(70 + 20 / 2) / 100. Учебный расчёт, не замер клиентской базы.

Границы и обработка исключений: спецификация Apdex Alliance, разделы 3–4. Индекс характеризует отклик, а не правильность расчётов или процент загрузки.

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

В некоторых прикладных решениях сбор уже предусмотрен. Например, фирма 1С описывает «Оценку производительности» в разделе «Настройка и администрирование» для 1С:Документооборота. Наличие подсистемы и путь меню уточняйте для своего релиза; это не единый пункт всех конфигураций.

Методы тестирования: какую задачу решает каждый замер

МетодЧто проверяемЧто он не доказывает
Хронометраж бизнес-операцииВремя от действия пользователя до готового результата, APDEX и ошибкиГде именно потрачено время внутри системы
Замер кода и серверных вызововГорячие участки, частоту вызовов, клиентскую и серверную работуПоведение при сотне параллельных пользователей
Многопользовательский нагрузочный тестРабочую смесь операций, конкуренцию, отклик и пропускную способностьРезультат на других данных, настройках и расписаниях
Стресс-тест и длительный прогонГраницу деградации, восстановление после пика, накопление очередей и роста памятиБезопасность такой нагрузки на рабочей базе
Регрессионный тест «до / после»Изменение времени и правильности результата после обновления или доработкиОтсутствие проблем в неохваченных сценариях
Синтетический тест оборудованияСопоставимость серверных конфигураций по конкретной методикеСколько именно ваших сотрудников сможет работать

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

Стандартный нагрузочный тест 1С оценивает серверную конфигурацию по собственной модели «стандартных пользователей». Описанный фирмой 1С сценарий основан на УПП и полной параллельности с отдельными данными пользователей. Это не копия вашей ERP или ЗУП и не испытание реальных конфликтов за один документ. Число стандартных пользователей нельзя напрямую переводить в штат компании.

  1. Подготовьте отдельный стенд: согласованный набор данных, изолированные обмены, почта и внешние интеграции.
  2. Задайте профиль: доли операций, темп действий, паузы, параллельность и фоновые задания. Число открытых сеансов не равно числу одновременно выполняемых операций.
  3. Разведите прогрев и измерение: первый запуск сохраняйте отдельно; не очищайте кэш на рабочей системе ради красивого сравнения.
  4. Повышайте нагрузку ступенями: фиксируйте время операций, ошибки, APDEX, выполненные операции в минуту и метрики узлов.
  5. Задайте условия остановки: недопустимые ошибки, задержки, очереди или исчерпание места. Длительность и нагрузка должны быть согласованы.

Тест Гилёва: что показывает синтетическая оценка и чего она не объясняет

Тест Гилёва — TPC-GILV проверяет скорость среды 1С на заданном эталонном сценарии. Автор описывает основной тест как однопоточный. Его балл полезен для предварительного сравнения серверов и настроек в сопоставимых условиях. Это обобщённая оценка в рамках тестового сценария, а не средняя скорость всех операций вашей компании.

Когда полезен

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

Для чего нужны другие замеры

  • Найти медленный участок вашей конфигурации.
  • Оценить работу сотрудников одновременно.
  • Проверить проведение, отчёты, обмены и закрытие периода.

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

Что сравниваемСинтетический тестПроверка вашей конфигурации
Код и данныеСценарий и набор данных тестаНужный релиз, рабочие объёмы, расширения, права и доработки
Работа пользователейМодель выбранного теста; основной тест Гилёва однопоточныйСмесь операций, реальные конфликты, параллельность и фоновые задания
РезультатСопоставимый балл при одинаковой методикеВремя конкретных операций, ошибки, APDEX и пропускная способность
Поиск причиныПовод проверить среду и гипотезыСвязь операции с кодом, SQL, ожиданиями и показателями узлов
Хороший балл не закрывает жалобу пользователя

Ваша ERP, ЗУП или Бухгалтерия отличается от тестовой базы: документы имеют другой объём, отчёты — свои отборы, расширения добавляют код, а пользователи конкурируют за данные. Даже одинаковые названия конфигураций не означают одинаковые системы. Если медленно закрывается месяц, измерять нужно и закрытие месяца, и его проблемные этапы.

Автор отдельно объясняет синтетический характер теста и необходимость сценария для своей задачи. Один общий балл не указывает точное место проблемы: строку модуля, запрос, блокировку или внешний сервис. Для этого нужны описанные выше прикладные замеры и совместный анализ.

  1. Начните с безопасного стенда: отдельная тестовая база и согласованная нагрузка. Не загружайте тестовую выгрузку в рабочую базу.
  2. Запишите условия: версия самого теста, платформы, ОС и СУБД, ресурсы, тип базы и соседняя нагрузка.
  3. Повторите измерение: сохраняйте отдельные результаты и их разброс; между сравнениями меняйте один фактор.
  4. Подтвердите результат на своих операциях: тот же набор данных, одинаковые пороги APDEX, нагрузка и проверка правильности. Рост балла без ускорения нужной операции ещё не означает, что задача бизнеса решена.

«Тормозит сервер» или «тормозит конфигурация»: как закончить спор

Администратор видит загрузку ресурсов, разработчик — выполнение кода. Оба наблюдения нужны: тяжёлый запрос способен перегрузить хороший сервер, а нехватка ресурсов замедляет корректный алгоритм. Низкая средняя загрузка CPU не оправдывает инфраструктуру, а быстрый синтетический тест не оправдывает конфигурацию.

Что приносит администратор

  • Синхронизированную временную шкалу CPU, памяти, хранения и сети.
  • Ограничения ОС, СУБД и виртуальной среды.
  • Данные о соседней нагрузке и заданиях.
  • Подтверждение состава и версий стенда.

Что приносит разработчик

  • Воспроизводимый сценарий и контроль правильности.
  • Замер кода, число SQL- и серверных вызовов.
  • Связь долгого запроса с участком конфигурации.
  • Состав расширений, доработок и последних изменений.
НаблюдениеЧто пока нельзя утверждатьСовместная проверка
Вся машина загружена слабо«Сервер точно ни при чём»Один поток, ожидания, ограничения ВМ, задержка хранения
SQL-запрос занимает почти всё время«Виноват только PostgreSQL или SQL Server»План, параметры, данные, статистика и код, сформировавший запрос
Ресурсы перегружены в момент отчёта«Достаточно купить сервер мощнее»Объём полезной работы, число повторов и конкурирующие задания
На тестовой базе быстрее«В продакшене неправильно настроена ОС»Размер и состав данных, права, расширения, кэш и параллельность
Общий результат расследования

Операция → временная метка → сеанс 1С → вызов или ожидание → показатели сервера в тот же момент → проверяемая гипотеза. После одного изменения повторяют тот же сценарий и вместе подписывают результат. Заключение должно объяснять измерения, а не назначать виноватого.

Конфигурация, платформа и расширения — разные источники изменений

«1С 8.3» — версия платформы, а не полное описание приложения. Запишите также точный релиз Бухгалтерии, ЗУП, Управления торговлей, Комплексной автоматизации или ERP, режим совместимости, установленные исправления и расширения. Тест закрытия месяца в Бухгалтерии не заменяет проверку расчёта зарплаты в ЗУП или производственного планирования в ERP.

  • Типовая конфигурация: проверьте воспроизводимость на том же релизе, ограничения отчёта и рекомендации поставщика. Типовой код тоже нужно исследовать, если замер указывает на него.
  • Доработанная основная конфигурация: выясните, какие объекты изменены и как они объединялись с последним обновлением.
  • Расширения: зафиксируйте версии, назначение и затронутые объекты. На подготовленной копии можно проверить работу без подозреваемого расширения, если платформа и зависимости допускают это.
  • Внешние отчёты, обработки и интеграции: включите их в сценарий. Задержка может возникать при обращении к сайту, оборудованию, файлу или внешнему API.

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

Методы доработки: что оптимизируют в коде и запросах

Что подтвердил замерВариант доработкиЧто проверить после
Много однотипных запросов в циклеПолучить нужные данные пакетно или переработать запрос, сохранив бизнес-логикуКоличество вызовов, память, состав и правильность результата
Избыточные клиент-серверные обращенияПеренести связанный объём работы в один обоснованный серверный вызовОтклик интерфейса, размер передаваемых данных, время на сервере
Читается слишком много данныхПересмотреть отборы, соединения, временные таблицы и поля выборкиПлан, число обработанных строк и корректность при разных параметрах
Долго удерживаются блокировкиРазобрать границы транзакции и обращения к внешним системам внутри неёАтомарность, согласованность и одновременная работа пользователей
Долгие фоновые обработкиОценить порционность, расписание и повторное выполнение без дублейПолноту обработки, завершение после сбоя и выполнение в срок

Это варианты гипотез, а не универсальные исправления. Пакетная обработка может увеличить расход памяти; сокращение транзакции не должно нарушить целостность. Индексы и изменения структуры, управляемой 1С, согласуют с разработчиком и жизненным циклом конфигурации. Не добавляйте произвольные объекты прямо в рабочую SQL-базу без проверки поддержки и последующих обновлений.

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

Windows Server: важны версия, сборка и роль сервера

Windows Server 2019, 2022 и 2025 нельзя сравнивать только по названию. Сначала проверьте поддержку точной версии ОС вашей платформой 1С, СУБД, драйверами и гипервизором. Общая поддержка Windows продуктом не означает поддержку каждой новой серверной версии. Отдельно определите, что сравнивается: сервер 1С, SQL Server или терминальный сервер. Матрица ОС фирмы 1С.

На проверяемом Windows-сервере PowerShell покажет редакцию, версию и сборку, а powercfg — действующую схему питания:

Get-CimInstance Win32_OperatingSystem |
  Select-Object Caption, Version, BuildNumber, OSArchitecture
powercfg /getactivescheme

Сравнивайте одинаковое окружение

Фиксируйте обновления, драйверы хранения и сети, защитное ПО, виртуальные адаптеры и службы. Смена ОС вместе с драйверами и ресурсами — сразу несколько переменных.

Питание проверяйте измерением

Профиль CPU задаётся не только гостевой ОС: важны физический узел и firmware. High Performance не является обязательным исправлением для любой 1С; эффект и энергопотребление проверяют под нагрузкой.

Microsoft описывает компромиссы схем питания Windows Server; команда выше только читает состояние (справочник powercfg). Не отключайте защитные механизмы и обновления ради неподтверждённого ускорения. Windows Standard/Datacenter также не заменяет проверку редакции самой SQL-СУБД.

Windows: от знакомых окон к записи счётчиков

На сервере приложения и сервере СУБД с графической оболочкой откройте диагностические окна. В Server Core используйте удалённое администрирование и доступные средства записи показателей. На терминальном сервере дополнительно посмотрите сеанс пользователя. Названия пунктов могут отличаться в зависимости от языка и версии Windows.

Диспетчер задач

Производительность → ЦП → Изменить график → Логические процессоры. Проверьте отдельные потоки, затем вкладку «Подробности» и PID процесса. Низкая общая загрузка не исключает занятость одного потока.

Монитор ресурсов

Диск / Память / Сеть. Найдите процесс, путь к файлу и время активности. Отличайте файлы базы, журнал транзакций, временные файлы и постороннюю нагрузку.

Системный монитор

Наборы сборщиков данных → Особый → Создать. Сохраните ряд измерений во время жалобы: CPU, доступная память, дисковая задержка и очередь, нужные процессы.

Как читать график

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

Открыть эти окна можно через «Выполнить» или PowerShell на нужном Windows-сервере:

taskmgr.exe
resmon.exe
perfmon.exe

Чтобы узнать доступные имена счётчиков именно на этой ОС, выполните:

typeperf -qx

На локализованной Windows названия счётчиков отличаются. Для записи выберите существующие локальные имена и нужный диск. Следующий пример годится для английских названий счётчиков и записывает минуту показаний с шагом в секунду в новый CSV в TEMP:

$counterCsv = Join-Path $env:TEMP ("onec-perf-" + (Get-Date -Format 'yyyyMMdd-HHmmss') + '.csv')
typeperf "\Processor(*)\% Processor Time" "\Memory\Available MBytes" "\PhysicalDisk(*)\Avg. Disk sec/Read" "\PhysicalDisk(*)\Avg. Disk sec/Write" -si 1 -sc 60 -f CSV -o $counterCsv

Ожидаемый результат — CSV с временными метками и выбранными рядами; отсутствие счётчика или прав нужно исправить, а не считать нулевой нагрузкой. Дисковая задержка здесь выражена в секундах: 0,020 секунды = 20 мс. Значение сравнивайте с нормальной работой своего хранилища и задержкой приложения. Синтаксис и запись CSV: Microsoft typeperf. После команды постоянный сборщик не остаётся; CSV сохраните с материалами инцидента.

Linux: дистрибутив, ядро и пакеты тоже часть стенда

«1С на Linux» может означать разные окружения: например, разные редакции Astra Linux, Альт, Debian или другого дистрибутива. Поддержку проверяют отдельно для сервера 1С, клиента и СУБД. Значение имеет точный релиз ОС, архитектура, ядро, библиотеки, пакеты СУБД и источник их обновлений, а не только семейство системы.

cat /etc/os-release
uname -r

Команды на Linux-сервере показывают данные дистрибутива и текущее ядро, ничего не перенастраивая. Результат приложите к версиям 1С и СУБД. При сравнении Windows и Linux сохраняйте сопоставимые данные, ресурсы, хранение и нагрузку: если одновременно сменить ОС, сборку PostgreSQL и процессор, причину разницы выделить нельзя.

Проверка администратора

Лимиты и параметры службы, права на каталоги, mount options, свободное место, подкачка, время и профиль ресурсов физического узла. Сверяйте с документацией конкретного поддерживаемого стека.

Проверка приложения

Внешние компоненты, работа с путями и регистрами имён, файловые и веб-интеграции, печать и фоновые задания. Затем — те же операции и APDEX на согласованных порогах.

Не меняйте массово sysctl, huge pages или лимиты по чужому списку «ускорения 1С». Для каждого параметра нужны применимость к версии, исходное значение, измеримая гипотеза и порядок возврата. Совместимость сверяют по требованиям 1С к ОС и документации поставщика выбранной СУБД.

Linux: CPU, память и диски во время задержки

Выполняйте команды на нужных серверах приложения и СУБД. mpstat и iostat входят в sysstat, vmstat — в procps; при отсутствии утилит установку пакетов согласуйте с порядком обслуживания. Для совпадения интервалов запускайте сборы в отдельных терминалах.

date -Is
mpstat -P ALL 1 10
iostat -xz -y 1 10
vmstat 1 10
  • CPU: сравните отдельные процессоры. %steal в гостевой Linux может указывать на время, отнятое гипервизором; нулевое значение не гарантирует отсутствие всех проблем физического узла. Документация mpstat.
  • Диск: r_await/w_await показывают среднее время запросов в мс вместе с очередью; aqu-sz — среднюю очередь. %util нельзя считать универсальным процентом исчерпанной производительности RAID или NVMe. -y исключает первый отчёт с начала загрузки. Документация iostat.
  • Память: у vmstat проверьте активность si/so и её совпадение с задержкой. Первая строка содержит усреднения с загрузки для части показателей; для текущего интервала используйте следующие. Свободная RAM сама по себе не описывает давление на память. Документация vmstat.

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

Сеть: доступность порта ещё не означает быструю 1С

Запускайте проверки с рабочего места, на котором возникает жалоба. В примере app1c.example.invalid замените на настоящее имя сервера; 1541 — пример порта менеджера кластера, а не полный перечень соединений вашей 1С. Для веб-клиента отдельно проверяют HTTPS и веб-сервер, для RDP — терминальный путь.

Test-NetConnection app1c.example.invalid -Port 1541 -InformationLevel Detailed
ping -n 20 app1c.example.invalid
pathping -n app1c.example.invalid

TcpTestSucceeded=True подтверждает установление TCP-соединения с указанным портом. Оно не проверяет проведение документов, весь диапазон рабочих соединений или скорость обмена. Microsoft Test-NetConnection.

Сравните задержку и потери в проблемном и штатном режиме. Отсутствие ответа ICMP не равняется недоступности 1С: ICMP может фильтроваться. Потери только на промежуточном маршрутизаторе при нормальном конечном узле могут отражать ограничение ответов самого маршрутизатора. pathping собирает статистику некоторое время. Microsoft pathping.

Практическая проверка

Сравните один сценарий через проводное подключение и исходный Wi-Fi/VPN, не меняя одновременно сервер и конфигурацию. Если на сервере рядом с 1С операция тоже медленная, продолжайте проверку приложения и СУБД. Если там быстрее — это повод исследовать клиент и путь доступа, а не готовое доказательство неисправности канала.

Инструменты 1С: сеансы, замер кода и технологический журнал

Сеансы и задания

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

Официальные инструменты администрирования 1С

Замер производительности

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

Как выглядит результат замера в 1С

Технологический журнал помогает связать серверные события с операцией. Настройка задаётся через logcfg.xml; путь поиска конфигурации и права службы проверьте для своей платформы и ОС. Собирайте нужные события коротким согласованным окном, контролируйте рост файлов и затем возвращайте прежнюю настройку. Запись всех событий без отбора может сама создать нагрузку. Не публикуйте SQL, контекст и журналы с рабочими данными. 1С: технологический журнал.

Управляемые блокировки 1С и блокировки СУБД — разные уровни. Отсутствие ожидающих SQL-процессов не исключает ожидание внутри платформы. Для углублённого анализа запросов, ожиданий и взаимоблокировок можно использовать Центр управления производительностью 1С; доступность и условия использования инструмента проверяют отдельно.

Общий журнал регистрации полезен для хронологии действий и ошибок, но не заменяет замер кода и технологический журнал. Начинайте с конкретного времени, сеанса и операции, а не с поиска самого большого файла.

PostgreSQL: важны сборка для 1С, настройки и обслуживание

Запишите не только major-версию, но и поставщика, полную сборку, расширения и совместимость с платформой. В перечне фирмы 1С есть, в частности, PostgreSQL с патчами для 1С, варианты Postgres Pro и Tantor: это не основание считать любые сборки одной версии взаимозаменяемыми. Проверяйте конкретную связку в матрице поддерживаемых СУБД. Сборки также публикует Postgres Professional; условия сопровождения и использования проверяют отдельно.

В SQL-клиенте, подключённом к нужному экземпляру, прочитайте текущую версию и параметры:

SELECT version();
SHOW server_encoding;
SHOW lc_collate;
SHOW shared_buffers;
SHOW work_mem;
SHOW max_connections;
  • Память: work_mem — не общий лимит на всю СУБД и даже не гарантированный предел на один запрос. Несколько операций и параллельных процессов могут потреблять память одновременно; учитывайте конкуренцию, а не задавайте максимум «на всякий случай». PostgreSQL 16: параметры ресурсов.
  • Обслуживание: проверьте autovacuum, актуальность статистики, долгие транзакции и рост таблиц. Уборка устаревших версий строк и обновление статистики — разные задачи; отключение autovacuum ради короткого теста не является оптимизацией эксплуатации. PostgreSQL 16: регулярное обслуживание.
  • Сравнение релизов: на копии проверяйте перенос, планы запросов, права, сортировки, расширения и результат бизнес-операций. Показатели одной SQL-команды не заменяют проверку всей конфигурации.

PostgreSQL: что выполняется сейчас и кто кого блокирует

Запросы выполняет администратор в SQL-клиенте, подключённом к нужному экземпляру PostgreSQL. Пример для PostgreSQL 16. Для просмотра чужих сеансов нужны соответствующие права, например роль pg_read_all_stats; выдачу прав поручите администратору. Замените onec_prod на реальное имя базы. Снимайте результаты в autocommit, не удерживая одну длинную транзакцию диагностики.

SELECT clock_timestamp() AS sampled_at, pid, usename, application_name,
       state, wait_event_type, wait_event,
       clock_timestamp() - query_start AS query_age,
       clock_timestamp() - xact_start AS transaction_age,
       left(query, 250) AS query_excerpt
FROM pg_stat_activity
WHERE datname = 'onec_prod'
  AND pid <> pg_backend_pid()
  AND state IN ('active', 'idle in transaction', 'idle in transaction (aborted)')
ORDER BY xact_start NULLS LAST
LIMIT 30;

Строка active может содержать ожидание; смотрите и wait_event. Для idle in transaction текст относится к последнему запросу, а возраст запроса не означает непрерывное исполнение. Пустой результат не доказывает отсутствия коротких задержек между снимками. PostgreSQL: pg_stat_activity и права просмотра.

Отдельный снимок SQL-блокировок:

SELECT pid AS waiting_pid,
       pg_blocking_pids(pid) AS blocking_pids,
       clock_timestamp() - query_start AS query_age,
       left(query, 250) AS query_excerpt
FROM pg_stat_activity
WHERE datname = 'onec_prod'
  AND wait_event_type = 'Lock'
ORDER BY query_start
LIMIT 20;

Сопоставьте PID блокирующих процессов с сеансами и временем транзакций. Запрос не завершает процессы; частый опрос функции создаёт дополнительную работу, поэтому не запускайте её в бесконечном цикле с миллисекундным интервалом. PostgreSQL: pg_blocking_pids.

Как найти тяжёлые SQL-запросы, которые уже закончились

Текущий список сеансов не хранит историю всех завершённых запросов. Если pg_stat_statements уже настроен в данном экземпляре и расширение доступно в подключённой базе, можно посмотреть накопленные показатели:

SELECT queryid, calls,
       round(total_exec_time::numeric, 1) AS total_ms,
       round(mean_exec_time::numeric, 1) AS mean_ms,
       rows, left(query, 250) AS query_excerpt
FROM pg_stat_statements
WHERE dbid = (SELECT oid FROM pg_database WHERE datname = current_database())
ORDER BY total_exec_time DESC
LIMIT 10;

Подключитесь к нужной базе и проверьте схему установки расширения. Это сумма с момента накопления статистики, а не обязательно причина сегодняшней жалобы. Для выбранного окна сравните два снимка по queryid и разницы счётчиков; учтите сбросы, вытеснение записей и перезапуски. Если модуль не подготовлен, его подключение через shared_preload_libraries требует планового перезапуска; не делайте этого ради первого снимка. PostgreSQL: pg_stat_statements.

План запроса — следующий этап

Нужны исходные условия, параметры, объём данных и соответствие запроса операции 1С. EXPLAIN ANALYZE действительно выполняет запрос: тяжёлую операцию исследуйте на подготовленной копии с контролем нагрузки. Не запускайте изменяющий данные SQL ради «посмотреть план» на рабочей базе. PostgreSQL: использование EXPLAIN.

MS SQL Server: год выпуска, CU, редакция и совместимость базы

«SQL Server 2022» описывает не всё. Фиксируйте сборку и cumulative update (CU), редакцию и compatibility level базы. Более новый движок и более высокий уровень совместимости — разные изменения: перенос базы не гарантирует, что её оптимизатор работает в том же режиме, который вы ожидали. Уровень совместимости меняют через тестирование запросов, а не автоматически ради номера версии. Microsoft: проверка compatibility level.

SELECT SERVERPROPERTY('ProductVersion') AS product_version,
       SERVERPROPERTY('ProductLevel') AS product_level,
       SERVERPROPERTY('ProductUpdateLevel') AS update_level,
       SERVERPROPERTY('Edition') AS edition;
SELECT name, compatibility_level
FROM sys.databases
WHERE name = N'onec_prod';

Выполняйте в SSMS на нужном экземпляре; замените имя базы. Ожидаемый результат — установленная версия/редакция и уровень базы. Отсутствующее значение update_level само по себе не является диагнозом.

Конкретный пример ограничений: SQL Server 2022
  • Standard: вычислительный предел экземпляра Database Engine — меньшее из 4 сокетов или 24 ядер; buffer pool — до 128 GB.
  • Express: меньшее из 1 сокета или 4 ядер; buffer pool — до 1 410 MB; размер реляционной базы — до 10 GB.
  • Developer: для разработки и тестирования, не для рабочей эксплуатации.

Лимит buffer pool не равен пределу всей памяти процесса. Это данные именно SQL Server 2022; на другие поколения их не переносят. Microsoft: редакции и ограничения SQL Server 2022.

Увеличение RAM или vCPU сверх ограничений экземпляра может не дать ожидаемого эффекта. После обновления сравнивайте рабочие операции, планы, ожидания и APDEX на прежних порогах. Значения MAXDOP, памяти и обслуживания назначают по измерениям; универсального набора для всех баз 1С нет.

SQL Server: текущие запросы и ожидания

В SSMS откройте новое окно запроса к нужному экземпляру. Для просмотра всех запросов SQL Server 2019 требуется VIEW SERVER STATE, для SQL Server 2022 — VIEW SERVER PERFORMANCE STATE. Пример только читает DMV:

SELECT TOP (20)
       SYSDATETIMEOFFSET() AS sampled_at,
       session_id, DB_NAME(database_id) AS database_name,
       status, command, blocking_session_id,
       wait_type, wait_time AS wait_ms,
       cpu_time AS cpu_ms, total_elapsed_time AS elapsed_ms,
       reads, writes, logical_reads
FROM sys.dm_exec_requests
WHERE session_id <> @@SPID
  AND DB_NAME(database_id) = N'onec_prod'
ORDER BY total_elapsed_time DESC;

Это снимок выполняющихся запросов, а не история. Положительный blocking_session_id помогает начать поиск блокирующего сеанса; специальные отрицательные значения требуют отдельной трактовки. Спящий сеанс с открытой транзакцией может не попасть в этот список. CPU, длительность и текущее ожидание описывают разные величины; у параллельных запросов есть ограничения счётчиков. Не завершайте сеанс только потому, что он оказался первым в таблице. Microsoft: sys.dm_exec_requests.

Для повторяющейся проблемы нужен сохранённый ряд измерений и анализ запросов в нужном окне. Инструмент и детализацию выбирайте под версию и нагрузку: подход Microsoft к мониторингу SQL Server.

Виртуальный сервер: смотрите и гостевую ОС, и физический узел

  • CPU: не только число vCPU, но и конкуренция за физические ядра, ожидание исполнения и фактическая нагрузка в момент операции.
  • Память: выделение гостевой машине, давление на память узла, ballooning и подкачка на обоих уровнях.
  • Диски: весь путь от виртуального диска до пула/СХД, соседние ВМ, backup и обслуживание.
  • Сеть: гостевой адаптер, виртуальный коммутатор, физические порты и путь к серверу СУБД.

Названия и смысл метрик отличаются у Proxmox VE, VMware vSphere, Hyper-V и российских платформ. Не переносите один порог между продуктами. Добавление vCPU проверяйте повторным измерением: больше виртуальных процессоров не означает автоматического ускорения одной операции. Microsoft: оценка процессорных ресурсов Hyper-V.

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

Что менять после диагностики и как проверить эффект

Подтверждённая причинаПредметное действиеПроверка результата
Конфликт заданийРазвести расписания с учётом сроков копирования и обменовТа же рабочая операция в прежнее проблемное окно
Долгая блокирующая операцияРазобрать границы транзакции и алгоритм с разработчикомВремя ожидания, корректность и параллельная работа пользователей
Дорогой запросПроверить отборы, код, план и актуальность статистикиТе же параметры, данные, число вызовов и длительность
Задержка храненияПроверить общий пул, носители, контроллер и конкурирующую нагрузкуДисковые метрики и время приложения в одном окне
Недостаток ресурсовИзменить подтверждённо ограничивающий ресурсПовторить сценарий и проверить соседние нагрузки
01Сохранить

Замеры, исходную настройку, проверенную копию перед изменениями.

02Изменить одно

Одна гипотеза и согласованное окно с ответственным.

03Повторить

Тот же сценарий, сопоставимая нагрузка и проверка данных.

04Принять или вернуть

Сохранить рабочий результат либо вернуть прежнюю настройку.

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

Возврат параметров и восстановление базы — разные процедуры. Если изменение затрагивает формат или данные, заранее проверяют путь восстановления и совместимость версий; одного возвращённого файла настроек недостаточно. Подробнее — резервное копирование 1С и проверка восстановления.

Что передать специалисту: две готовые памятки

Карточка инцидента

Операция, масштаб, версии, время, изменения и собранные показатели.

Скачать карточку · TXT

Протокол «до / после»

Условия повторного замера, гипотеза, изменение, результат и решение о возврате.

Скачать протокол · TXT

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

Диагностика 1С, сопровождение и облачные ресурсы

ИТ-аутсорсинг: найти причину и контролировать результат

  • Собрать показатели сервера, базы и сети.
  • Сопоставить жалобы с заданиями и событиями.
  • Согласовать изменения с ответственными за конфигурацию.
  • Настроить наблюдение за повторением проблемы.

Обсудим состав диагностики, сопровождения и критерии приёмки.

Обсудить диагностику 1С

Аренда облачных ресурсов: проверить подходящую конфигурацию

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

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

Обсудить ресурсы для 1С

Вопросы и ответы о медленной работе 1С

Почему 1С тормозит, хотя CPU занят только на 20%?

Общая загрузка скрывает распределение по потокам. Возможны также ожидания блокировок, диска, сети или внешней системы. Сопоставьте отдельные процессоры, текущие ожидания и время операции.

Достаточно ли добавить оперативную память?

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

Почему после обновления стало медленнее?

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

Можно ли просто завершить блокирующий сеанс?

Это может прервать работу и вызвать длительный откат транзакции. Сначала определяют владельца операции, её назначение и последствия; решение принимают по регламенту. Завершение сеанса не заменяет устранение причины блокировки.

Чем отличается диагностика файловой базы?

В файловом варианте нет отдельной SQL-СУБД и кластера серверов 1С, поэтому SQL-запросы из статьи не применяются. Проверяют клиент, файловый сервер, SMB, сеть, конкуренцию за файл и согласованный сценарий. Перенос в клиент-серверный вариант оценивают отдельно.

Ускорится ли 1С после переноса в облако?

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

Чем APDEX отличается от среднего времени операции?

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

Достаточно ли хорошего результата нагрузочного теста сервера?

Нет. Он характеризует выбранный сценарий и условия. Для вашей конфигурации нужны её операции, данные, расширения, реальные конфликты и параллельность. Синтетическое число не переводится напрямую в количество сотрудников.