Администрирование · 11 мин
Как увеличить объем памяти в 1С
Как увеличить память для 1С: настройка файловой и клиент-серверной базы, параметры сервера 1С и СУБД, диагностика нехватки памяти и типичные ошибки администраторов.
Ошибка «Недостаточно памяти» в 1С появляется в трёх разных местах: на клиентском компьютере, на сервере 1С:Предприятия и внутри СУБД. Прежде чем увеличивать объём памяти, нужно понять, какой именно узел упирается в лимит — иначе добавление планок ОЗУ в сервер ничего не даст, если ограничение задано в настройках кластера или разрядности клиента.
Файловая база на персональном компьютере, клиент-серверный вариант с PostgreSQL или MS SQL и тонкий клиент с веб-клиентом настраиваются по-разному. Универсального ползунка «память для 1С» не существует: есть совокупность параметров операционной системы, платформы и СУБД, которые вместе определяют, сколько памяти реально доступно прикладному решению.
Ниже разобраны конкретные способы увеличить доступную память для каждого сценария работы 1С, признаки, по которым можно определить, где именно дефицит, и ограничения, о которых часто забывают.
Как определить, где именно не хватает памяти
Диагностика начинается с текста ошибки и момента её появления. Сообщение «Недостаточно свободной памяти на сервере 1С:Предприятия» указывает на кластер серверов, а «Ошибка при выполнении операции с информационной базой. Ошибка СУБД» — на уровень базы данных. Если ошибка возникает только при формировании большого отчёта или обработке на одном конкретном компьютере, проблема почти наверняка на клиенте.
Полезные инструменты наблюдения: диспетчер задач Windows на клиенте (процесс 1cv8.exe или 1cv8c.exe), мониторинг процессов rphost на сервере приложений и счётчики производительности СУБД. Если один рабочий процесс rphost стабильно растёт до нескольких гигабайт и потом падает — это классический признак нехватки памяти на сервере или утечки в коде.
Проверьте разрядность клиента 1С и объём ОЗУ компьютера
Смотрите процессы rphost и настройки кластера
Проверьте выделение памяти для SQL Server или PostgreSQL
Проверьте допустимый объём памяти процессов в кластере
Увеличение памяти на клиентском компьютере
Главное ограничение на клиенте — разрядность платформы. 32-разрядный клиент 1С в принципе не может использовать больше примерно 2 ГБ памяти на процесс, сколько бы ОЗУ ни стояло в компьютере. Переход на 64-разрядную версию платформы снимает этот потолок и является первым действием при ошибках памяти на толстом клиенте.
Установите 64-разрядный дистрибутив платформы той же версии и убедитесь, что ярлык запускает именно его, а не старую 32-разрядную копию. Дополнительно проверьте, что операционная система тоже 64-разрядная — на 32-разрядной Windows 64-разрядные приложения не работают.
Если разрядность уже 64-бит, а памяти всё равно не хватает, проверьте файл подкачки Windows. При отключённом или жёстко ограниченном файле подкачки система отказывает в выделении памяти даже при физически свободном ОЗУ. Рекомендуется режим «Автоматически выбирать объём файла подкачки» или размер, сопоставимый с объёмом ОЗУ.
- 1Определите разрядность: в окне «О программе» или по расположению платформы в Program Files (x86)
- 2Скачайте и установите 64-разрядную платформу той же версии
- 3Проверьте настройки файла подкачки Windows
- 4Закройте лишние приложения и перезапустите проблемную операцию
- 5Если ошибка повторяется — проверьте, не выполняется ли операция на сервере, а не на клиенте
Настройка памяти сервера 1С:Предприятия
В клиент-серверном варианте основную память потребляют рабочие процессы кластера — rphost. Их поведение управляется через консоль администрирования серверов 1С: свойства рабочего сервера и требования назначения функциональности. Ключевые параметры — «Допустимый объём памяти» и «Интервал превышения допустимого объёма памяти»: они определяют, когда кластер принудительно перезапускает процесс, чтобы освободить память.
Если процессы часто перезапускаются из-за превышения лимита, у пользователей возникают обрывы сеансов. В этом случае лимит стоит либо повысить (при наличии свободного ОЗУ), либо добавить рабочие процессы, чтобы нагрузка распределялась между ними. Параметр «Количество ИБ на процесс» и «Количество соединений на процесс» помогают изолировать тяжёлые базы в отдельные процессы.
На сервере с ограниченным ОЗУ полезно включить динамическое распределение: несколько процессов rphost с умеренным числом соединений на каждый обычно стабильнее, чем один гигантский процесс. Точные значения подбираются наблюдением за фактическим потреблением памяти под нагрузкой — универсальных цифр здесь нет.
Выделение памяти для СУБД
MS SQL Server по умолчанию стремится занять почти всю доступную память под буферный пул. Это нормально для выделенного сервера СУБД, но если на той же машине работает сервер 1С, им придётся делить ресурсы. Параметр max server memory в свойствах сервера SQL ограничивает аппетит СУБД; оставьте достаточно памяти операционной системе и процессам rphost.
В PostgreSQL основной параметр — shared_buffers, обычно его устанавливают в диапазоне примерно четверти от объёма ОЗУ выделенного сервера, плюс настраивают work_mem для тяжёлых запросов. Слишком высокий work_mem при большом числе одновременных соединений сам становится причиной нехватки памяти.
Общий принцип: память должна быть распределена явно, а не отдана на откуп настройкам по умолчанию. Нарисуйте простую схему: сколько ОЗУ у сервера, сколько занимает ОС, сколько отдано СУБД, сколько — процессам 1С. Сумма не должна вплотную приближаться к физическому объёму, иначе система уйдёт в своп, и производительность резко упадёт.
Сравнение вариантов
Подходит, когда мониторинг показывает реальную нехватку памяти при корректных настройках. Ограничение — стоимость и слоты на материнской плате
Бесплатно и быстро, если память выделена неоптимально. Ограничение — не поможет при объективном дефиците ресурсов
Помогает при утечках и пиковых нагрузках на один процесс. Ограничение — каждый процесс сам потребляет память
Решает проблему нехватки памяти на клиенте. Ограничение — не влияет на серверные операции
Файловая база: что можно и чего нельзя сделать
В файловом варианте вся работа с данными выполняется процессом клиента, поэтому память упирается в разрядность клиента и ресурсы конкретного компьютера. Никакие серверные настройки здесь неприменимы. Если файловая база разрослась и операции стали падать с ошибками памяти, единственные реальные варианты — 64-разрядный клиент плюс достаточный объём ОЗУ либо переход на клиент-серверную архитектуру.
Дополнительно помогает сокращение объёма данных: свёртка базы, удаление помеченных объектов, очистка устаревших версий объектов и протоколов обменов. Меньший объём данных означает меньшие выборки и меньшее потребление памяти при типовых операциях.
Когда память «съедает» код, а не настройки
Частая ситуация: памяти физически достаточно, лимиты разумные, но ошибка повторяется на одной и той же операции. Это признак неэффективного кода: выгрузка огромных таблиц значений в память, запросы без отборов, помещение больших данных в хранилище значений, циклическое создание объектов без освобождения.
Такие проблемы решаются доработкой: пакетной обработкой данных порциями, переносом тяжёлой логики в запросы, использованием временных таблиц. Увеличение памяти здесь лишь отсрочит падение. Если ошибка возникает стабильно на одном отчёте или обработке, зафиксируйте её и передайте разработчику вместе с замером потребления памяти процессом.
Проверка результата после изменений
После любых изменений проверьте систему под реальной нагрузкой, а не вхолостую. Запустите операцию, которая раньше падала, и одновременно наблюдайте за потреблением памяти: на клиенте через диспетчер задач, на сервере — по процессам rphost и счётчикам СУБД.
Нормальный признак — операция завершается без ошибки, а потребление памяти после её окончания возвращается к исходному уровню. Если память после операции не освобождается и растёт от запуска к запуску, лимиты увеличивать бессмысленно: нужно искать утечку.
Как проверить результат
Завершается без ошибки, время приемлемое
Ошибка повторяется или сеанс обрывается
Возвращается к исходному уровню
Остаётся высокой и растёт при повторах
Минимальная активность свопа
Постоянная интенсивная подкачка, диск загружен
Отсутствуют или редки
Частые перезапуски из-за превышения лимита памяти
Что важно запомнить
Увеличение памяти в 1С — это диагностика плюс настройка конкретного уровня: клиента, кластера серверов или СУБД. 64-разрядная платформа снимает главный клиентский лимит, лимиты кластера и память СУБД нужно распределять явно и с запасом от физического ОЗУ, а рост потребления памяти на конкретной операции чаще лечится доработкой кода, а не железом.
Частые вопросы
Сколько оперативной памяти нужно для сервера 1С?
Универсальной цифры нет: потребность зависит от числа активных пользователей, размера базы и тяжести регламентных операций. Практический подход — замерить фактическое потребление процессов rphost и СУБД под рабочей нагрузкой и заложить запас на пики и рост данных.
Поможет ли увеличение файла подкачки при ошибке «Недостаточно памяти»?
Может помочь на клиенте, если файл подкачки отключён или жёстко ограничен — система отказывает в выделении памяти даже при свободном ОЗУ. На сервере полагаться на своп нельзя: работа из подкачки резко замедляет базу и считается признаком нехватки физической памяти.
Ошибка памяти возникает при формировании одного большого отчёта. Что делать?
Сначала проверьте, где выполняется формирование — на клиенте или на сервере. Затем попробуйте ограничить период отчёта и отборы. Если отчёт неизменно падает, вероятна неэффективная реализация: данные выгружаются в память целиком. Это повод передать отчёт на доработку разработчику.
Нужно ли перезапускать сервер после изменения настроек памяти?
Параметры кластера 1С применяются к новым рабочим процессам, поэтому для гарантированного применения перезапустите службу агента сервера. Настройки памяти СУБД обычно применяются без перезагрузки, но изменение файла подкачки Windows требует перезагрузки системы.
64-разрядный клиент установлен, а ошибка памяти осталась. Почему?
Скорее всего, операция выполняется не на клиенте, а на сервере — тогда ограничения клиента ни при чём. Проверьте текст ошибки и процессы rphost на сервере. Также убедитесь, что запускается именно 64-разрядная платформа: старые ярлыки могут указывать на прежнюю 32-разрядную установку.
Можно ли увеличить память для файловой базы без покупки оборудования?
Частично: переход на 64-разрядный клиент, настройка файла подкачки и сокращение объёма базы (свёртка, удаление помеченных объектов) дают эффект без вложений. Но у файлового варианта есть архитектурный потолок — при дальнейшем росте базы корректным решением будет переход на клиент-серверный вариант.