«1С тормозит» — фраза, которая приводит в ужас любого руководителя и бухгалтера. Документ проводится несколько минут, отчет собирается полчаса, а в конце дня сотрудники просто сидят и ждут, пока «посчитается». Самое обидное, что покупка нового супер-сервера часто не помогает, а иногда даже усугубляет ситуацию.
Почему? Потому что проблема может быть где угодно: в медленных дисках, нехватке памяти, плохой сети или даже в одной кривой строчке кода, написанной 10 лет назад.
В этой статье мы составили маршрутную карту диагностики. Мы пройдем от «железа» до программных настроек и научимся находить то самое «бутылочное горлышко», которое душит производительность вашей 1С.
Этап 1. Сбор первичных жалоб (Симптоматика)
Прежде чем лезть в серверную, задайте пользователям три вопроса:
- Когда именно тормозит? (При открытии справочника, при проведении документа, при закрытии месяца, с утра у всех или после обеда?)
- Кто именно тормозит? (Один конкретный бухгалтер или весь отдел?)
- Что изменилось? (Поставили обновление, подключили нового сотрудника, начали загружать прайс на 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)
Даже на мощном сервере база данных может тормозить, если она неправильно настроена или «распухла».
- Актуальная статистика и индексы: База данных — это как книга с оглавлением. Если оглавление (индексы) устарело, SQL Server будет листать всю книгу (сканировать таблицу) вместо того, чтобы открыть нужную страницу.
- Признак: В плане запроса (который можно посмотреть через MSSQL Profiler) сплошные Table Scan, а не Index Seek.
- Решение: Регулярно обновлять статистику и перестраивать индексы (регламентный регламент!).
- Файл подкачки SQL: Убедитесь, что файлы базы данных не фрагментированы и заранее выделены под будущий рост (авто-прирост должен быть включен, но не слишком маленькими кусочками, чтобы не фрагментировать диск).
Этап 4. Проверка кода и настроек самой 1С
Если с «железом» все в порядке, а 1С все равно тормозит, проблема в том, как она работает.
- Встроенная «Панель производительности» 1С
Это ваш главный друг. Запустите 1С в режиме «Конфигуратор» -> «Администрирование» -> «Панель производительности» (или нажмите Ctrl+Shift+F2 прямо в толстом клиенте).
Она покажет:- Вызовы сервера: Если их слишком много, значит, код написан неоптимально.
- Время ожидания на блокировках: Пользователи мешают друг другу.
- Технологический журнал (ТЖ)
Это «черный ящик» для профи. Включается в настройках сервера 1С. Позволяет поймать конкретные медленные запросы и операции. Без него не обойтись при сложных тормозах. - Проверка блокировок
Если тормозит только при проведении документов, скорее всего, возник конфликт блокировок. Один пользователь провел документ и держит блокировку, а остальные ждут.- В управляемых формах проверьте настройки «Управляемые блокировки» (Автоматически / Управляемо). Часто помогает переход на автоматический режим.
Чек-лист: «Что проверить, если тормозит 1С»
Распечатайте это и держите под рукой.
- Память: Хватает ли RAM, не уходит ли система в своп (файл подкачки)?
- Диски: SSD ли это? Время отклика < 20 мс?
- SQL Server: Не переполнен ли журнал транзакций? Актуальны ли индексы?
- Сеть: Пингуется ли сервер без потерь? Нет ли коллизий на коммутаторе?
- Код: Есть ли медленные запросы в «Панели производительности»? Растет ли время блокировок?
- Вирусы и бекапы: Не сканирует ли антивирус папку с базой 1С в реальном времени? Не запускается ли бекап базы в рабочее время?