К статье
Практический материал

Администрирование · 13 мин

Сколько оперативной памяти нужно серверу 1С

Как рассчитать объём оперативной памяти для сервера 1С: по числу пользователей, размеру базы и режиму работы. Таблицы, формулы, проверка нехватки RAM.

Нехватка оперативной памяти — самая частая причина «тормозов» 1С, которую администраторы почему-то ищут в последнюю очередь. При этом симптомы характерные: база работает нормально утром, а к середине дня начинает подвисать; проведение документов занимает минуты; пользователи жалуются на вылеты тонкого клиента. Всё это типичные признаки того, что рабочие процессы сервера 1С упёрлись в лимит RAM и система ушла в файл подкачки.

Универсальной цифры «сколько памяти нужно» не существует: объём зависит от числа одновременно работающих пользователей, размера информационной базы, конфигурации, режима работы (файловый или клиент-серверный) и того, что ещё крутится на той же машине — СУБД, веб-сервер, службы интеграции. Но есть рабочие эмпирические формулы и ориентиры, которые позволяют рассчитать объём с запасом и не переплатить за лишние планки.

Ниже — практический расчёт для типовых сценариев: от небольшого файлового сервера на 5 пользователей до кластера с MS SQL или PostgreSQL на сотни сеансов. Отдельно разберём, как проверить, что проблема именно в памяти, а не в дисках или настройках СУБД.

От чего зависит потребление памяти сервером 1С

Основные потребители RAM на сервере 1С — это рабочие процессы rphost (в клиент-серверном режиме) или процессы самой платформы при файловой работе. Каждый рабочий процесс обслуживает несколько сеансов, держит в памяти кэш метаданных конфигурации, данные сеансов и результаты запросов. Тяжёлые конфигурации вроде ERP или Комплексной автоматизации требуют заметно больше памяти на сеанс, чем лёгкие вроде «Управления торговлей» или «Бухгалтерии».

Второй крупный потребитель — СУБД, если она стоит на той же машине. MS SQL Server и PostgreSQL активно кэшируют данные в память: чем больше буферный пул, тем меньше обращений к диску. Если база занимает 50 ГБ, а под СУБД выделено 4 ГБ, большинство запросов будет идти на диск, и никакой процессор ситуацию не спасёт.

Третий фактор — режим работы пользователей. Отчёты, групповое проведение, обмены данными и фоновые задания создают пиковые нагрузки, которые съедают память скачкообразно. Сервер, рассчитанный «впритык» по среднему потреблению, будет регулярно падать в swap именно в моменты, когда от него ждут результата — при закрытии месяца или формировании регламентированной отчётности.

Число сеансовПрямая зависимость

Каждый активный сеанс занимает память в рабочем процессе rphost

КонфигурацияERP тяжелее Бухгалтерии

Чем больше метаданные и сложнее логика, тем больше кэш и память на сеанс

Размер базыВлияет на СУБД

СУБД эффективна, когда активная часть базы помещается в буферный кэш

Фоновые заданияПиковые нагрузки

Обмены, проведения и отчёты создают скачки потребления RAM

Ориентировочные объёмы для типовых сценариев

Приведённые ниже цифры — практические ориентиры для сервера, на котором работает только 1С и (при необходимости) СУБД. Если на машине крутятся другие службы, их потребление добавляется сверху.

СценарийПользователейРекомендуемый объём RAMКомментарий
Файловая база, лёгкая конфигурациядо 5–78–16 ГБДопустимо на мощном ПК, обязателен SSD
Клиент-сервер, СУБД на той же машине10–2032 ГБМинимум для комфортной работы
Клиент-сервер, СУБД на той же машине20–5064–96 ГБЗависит от тяжести конфигурации и размера базы
Разнесённые 1С и СУБД50–15064–128 ГБ на каждый узелСервер 1С и сервер СУБД — отдельные машины
Крупная ERP, высокая нагрузка150+от 128–256 ГБКластер из нескольких рабочих серверов 1С

Важно понимать: эти цифры — отправная точка, а не догма. Реальную потребность показывает только мониторинг конкретной базы под рабочей нагрузкой. Два предприятия с одинаковым числом пользователей могут отличаться по потреблению памяти в два-три раза из-за разной интенсивности работы.

Файловый режим: когда хватает немного

В файловом режиме вся база — это файл 1Cv8.1CD, с которым работают напрямую клиентские процессы. Серверная память расходуется в основном на кэш файловой системы, поэтому даже 8–16 ГБ дают приемлемый результат. Но файловый режим имеет жёсткий потолок по числу пользователей и размеру базы: при активной работе более 5–10 человек начинаются блокировки, и добавление памяти проблему не решит — нужен переход на клиент-серверный вариант.

Как рассчитать память для сервера 1С и СУБД

Рабочая формула для сервера приложений 1С выглядит так: базовые 4–8 ГБ на операционную систему и агент сервера, плюс 2–4 ГБ на каждый рабочий процесс rphost, плюс запас 20–30% на пиковые нагрузки. Число рабочих процессов зависит от настроек кластера: по умолчанию один rphost обслуживает несколько сеансов, и при росте нагрузки кластер запускает дополнительные процессы.

Для СУБД логика другая. MS SQL Server по умолчанию забирает почти всю доступную память под буферный пул — это нормально, но на совмещённом сервере ему обязательно нужно выставить ограничение «max server memory», иначе он отберёт память у рабочих процессов 1С. Практическое правило для совмещённого сервера: оставить ОС и серверу 1С их расчётный объём, остальное отдать СУБД.

Для PostgreSQL, который часто используют с 1С, ключевые параметры — shared_buffers (обычно 25% от RAM на выделенном сервере СУБД) и effective_cache_size (ориентировочно 50–75% RAM). Эти значения задаются в postgresql.conf и требуют перезапуска службы.

Порядок расчёта объёма памяти
  1. 1
    Определите число одновременно работающих пользователей и тяжесть конфигурации
  2. 2
    Оцените размер базы и её активно используемой части
  3. 3
    Рассчитайте память для сервера 1С: ОС + рабочие процессы + запас 20–30%
  4. 4
    Рассчитайте память для СУБД: буферный пул, покрывающий активную часть базы
  5. 5
    Сложите значения, если 1С и СУБД на одной машине, либо разнесите по разным серверам
  6. 6
    Проверьте расчёт мониторингом под реальной нагрузкой в течение недели

Разделять ли сервер 1С и СУБД

На небольших внедрениях (до 20–30 пользователей) совмещение сервера 1С и СУБД на одной машине — нормальная и экономичная практика, если памяти достаточно для обоих. Более того, при совмещении исключается сетевой трафик между 1С и СУБД, что иногда даёт выигрыш в скорости.

При росте нагрузки разделение становится оправданным: сервер СУБД получает максимум памяти под кэш, сервер 1С — под рабочие процессы, и каждый можно масштабировать независимо. Кроме того, отказ или перезагрузка одного узла не обязательно роняет второй. Минус — требования к сети: между серверами нужен канал минимум 1 Гбит/с, желательно 10 Гбит/с, иначе сеть станет новым узким местом.

Совмещение или разделение

Всё на одном сервере

Дешевле и проще в обслуживании; подходит до 20–30 пользователей при достаточном объёме RAM; риск конкуренции за память между 1С и СУБД

Отдельный сервер СУБД

Независимое масштабирование и больше памяти под кэш СУБД; требует быстрой сети и удваивает затраты на оборудование и лицензии ОС

Кластер серверов 1С

Для сотен пользователей: нагрузка распределяется между несколькими рабочими серверами; усложняет администрирование

Как понять, что серверу не хватает памяти

Главный инструмент диагностики в Windows — диспетчер задач и Performance Monitor, в Linux — free -h, top и vmstat. Смотреть нужно не на среднее потребление, а на показатели в часы пиковой нагрузки.

Тревожные признаки: постоянная загрузка памяти выше 85–90%, активное использование файла подкачки (счётчик Page Reads/sec в Windows, si/so в vmstat на Linux), рост потребления памяти процессами rphost без возврата к исходному уровню. Если система активно свопит, добавление памяти даст эффект заметнее, чем любая оптимизация запросов.

Отдельно стоит контролировать утечки: если rphost за день вырастает с 2 ГБ до 10 ГБ и не освобождает память, проблема может быть не в объёме RAM, а в ошибках конфигурации или платформы. В этом случае помогает настройка ограничений кластера: допустимый объём памяти рабочих процессов и интервал перезапуска.

bash
free -h && vmstat 1 5
Контрольные точки

Как отличить норму от нехватки памяти

Загрузка RAM в часы пик
Норма

До 80–85% с небольшими колебаниями

Тревожный признак

Стабильно выше 90%, память «под завязку»

Файл подкачки / swap
Норма

Почти не используется, нулевая активность чтения/записи

Тревожный признак

Постоянные операции со swap, растущий pagefile

Память процессов rphost
Норма

Растёт под нагрузкой и частично освобождается

Тревожный признак

Только растёт в течение дня, не возвращается к базовому уровню

Скорость работы пользователей
Норма

Равномерная в течение дня

Тревожный признак

Утром быстро, к обеду заметные подвисания

Типичные ошибки при выборе объёма памяти

Самая распространённая ошибка — покупать сервер «на вырост» по процессору, но экономить на памяти. Для 1С дисбаланс обычно обратный: процессор среднего уровня с большим объёмом RAM работает лучше, чем топовый CPU с 16 ГБ памяти. Второй частый просчёт — забыть про СУБД: администратор считает память только под seans 1С, а SQL Server при этом сидит на ограничении по умолчанию и забирает всё подряд, либо наоборот, ему выделяют слишком мало.

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

Типичные ошибки
01
Покупка сервера с мощным CPU и минимумом RAM — для 1С память обычно важнее лишних ядер
02
Отсутствие лимита max server memory у MS SQL на совмещённом сервере — СУБД отбирает память у rphost
03
Расчёт по среднему потреблению без запаса на пики — обрывы сеансов при закрытии месяца
04
Добавление памяти вместо исправления утечек — rphost продолжает расти и съедает любой объём
05
Игнорирование файла подкачки на диске HDD — своп на медленном диске многократно усиливает «тормоза»

Практические рекомендации и проверка результата

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

Полезно также настроить ограничения кластера 1С: параметры «Допустимый объем памяти» и «Интервал превышения допустимого объема памяти» в свойствах рабочего сервера позволяют автоматически перезапускать раздувшиеся rphost без остановки всей работы. Это не замена достаточному объёму RAM, но страховка от утечек.

И помните про комплексность: память решает проблему только тогда, когда узкое место — именно она. Если дисковая подсистема — медленный HDD, а сеть между клиентами и сервером перегружена, добавление RAM даст лишь частичный эффект. Диагностику всегда начинайте с полной картины: память, диски, сеть, настройки СУБД.

Итог

Что важно запомнить

Расчёт начинается с числа пользователей, тяжести конфигурации и размера базы: 32 ГБ — минимум для 10–20 пользователей, 64–96 ГБ — для 30–50, дальше — разделение 1С и СУБД. СУБД нужен буферный кэш под активную часть базы, серверу 1С — память под рабочие процессы с запасом 20–30% на пики. Реальную достаточность объёма показывает только мониторинг: загрузка RAM, активность свопа и поведение процессов rphost в часы пик.

Частые вопросы

Хватит ли 16 ГБ для сервера 1С на 10 пользователей?

Для файловой базы с лёгкой конфигурацией — как правило, да, при условии SSD-диска. Для клиент-серверного варианта с СУБД на той же машине 16 ГБ — впритык: после выделения памяти ОС, серверу 1С и буферному пулу СУБД запаса на пиковые нагрузки почти не остаётся. Комфортный минимум в этом случае — 32 ГБ.

Что важнее для сервера 1С: память, процессор или диски?

Всё зависит от текущего узкого места, но на практике чаще всего первыми упираются диски и память. Быстрые SSD/NVMe и достаточный объём RAM дают больший прирост, чем замена процессора на более мощный. Диагностику стоит начинать с мониторинга дисковой очереди и использования свопа.

Нужно ли ограничивать память для MS SQL Server?

Да, если SQL Server работает на той же машине, что и сервер 1С. Без ограничения «max server memory» он постепенно займёт почти всю свободную память под буферный пул, оставив рабочие процессы 1С и ОС без ресурса. На выделенном сервере СУБД ограничение тоже полезно — оставьте несколько гигабайт операционной системе.

Почему процесс rphost занимает всё больше памяти и не освобождает её?

Частично это нормально: рабочий процесс кэширует метаданные и данные сеансов. Но если рост продолжается весь день без возврата к базовому уровню, вероятны утечки из-за ошибок в коде конфигурации или платформы. Помогает настройка автоматического перезапуска рабочих процессов по порогу памяти в свойствах кластера и обновление платформы до актуальной версии.

Сколько памяти выделить виртуальной машине с сервером 1С?

Те же объёмы, что и для физического сервера, но с двумя оговорками. Во-первых, избегайте overcommit — суммарная память виртуальных машин не должна сильно превышать физическую, иначе гипервизор начнёт свопить. Во-вторых, отключите или ограничьте динамическую память (ballooning) для ВМ с сервером 1С и СУБД: резкое «сдувание» памяти гипервизором под нагрузкой приводит к тем же проблемам, что и физическая нехватка RAM.

Поможет ли увеличение файла подкачки вместо добавления памяти?

Нет, это лишь смягчение симптомов. Своп даже на быстром NVMe-диске в разы медленнее оперативной памяти, и активная работа с файлом подкачки означает, что серверу объективно не хватает RAM. Увеличивать pagefile имеет смысл только как временную меру до установки дополнительных планок памяти.