Гайд 1С: Анализ очередей ожидания на CPU и дисковой подсистеме сервера СУБД
- Интерфейс 1С 'замирает' у всех пользователей одновременно на несколько секунд (микрофризы).
- Длина очереди процессора (Processor Queue Length) превышает количество ядер CPU в 2 и более раз.
- Утилизация дисков (Disk % Idle Time) падает до 0% при резком росте Average Disk Sec/Transfer (> 20 мс).
- Рост сессий СУБД в статусах ожидания блокировок и ввода-вывода.
1. Анализ очередей процессора в Windows Server (PerfMon)
Добавьте и отслеживайте в Системном мониторе (perfmon.exe) следующие счетчики:
System \ Processor Queue Length: критично, если среднее значение > (Количество ядер * 2) в течение 5 минут.Processor(_Total) \ % Processor Time: загрузка выше 85% означает нехватку вычислительных ресурсов или неоптимальные запросы СУБД.Process(rphost*) \ % Processor Time: детализация потребления CPU конкретными рабочими процессами 1С.
2. Анализ очередей ввода-вывода в Linux (iostat, vmstat)
# Анализ очередей CPU и переключений контекста (шаг 1 сек, 10 итераций)
vmstat 1 10
# Столбец 'r' (running tasks) не должен превышать число vCPU.
# Анализ расширенной статистики дисков
iostat -xz 1 10
# Метрика 'aqu-sz' (длина очереди) не должна превышать 2-3 на диск.
# Метрика '%util' близкая к 100% указывает на дисковое насыщение.3. Определение ожиданий на стороне СУБД
Для PostgreSQL (анализ блокирующих ожиданий):
SELECT wait_event_type, wait_event, count(*)
FROM pg_stat_activity
WHERE state = 'active' AND wait_event IS NOT NULL
GROUP BY wait_event_type, wait_event
ORDER BY 3 DESC; Частые вопросы (FAQ)
Какая длина очереди диска считается критической для баз данных 1С?
Для традиционных HDD критической считалась очередь > 2. Для современных массивов All-Flash / NVMe показатель очереди (aqu-sz в Linux или Current Disk Queue Length в Windows) может подниматься до 16–32 без деградации, если средняя задержка операции (await / latency) остается ниже 1–2 мс.
О чем говорит высокая длина очереди процессора при низкой общей загрузке CPU (например, 30%)?
Это признак сильной конкуренции за блокировки (Spinlocks/Mutexes) или частого переключения контекста потоков (Context Switching), когда потоки rphost или СУБД вытесняются и встают в очередь ожидания освобождения системных ресурсов.
Как счетчик Context Switches / sec помогает локализовать проблему?
Значения более 15 000 – 20 000 переключений на ядро в секунду указывают на избыточное дробление пула потоков, проблемы с параллелизмом (MAXDOP) или чрезмерное число активных фоновых заданий 1С.
Как выявить конкретный rphost, создающий очередь процессора?
Используйте Process Explorer или команду top/htop с включенным отображением потоков (нажатие 'H' в htop), сопоставив PID процесса с идентификатором в консоли администрирования кластера 1С.