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

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

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

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

Гайд 1С: Настройка дискового планировщика (none/mq-deadline) в Linux

Обновлено: 26.08.2026 · Официальная документация ↗
  • Аномальные задержки дискового отклика на современных NVMe накопителях под нагрузкой 1С.
  • Неэффективное использование очередей многопоточного контроллера блочных устройств.
  • Высокие значения await в утилите iostat при умеренном объеме передаваемых данных.

1. Принципы выбора планировщика ввода-вывода

  • Для NVMe накопителей: Планировщик none (аппаратный контроллер NVMe самостоятельно обрабатывает до 64 000 очередей, оверхед ядра Linux на сортировку не требуется).
  • Для SATA/SAS SSD: Планировщик mq-deadline или none.
  • Для виртуальных дисков (KVM / VMware / Hyper-V): Планировщик none (управление очередями переносится на уровень гипервизора/СХД).
  • Для традиционных HDD: Планировщик bfq или mq-deadline.

2. Проверка и изменение текущего планировщика

# Проверка текущего планировщика для диска sda и nvme0n1
cat /sys/block/sda/queue/scheduler
cat /sys/block/nvme0n1/queue/scheduler

# Временное переключение 'на лету'
echo none > /sys/block/nvme0n1/queue/scheduler
echo mq-deadline > /sys/block/sda/queue/scheduler

3. Постоянная фиксация через правила Udev

Создайте файл правил /etc/udev/rules.d/60-io-schedulers.rules:

# NVMe диски -> none
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"

# SATA/SAS SSD диски -> mq-deadline
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"

# Механические HDD диски -> bfq
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"

Примените правила udev:

udevadm control --reload-rules && udevadm trigger
💡 Практика специалистов: Для высоконагруженных NVMe дисков СУБД одновременно с планировщиком 'none' увеличивайте глубину очереди: echo 1024 > /sys/block/nvme0n1/queue/nr_requests.

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

Почему планировщик CFQ устарел и не должен использоваться?

CFQ (Completely Fair Queuing) был разработан для механических HDD с одной физической головкой. На современных SSD и NVMe алгоритмы CFQ создают искусственные задержки и блокируют параллельные очереди.

Что означает планировщик 'none'?

Режим 'none' (в архитектуре blk-mq) означает полное отсутствие промежуточной очереди и сортировки запросов в ядре — команды ввода-вывода направляются напрямую в аппаратные очереди контроллера накопителя.

Как проверить, считает ли Linux диск твердотельным (SSD)?

Выполните: cat /sys/block/sdX/queue/rotational. Значение 0 означает SSD/NVMe, значение 1 — вращающийся шпиндель HDD.

Влияет ли планировщик на файловые операции сервера приложений 1С?

Да, правильный выбор планировщика none/mq-deadline ускоряет работу с временными файлами, сеансовыми данными и каталогами технологического журнала 1С.

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