Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

Мониторинг длины очереди диска и очередей транзакций СУБД для 1С

Обновлено: 15.09.2026  ·  Официальная база знаний

Симптомы перегрузки дисковой подсистемы 1С

Пользователи 1С жалуются на зависание проведения документов, долгую блокировку форм при подборе номенклатуры и ошибки «Конфликт блокировок при выполнении транзакции». В отчетах производительности APDEX фиксируются провалы ниже 0.7.

МетрикаНормальное значениеКритический порог
Avg Disk sec/Read (Задержка чтения)< 10-12 мс> 20-25 мс (дисковый затор)
Avg Disk sec/Write (Задержка записи)< 5 мс (с RAID/BBU)> 15 мс (риск потери темпа транзакций)
Current Disk Queue Length< 2 на каждый шпиндель> 5-10 на массив постоянной очереди

Методология анализа задержек ввода-вывода и транзакций

  1. Анализ очередей и задержек через счетчики системного монитора (Perfmon):
    • PhysicalDisk(*)\Current Disk Queue Length: моментальный снимок очереди запросов к накопителю.
    • PhysicalDisk(*)\Avg. Disk sec/Transfer: реальное суммарное время реакции физического диска на операцию ввода-вывода.
  2. Поиск ожиданий дискового ввода-вывода на стороне SQL Server: выполните запрос для обнаружения узких мест хранилища:
    SELECT wait_type, waiting_tasks_count, wait_time_ms / 1000.0 AS wait_time_sec,
           100.0 * wait_time_ms / SUM(wait_time_ms) OVER() AS percentage
    FROM sys.dm_os_wait_stats
    WHERE wait_type IN ('PAGEIOLATCH_SH', 'PAGEIOLATCH_EX', 'WRITELOG', 'ASYNC_NETWORK_IO')
    ORDER BY wait_time_ms DESC;
  3. Проверка задержек на уровне отдельных файлов баз данных 1С:
    SELECT DB_NAME(database_id) AS DatabaseName, file_id,
           io_stall_read_ms / num_of_reads AS AvgReadLatency_ms,
           io_stall_write_ms / num_of_writes AS AvgWriteLatency_ms
    FROM sys.dm_io_virtual_file_stats(NULL, NULL)
    WHERE num_of_reads > 0 AND num_of_writes > 0
    ORDER BY AvgReadLatency_ms DESC;

Расшифровка ожиданий: Ожидание WRITELOG говорит о том, что транзакции 1С упираются в скорость записи на диск с логом транзакций (.ldf). Вынесите файлы журнала LDF на отдельный массив высокоскоростных накопителей (NVMe/RAID-10).

Практический опыт инженера: Практика ITSTM: Включите на сервере Windows опцию Perform Volume Maintenance Tasks (Мгновенная инициализация файлов — Instant File Initialization) для сервисной учетной записи SQL Server. Это исключит дисковые очереди при автоматическом расширении баз данных 1С.

Частые вопросы (FAQ)

Почему метрика Current Disk Queue Length может врать на SSD и SAN?

Счетчик Current Disk Queue Length был разработан для шпиндельных HDD. Современные SSD и SAN массивы поддерживают тысячи параллельных очередей (NVMe deep queues), поэтому ориентироваться нужно строго на метрику Avg Disk sec/Read и Write.

Что означает высокое ожидание PAGEIOLATCH_SH в 1С?

SQL Server не находит нужные данные в оперативной памяти (Buffer Pool) и вынужден вычитывать страницы данных с физического диска. Требуется добавить RAM серверу или оптимизировать тяжелые запросы 1С.

Как изолировать базу tempdb для снятия дисковой очереди?

Базу tempdb необходимо размещать на самых быстрых дисках и разбивать на несколько файлов данных одинакового размера (по количеству ядер CPU, но не более 8).

Какая задержка записи в лог транзакций считается идеальной для 1С?

Для высоконагруженных систем 1С задержка записи лога (Avg Disk sec/Write для файла ldf) не должна превышать 1-3 миллисекунд.