Тормозит 1С: ищем «бутылочное горлышко» в сервере или настройках

«1С тормозит» — фраза, которая приводит в ужас любого руководителя и бухгалтера. Документ проводится несколько минут, отчет собирается полчаса, а в конце дня сотрудники просто сидят и ждут, пока «посчитается». Самое обидное, что покупка нового супер-сервера часто не помогает, а иногда даже усугубляет ситуацию.

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

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

Этап 1. Сбор первичных жалоб (Симптоматика)

Прежде чем лезть в серверную, задайте пользователям три вопроса:

  1. Когда именно тормозит? (При открытии справочника, при проведении документа, при закрытии месяца, с утра у всех или после обеда?)
  2. Кто именно тормозит? (Один конкретный бухгалтер или весь отдел?)
  3. Что изменилось? (Поставили обновление, подключили нового сотрудника, начали загружать прайс на 500 000 позиций?)

Ответы сразу сузят круг поиска. Если тормозит у всех и всегда — проблема в сервере или сети. Если у одного — возможно, у него старый компьютер или вирус. Если только при закрытии месяца — это особенности расчетов себестоимости.

Этап 2. Проверка «бутылочного горлышка» в аппаратной части

Здесь нам понадобятся инструменты мониторинга. Для Windows — это стандартный PerfMon (Диспетчер задач не подходит, он показывает общую картину, но не детали). Для Linux — утилиты top, iostat, vmstat.

1. Дисковая подсистема (Самое частое узкое место)

1С — очень активный пользователь диска. Она постоянно читает и пишет данные. Если диски медленные — 1С будет тормозить всегда.

  • Как проверить: Откройте «Диспетчер задач» -> «Производительность» -> «Диск». Посмотрите на график «Время отклика диска» (Average Disk Latency).
    • Норма: < 10-15 мс (миллисекунд). Если вы используете старый HDD, норма до 20 мс.
    • Проблема: > 30-50 мс. Это значит, что диск не справляется.
    • Критично: > 100 мс. Система стоит.
  • Что делать:
    • Убедитесь, что база 1С и СУБД (MS SQL/PostgreSQL) лежат на SSD (желательно NVMe). HDD для 1С в 2024 году — это моветон.
    • Проверьте, не заполнен ли диск до отказа (осталось менее 10-15% свободного места).
    • Для MS SQL: убедитесь, что файлы базы данных (.mdf) и логов (.ldf) разнесены на разные физические диски (даже если это разные разделы одного SSD, толку мало, но с SSD это не так критично).

2. Оперативная память (RAM)

1С и SQL Server очень прожорливы до памяти. SQL Server старается закешировать все данные в RAM, чтобы быстро их отдавать.

  • Как проверить: В Диспетчере задач смотрим вкладку «Производительность» -> «Память».
    • Норма: Есть свободная память (хотя бы 10-15%). SQL Server может съедать почти всю память — это нормально, так и задумано (он отдаст ее, если попросят другие приложения).
    • Проблема: Постоянная нехватка (график памяти подпирает потолок) приводит к тому, что система начинает скидывать данные в файл подкачки (на медленный диск) — это называется «своппинг» и убивает производительность.
  • Что делать:
    • Добавить оперативной памяти. Для сервера 1С с базой в 50 ГБ, нужно минимум 64-128 ГБ RAM (чтобы вся активная часть базы поместилась в кэш SQL).
    • Проверить настройки максимальной памяти для SQL Server. Частая ошибка: SQL Server забирает всю память, не оставляя ничего ОС и серверу 1С. Нужно выставить лимит (например, оставить 4-8 ГБ для системы).

3. Процессор (CPU)

1С любит высокие частоты, а не количество ядер. Для типовых операций (проведение документов) критически важна скорость одного ядра.

  • Как проверить: В Диспетчере задач на вкладке «Производительность» -> «ЦП».
    • Норма: Загрузка процессора распределена равномерно, но не под 100% постоянно. В пики (закрытие месяца) возможны скачки до 100%, но они должны быстро спадать.
    • Проблема: Одно или два ядра загружены под 100%, а остальные простаивают. Это и есть «бутылочное горлышко» — 1С уперлась в частоту ядра.
  • Что делать:
    • Если вы используете виртуализацию, не давайте виртуальной машине слишком много виртуальных ядер (vCPU). Оптимально для 1С: 4-8 мощных ядер, а не 32 слабых.
    • В BIOS сервера включите режим максимальной производительности (отключите энергосбережение C-States).

4. Сеть

Если сервер базы данных и сервер приложений 1С (или клиентские места) физически разделены, сеть может быть тормозом.

  • Как проверить: Скопируйте большой файл (1-2 ГБ) с сервера на рабочую станцию. Скорость должна соответствовать заявленной (хотя бы 50-100 МБ/сек для гигабитной сети).
  • Что делать: Проверить настройки сетевых карт (Jumbo Frames, разгрузку CPU).

Этап 3. Проверка настроек СУБД (MS SQL / PostgreSQL)

Даже на мощном сервере база данных может тормозить, если она неправильно настроена или «распухла».

  1. Актуальная статистика и индексы: База данных — это как книга с оглавлением. Если оглавление (индексы) устарело, SQL Server будет листать всю книгу (сканировать таблицу) вместо того, чтобы открыть нужную страницу.
    • Признак: В плане запроса (который можно посмотреть через MSSQL Profiler) сплошные Table Scan, а не Index Seek.
    • Решение: Регулярно обновлять статистику и перестраивать индексы (регламентный регламент!).
  2. Файл подкачки SQL: Убедитесь, что файлы базы данных не фрагментированы и заранее выделены под будущий рост (авто-прирост должен быть включен, но не слишком маленькими кусочками, чтобы не фрагментировать диск).

Этап 4. Проверка кода и настроек самой 1С

Если с «железом» все в порядке, а 1С все равно тормозит, проблема в том, как она работает.

  1. Встроенная «Панель производительности» 1С
    Это ваш главный друг. Запустите 1С в режиме «Конфигуратор» -> «Администрирование» -> «Панель производительности» (или нажмите Ctrl+Shift+F2 прямо в толстом клиенте).
    Она покажет:
    • Вызовы сервера: Если их слишком много, значит, код написан неоптимально.
    • Время ожидания на блокировках: Пользователи мешают друг другу.
  2. Технологический журнал (ТЖ)
    Это «черный ящик» для профи. Включается в настройках сервера 1С. Позволяет поймать конкретные медленные запросы и операции. Без него не обойтись при сложных тормозах.
  3. Проверка блокировок
    Если тормозит только при проведении документов, скорее всего, возник конфликт блокировок. Один пользователь провел документ и держит блокировку, а остальные ждут.
    • В управляемых формах проверьте настройки «Управляемые блокировки» (Автоматически / Управляемо). Часто помогает переход на автоматический режим.

Чек-лист: «Что проверить, если тормозит 1С»

Распечатайте это и держите под рукой.

  1. Память: Хватает ли RAM, не уходит ли система в своп (файл подкачки)?
  2. Диски: SSD ли это? Время отклика < 20 мс?
  3. SQL Server: Не переполнен ли журнал транзакций? Актуальны ли индексы?
  4. Сеть: Пингуется ли сервер без потерь? Нет ли коллизий на коммутаторе?
  5. Код: Есть ли медленные запросы в «Панели производительности»? Растет ли время блокировок?
  6. Вирусы и бекапы: Не сканирует ли антивирус папку с базой 1С в реальном времени? Не запускается ли бекап базы в рабочее время?