Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

PERF_QUEUE_BOTTLENECK 1С:Предприятие и СУБД

Гайд 1С: Анализ очередей ожидания на CPU и дисковой подсистеме сервера СУБД

Обновлено: 26.08.2026 · Официальная документация ↗
  • Интерфейс 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;
💡 Практика специалистов: Не путайте загрузку диска (%util) со временем отклика (await / disk transfer time). На SSD %util может быть 100%, но если await составляет 0.3 мс, накопитель справляется с нагрузкой отлично.

Частые вопросы (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С.

Полезные материалы
Рекомендуем