Недостаток оперативной памяти на сервере 1С:Предприятие — одна из главных причин тормозов, ошибок OutOfMemory и внезапных падений кластера. При этом переплачивать за избыточные гигабайты так же бессмысленно, как покупать Dell PowerEdge R750 для базы с пятью пользователями. В этой статье разберём точные методики расчёта ОЗУ для разных сценариев: от маленького офиса до распределённой инфраструктуры с сотнями подключений.
Проблема в том, что универсального ответа нет. Объём памяти зависит от версии платформы (1С:Предприятие 8.3 или 8.2), типа базы (файловая или клиент-серверная), количества пользователей, сложности конфигурации и даже от того, используете ли вы RLS (управление правами на уровне записей). Мы собрали данные из реальных кейсов администрирования, официальных рекомендаций 1С и тестов производительности — чтобы вы могли рассчитать ОЗУ под свои задачи без "запаса на всякий случай".
Важно понимать: 1С не просто "ест" память. Платформа активно кэширует данные в ОЗУ, и если её не хватает, система начинает интенсивно использовать swap-файл на диске — это в разы замедляет работу. При этом избыток памяти тоже вреден: неиспользуемые гигабайты просто простаивают, а деньги на них потрачены. Далее — пошаговые инструкции, как найти золотую середину.
1. Базовые рекомендации 1С по оперативной памяти
Компания 1С публикует минимальные и рекомендуемые требования к серверному оборудованию, но они часто оказываются заниженными для реальных нагрузок. Например, для 1С:Предприятие 8.3 с клиент-серверным вариантом работы официально указано:
- 📌 Минимум: 2 ГБ ОЗУ + 1 ГБ на каждые 10 пользователей.
- 📌 Рекомендуемо: 4 ГБ ОЗУ + 2 ГБ на каждые 10 пользователей.
На практике эти цифры работают только для простейших конфигураций типа 1С:Бухгалтерия с минимальной нагрузкой. Если у вас:
- 🔹 Управление торговлей 11 или ERP 2 с большим объёмом документов,
- 🔹 одновременная работа более 30 пользователей,
- 🔹 интеграция с внешними системами (например, Bitrix24 или МойСклад),
то памяти потребуется в 1.5–2 раза больше, чем по "официальным" нормам.
Ещё один нюанс: 1С не учитывает накладные расходы операционной системы. Например, Windows Server 2019 с SQL Server может "съедать" до 4–6 ГБ только на свои нужды — это нужно закладывать в расчёт.
2. Формула расчёта ОЗУ для сервера 1С
Для точного расчёта используйте модифицированную формулу, которая учитывает реальные нагрузки:
Общий ОЗУ (ГБ) = Базовая память ОС + Память для СУБД + (Количество пользователей × Коэффициент конфигурации) + Резерв
Расшифруем переменные:
- 🖥️ Базовая память ОС:
- Windows Server: 4–6 ГБ (без ролей AD, DHCP и т.п.),
- Linux (например, Ubuntu Server): 2–3 ГБ.
- 🗃️ Память для СУБД:
- MS SQL Server: 4 ГБ минимум + 1 ГБ на каждые 50 ГБ базы данных,
- PostgreSQL: 2 ГБ минимум + 0.5 ГБ на каждые 50 ГБ базы.
- 👥 Коэффициент конфигурации:
- Бухгалтерия 3.0: 0.5–0.8 ГБ на пользователя,
- УТ 11 / ERP 2: 1–1.5 ГБ на пользователя,
- ЗУП 3.1: 0.7–1 ГБ на пользователя.
- ⚡ Резерв: 20–30% от суммы (на пиковые нагрузки, фоновые задачи, обновления).
Пример расчёта для ERP 2 с 50 пользователями на MS SQL Server и Windows Server 2022:
ОЗУ = 6 (ОС) + 8 (SQL) + (50 × 1.2) + 10 (резерв 25%) = 6 + 8 + 60 + 10 = 84 ГБ
Если у вас файловая база (не клиент-сервер), умножьте результат на 0.7 — она менее требовательна к памяти, но не масштабируется для большого числа пользователей.
3. Таблица: ОЗУ для типовых конфигураций
Для удобства мы свели данные по популярным конфигурациям в таблицу. Цифры даны для клиент-серверного варианта с MS SQL Server и Windows Server:
| Конфигурация | Кол-во пользователей | Минимальный ОЗУ (ГБ) | Рекомендуемый ОЗУ (ГБ) | Оптимальный ОЗУ (ГБ) |
|---|---|---|---|---|
| 1С:Бухгалтерия 3.0 | 10–20 | 12 | 16 | 24 |
| 1С:Управление торговлей 11 | 20–50 | 24 | 32 | 48 |
| 1С:ERP 2 | 50–100 | 48 | 64 | 96 |
| 1С:ЗУП 3.1 | 10–30 | 16 | 24 | 32 |
| 1С:Комплексная автоматизация 2 | 30–70 | 32 | 48 | 64 |
Обратите внимание: в столбце "Оптимальный ОЗУ" уже заложен резерв 25–30%. Если у вас файловая база, смело уменьшайте значения на 30–40%, но помните о ограничении на количество подключений (обычно до 10–15 пользователей).
Для конфигураций с RLS (например, ERP 2 или УТ 11 с управлением правами) добавьте к расчёту +20% памяти — механизм RLS активно использует кэш в ОЗУ.
4. Как проверить текущее использование памяти
Если сервер уже работает, но вы сомневаетесь в достаточности ОЗУ, используйте эти инструменты для диагностики:
- 🔧 Диспетчер задач Windows:
- Откройте вкладку
Производительность → Память. - Смотрите график
Используется (сжато)— если он постоянно близок к 90%, памяти не хватает.
- Откройте вкладку
- 📊 SQL Server Management Studio:
- Запустите запрос:
SELECT(physical_memory_in_use_kb/1024) AS Memory_usedby_SQL_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB
FROM sys.dm_os_process_memory;
- Если
Memory_usedby_SQL_MBпревышает 80% от выделенной SQL Server памяти — нужно увеличивать ОЗУ.
- Запустите запрос:
- 🐧 Linux (top/htop):
- Введите команду
free -h. - Критично, если
available(доступно) меньше 10% от общего объёма.
- Введите команду
Также полезно анализировать журналы 1С на ошибки типа:
Недостаточно памяти для выполнения операции (OutOfMemory)
Критическая ошибка при выполнении операции с базой данных: не хватает ресурсов
Что делать, если памяти не хватает, а апгрейд сервера невозможен?
Временные меры:
1. Оптимизируйте запросы в конфигурации (используйте индексы, избегайте полных сканирований таблиц).
2. Настройте лимиты памяти для ragent и rmngr в файле srvinfo (параметры -memlimit и -memextlimit).
3. Разбейте базу на несколько (например, выделите ЗУП в отдельную информационную базу).
4. Перенесите архивные данные в отдельную базу с доступом по запросу.
5. Типичные ошибки при выборе ОЗУ
Даже опытные администриторы иногда допускают просчёты. Вот самые распространённые:
⚠️ Внимание: Если вы используете виртуальный сервер (например, в VMware ESXi или Hyper-V), убедитесь, что для виртуальной машины выделена гарантированная память (Reserved), а не только "максимальная". Иначе хост может "отобрать" ОЗУ у 1С в пиковые моменты.
- ❌ Игнорирование swap-файла:
Многие отключают swap, считая, что система не должна его использовать. На самом деле Linux и Windows активно задействуют swap для кэширования, и его отсутствие может привести к аварийному завершению 1С при нехватке ОЗУ.
- ❌ Неучёт фоновых процессов:
На сервере часто работают антивирусы (Kaspersky Endpoint Security), системы мониторинга (Zabbix), бэкапы (Veeam). Они могут "съедать" до 2–4 ГБ памяти в фоновом режиме.
- ❌ Покупка памяти без учёта каналов:
Для серверов 1С критична не только ёмкость, но и пропускная способность. Используйте модули с поддержкой многоканального режима (например, 4 планки по 16 ГБ вместо 1 планки на 64 ГБ), чтобы избежать узких мест.
Ещё одна распространённая ошибка — перераспределение памяти между SQL Server и 1С. По умолчанию MS SQL Server пытается захватить всю доступную память. Чтобы этого избежать, ограничьте максимальный объём в настройках SQL:
EXEC sys.sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sys.sp_configure 'max server memory', 50000; -- например, 50 ГБ
RECONFIGURE;
6. Оптимизация использования памяти в 1С
Перед покупкой нового сервера попробуйте снизить нагрузку на ОЗУ программными методами:
- 🔄 Настройка кэша 1С:
В файле
1cv8.conf(для Linux) или в параметрах запуска ragent установите:-CacheSize 1024 # размер кэша в МБ (по умолчанию 256)-MemLimit 4096 # лимит памяти на процесс в МБ
- 🗑️ Очистка временных данных:
Регулярно удаляйте временные файлы 1С (папки
%TEMP%иC:\ProgramData\1C\1Cv8\). Для этого можно использовать скрипт:@echo offdel /q /f "C:\ProgramData\1C\1Cv8\." >nul 2>&1
del /q /f "%TEMP%\1C*.*" >nul 2>&1
- 📉 Оптимизация запросов:
Используйте
План выполненияв Конфигураторе, чтобы найти "тяжёлые" запросы. Часто проблема в отсутствии индексов или избыточных соединениях таблиц.
Если у вас 1С:ERP или УТ 11, проверьте настройки фоновых задач (например, расчёт себестоимости или обмен с сайтом). Эти процессы могут блокировать память на часы — настройте их выполнение в нерабочее время.
Установить лимиты памяти в 1cv8.conf|Настроить max server memory в SQL Server|Очистить временные файлы 1С|Проверить планы выполнения медленных запросов|Отключить ненужные фоновые задачи-->
7. Примеры конфигураций серверов под 1С
Рассмотрим реальные кейсы с указанием железных конфигураций и объёмов ОЗУ:
- 🏢 Малый бизнес (10–20 пользователей, Бухгалтерия 3.0):
Оборудование: Dell PowerEdge T30 (Xeon E3-1225, 32 ГБ DDR4, 2×1 ТБ HDD RAID 1).
ОЗУ: 32 ГБ (из них 8 ГБ — SQL Server, 20 ГБ — 1С, 4 ГБ — ОС).
- 🏭 Средний бизнес (50–100 пользователей, УТ 11 + ЗУП):
Оборудование: HPE ProLiant DL380 Gen10 (2×Xeon Silver 4210, 128 ГБ DDR4, 4×1.9 ТБ SSD RAID 10).
ОЗУ: 128 ГБ (32 ГБ — SQL Server, 80 ГБ — 1С, 16 ГБ — ОС и фоновые задачи).
- 🌍 Крупное предприятие (200+ пользователей, ERP 2 + DOCFLOW):
Оборудование: Виртуальная инфраструктура на VMware vSphere (4 виртуальные машины: 1 под SQL, 2 под 1С, 1 под веб-сервер).
ОЗУ: 256 ГБ на кластер (64 ГБ — SQL, 128 ГБ — 1С, 32 ГБ — веб, 32 ГБ — резерв).
Для виртуальных сред важно правильно распределить ресурсы:
- 🔹 Выделите гарантированные (Reserved) ресурсы для ВМ с 1С.
- 🔹 Используйте NUMA-совместимые настройки для многопроцессорных серверов.
- 🔹 Настройте
Memory Ballooningв VMware или Hyper-V, но не допускайте свапа на диск.
⚠️ Внимание: При использовании 1С:Предприятие в облаке (например, 1С:Fresh или IaaS-провайдеры) уточняйте тарифы по памяти. Некоторые провайдеры ограничивают ОЗУ на уровне виртуальной машины, а не физического сервера. Это может привести к неожиданным ограничениям при пиковых нагрузках.
FAQ: Частые вопросы по памяти для сервера 1С
Можно ли использовать файловую базу для 50 пользователей?
Технически да, но это крайне не рекомендуется. Файловая база не предназначена для такой нагрузки: будут постоянные блокировки, тормоза и риск повреждения данных. Максимум для файлового варианта — 10–15 пользователей с лёгкой конфигурацией (например, Бухгалтерия без сложных отчётов). Для 50+ пользователей обязателен клиент-серверный вариант с MS SQL или PostgreSQL.
Как влияет количество ядер процессора на потребление памяти?
Прямой зависимости нет, но многопоточность 1С ограничена. Платформа эффективно использует до 4–8 ядер на процесс ragent. Дальше прирост производительности минимален, а вот память продолжает расходоваться линейно. Поэтому для серверов с 16+ ядрами важно правильно настроить распределение нагрузки (например, через несколько рабочих процессов 1С).
Что делать, если 1С "съедает" всю память и не отдаёт её обратно?
Это нормальное поведение 1С — платформа активно кэширует данные в ОЗУ. Однако если память не освобождается даже после закрытия сессий, проверьте:
- Настройки
MemLimitв параметрах запуска 1С. - Утечки памяти в кастомизированных обработках (особенно при работе с
COM-объектами). - Версию платформы — в старых релизах (ниже 8.3.18) были баги с освобождением памяти.
В крайнем случае перезапускайте сервис 1С:Предприятие по расписанию (например, ночью).
Сколько памяти нужно для 1С на Linux?
На 10–15% меньше, чем на Windows, за счёт более эффективного управления ресурсами. Например, для 1С:Бухгалтерия с 20 пользователями на PostgreSQL хватит 24 ГБ вместо 32 ГБ. Но учитывайте:
- 🔹 На Linux сложнее диагностировать утечки памяти (нет удобного
Диспетчера задач). - 🔹 Не все конфигурации официально поддерживаются на Linux (проверяйте совместимость на сайте 1С).
Как рассчитать память для терминального сервера с 1С?
В этом случае memory расходуется и на саму ОС (например, Windows Server с RDS), и на сессии пользователей. Используйте формулу:
ОЗУ = 8 ГБ (ОС + RDS) + (Кол-во пользователей × 1.5 ГБ) + 4 ГБ (1С:Предприятие) + 20%
Пример для 30 пользователей: 8 + (30 × 1.5) + 4 + 6 = 58 ГБ.
Важно: на терминальных серверах отключите кэширование 1С в реестре (HKEY_LOCAL_MACHINE\SOFTWARE\1C\1Cv8\8.3\Common\CacheSize), чтобы избежать конфликтов между сессиями.