Заявка на консультацию
Оставьте ваши данные и наши менеджеры свяжуться с вами в ближайшее время
Блог

10 проверенных способов ускорить работу сервера 1С без апгрейда железа

Как ускорить сервер 1С без покупки нового железа: оптимизация СУБД, кластера 1С, ОС и сети. 10 проверенных приёмов для системного администратора.
Ускорить сервер 1С без покупки нового железа в большинстве случаев реально. Жалобы пользователей на тормоза почти всегда сначала прилетают к айтишникам, а айтишники, не разобравшись, идут к директору с просьбой докупить процессоры или память. Между этими двумя шагами обычно есть запас в виде настроек: их крутят на трёх уровнях - СУБД, платформа 1С, операционная система и сеть.
Ниже - десять приёмов, которые системный администратор может выполнить сегодня. Все безопасные: переустанавливать сервер не нужно, всё работает на существующей инфраструктуре. В конце - короткий список симптомов, при которых оптимизация уже не помогает и без апгрейда железа не обойтись.
Сервер 1С в центре обработки данных с мониторингом производительности, графики нагрузки на экранах

Где обычно находится узкое место в работе 1С

Прежде чем что-то крутить, поймите, во что упёрлись. Нагрузка лежит на четырёх уровнях: процессор (CPU), память (RAM), дисковая подсистема и сеть. Узкое место чаще всего в одном из них, там и нужно работать.
Простые признаки. CPU: процесс rphost постоянно висит на 90–100%. Память: rphost много читает с диска, виден постоянный своп. Диск: high disk queue и длинные ожидания ввода-вывода. Сеть: лаги клиента при низкой загрузке сервера.
Как мерить. В Windows - Performance Monitor плюс счётчики SQL Server. В Linux - vmstat, iostat и sar. На стороне платформы 1С - технологический журнал и журнал регистрации. Если у вас уже есть Zabbix, PRTG или Prometheus, посмотрите счётчики rphost и СУБД оттуда.
И главное правило: оптимизация без замеров «до и после» - это гадание. Зафиксируйте базовую производительность (тест Гилёва, время открытия типового документа, время проведения партионного отчёта), потом крутите. Иначе через неделю вы не вспомните, что именно сработало.
Администратор анализирует метрики производительности на мониторе, диаграммы нагрузки CPU и памяти

Способы 1–4: оптимизация СУБД

MS SQL: что подкрутить под 1С

Оптимизация ms sql для 1С начинается с двух базовых задач - индексы и память.
Способ 1. Реиндексация и обновление статистики. Фрагментированные индексы - главный убийца скорости 1С на MS SQL. Настройте ночной job в SQL Server Agent: REORGANIZE для индексов с фрагментацией от 5 до 30%, REBUILD выше 30%. Сразу после реиндексации - UPDATE STATISTICS, иначе оптимизатор будет работать по старым данным.
Способ 2. Параметры памяти и tempdb. Задайте Maximum server memory с запасом для ОС, оставьте Min server memory не менее 10–15% от RAM сервера или 2–4 ГБ. tempdb положите на отдельный быстрый NVMe-том и разбейте на несколько data-файлов по числу ядер CPU, но не больше восьми. Это базовая рекомендация Microsoft, для 1С она работает почти всегда.

PostgreSQL для 1С: что подкрутить

Способ 3. Настройка postgresql.conf под объём RAM сервера. Базовые ориентиры: shared_buffers около 25% от RAM, effective_cache_size около 50–75%. work_mem держите небольшим, чтобы не съедало память на каждый сеанс. И обязательно используйте сборки от Postgres Pro или 1С - обычный community PostgreSQL под нагрузку 1С не оптимизирован.
Способ 4. VACUUM и автовакуум. Накопление мёртвых строк в больших таблицах 1С быстро деградирует производительность. Включите автовакуум, для крупных таблиц регистров и журналов задайте более агрессивные autovacuum_vacuum_scale_factor и autovacuum_analyze_scale_factor (типовой ориентир — 0,05 вместо дефолтных 0,2). По расписанию запускайте VACUUM ANALYZE на критических таблицах в окно технических работ.

Способы 5–7: платформа 1С и кластер

Производительность сервера 1С дальше тянут уже на стороне самой платформы - три приёма, которые относительно приемлемы по времени и часто заметно меняют картину.
Способ 5. Регламентные операции 1С - на ночь. Тестирование и исправление, переиндексация информационной базы, реструктуризация при обновлениях - это тяжёлые задачи. Если они идут в рабочее время, пользователи висят. Перенесите их в окно с минимальной нагрузкой через назначенные задания и расписание. Для крупной 1С:ERP это часто и есть главная экономия времени.
Способ 6. Несколько рабочих процессов rphost. Один rphost на всех - узкое место по памяти. Включите «Безопасное расходование памяти» в свойствах рабочего процесса, задайте «Максимум памяти на один сеанс» и «Максимум информационных баз на процесс». Кластер автоматически развернёт нужное число rphost - один зависший сеанс не уронит остальным рабочий день.
Способ 7. Журнал регистрации в SQL вместо SQLite. Формат SQLite по умолчанию - узкое место для крупных баз: на запись возникают блокировки, а открытие журнала за длительный период тормозит. Переведите журнал в формат SQL через консоль администрирования. Эффект заметен сразу: блокировки уходят, журнал листается быстрее.
Кластер серверов 1С с несколькими рабочими процессами rphost, диаграмма распределения нагрузки

Способы 8–10: ОС и сетевая обвязка

Что подкрутить в ОС, антивирусе и сети

Настройка ос для 1С - та зона, где админы чаще всего «забывают» три простых вещи и потом удивляются медленной работе.
Способ 8. Исключения антивируса для каталогов 1С и СУБД. Антивирус, проверяющий каждый файл базы на лету, превращает MS SQL в улитку. Добавьте в исключения каталог srvinfo сервера 1С, папки данных и журналов СУБД (data, log, tempdb), исполняемые файлы 1С и SQL Server. Полностью отключать антивирус не нужно и опасно - достаточно точечных исключений.
Способ 9. Режим питания «Высокая производительность». Windows Server и многие сборки Linux по умолчанию работают в сбалансированном режиме - CPU снижает частоту при простое. Для сервера 1С это даёт лаги при пиковой нагрузке. Поставьте «Высокая производительность» в Power Options для Windows или performance governor для Linux. В BIOS отключите агрессивные C-states и Energy Efficient Turbo - 1С чувствительна к латентности процессора.
Способ 10. Сетевые настройки между сервером 1С и СУБД. Если 1С и СУБД на разных машинах, выделите отдельную сеть для трафика между ними, поднимите MTU до Jumbo frames (если оборудование поддерживает) и отключите энергосбережение на сетевой карте. На больших базах разница в скорости отчётов заметна без всяких замеров.
Кабельная инфраструктура сети, современные сетевые коммутаторы и оборудование в стойке

Чего точно не делать

Несколько антипаттернов, которые на форумах встречаются часто и которые портят сервер быстрее любых лагов.
  1. Не крутите параметры наугад без замеров до и после. Хорошо настроенный параметр под одну нагрузку может ухудшить производительность под другой, без бенчмарка вы этого не увидите.
  2. Не отключайте антивирус полностью. Достаточно исключить нужные каталоги. Полное отключение - это прямой риск шифровальщика и потеря всей базы. Объяснять руководству, почему данных нет, тяжелее, чем настроить исключения.
  3. Не удаляйте «лишние» индексы из служебных таблиц 1С. То, что выглядит как мусор, может быть нужно платформе при обновлении конфигурации. После такой «чистки» обновление вылетит с ошибкой в самый неудобный момент.
  4. Не копируйте значения параметров СУБД из чужих статей без поправки на свой объём RAM и нагрузку. shared_buffers в 16 ГБ на сервере с 32 ГБ RAM - это не «оптимально», это близко к падению по памяти. И не запускайте тестирование и исправление информационной базы в рабочее время, пользователи будут висеть на блокировках весь день, а потом эту историю долго припомнят при каждом ускорении.

Когда оптимизация уже не помогает

Симптомы, при которых дальше тянуть настройки бесполезно - нужен апгрейд железа или серьёзная переработка инфраструктуры.
  1. Все рабочие процессы rphost постоянно держат CPU около 100%, регламент уже на ночь. Это потолок ядер, нужны более мощные процессоры.
  2. Объём базы и активная работа уперлись в RAM, своп активен постоянно, добавлять память некуда. Сервер встал в потолок памяти.
  3. Дисковая подсистема выдаёт длинные ожидания (high IO wait) даже при простаивающем CPU. На SATA SSD стоит крупная база - пора на NVMe или быстрый SAS-массив. И ещё типичная картина: сеть между сервером 1С и СУБД полностью загружена 1 Gb-каналом - пора на 10 Gb.
  4. Если несколько ресурсов одновременно лежат на пределе и оптимизация уже не помогает - разумнее не подбирать железо наугад, а начать с аудита ИТ-инфраструктуры: он покажет, упёрся сервер в CPU, в память или в диски, и что именно стоит менять.

Заключение

Десять приёмов выше - это бесплатный «тюнинг», который во многих случаях возвращает производительности на приемлемый уровень. Главное правило простое: мерьте до и после, иначе через неделю не вспомните, что именно сработало.
Если все десять пунктов прошли, а пользователи всё равно жалуются на тормоза - проблема в железе, а не в настройках. Когда оптимизация выжата до конца, единственный честный ход посмотреть готовые серверы для 1С под текущее число пользователей и спланировать миграцию вместо ещё одного круга настроек.