Ошибка обновлении 1с недостаточно памяти. Перезапуск службы сервера
Одна из самых распространенных ошибок, возникающих в процессе работы с 1С 8.3 – «Недостаточно памяти». В реальности она может происходить после множества событий – обновления, обработки больших файлов, формирования отчета, загрузки данных и прочих. Это означает, что любой администратор и разработчик 1С должен понимать суть проблемы и уметь исправлять ее. Простым увеличением оперативной памяти ПК или жесткого диска эту проблему не решить.
Решение проблемы на клиентском компьютере
Причины этой ошибки кроются не совсем в системе 1С, так как аналогичную ошибку вы можете увидеть и в других приложениях. Проблема в том, что в операционных системах семейства Microsoft по умолчанию выделяется определенный объем памяти на каждое приложение. Для 32-разрядных систем это значение установлено в 2 Гб, для 64 – 4 Гб. Когда ПО превышает этот показатель, на мониторе возникает окно с ошибкой.
Самый простой способ избавиться от таких сообщений – удалить помеченные на удаление объекты в конфигурации. Это помогает нечасто, но избавляет от лишних колебаний. К тому же, риск этих действий минимален, поскольку не требует вмешательства во внутренние настройки Windows. Если удаление не помогло, то придется бороться другими методами.
Еще одним решением для 32-битных систем можно назвать переход на 64-разрядную версию или выделение большего количества памяти приложениям. Первый вариант намного правильнее, но иногда в силу различных причин он невозможен. Тогда остается только вариант с алгоритмом действий, показанный ниже, но пользоваться им стоит очень аккуратно – возможны существенные проблемы с работоспособностью всей системы.
Этот алгоритм достаточно прост:
- Откройте командную строку Windows. Воспользуйтесь меню «Пуск» или комбинацией клавиш Windows +R и введите команду «cmd»;
- В появившемся окне наберите команду «bcdedit /set increaseuserva 3200» (для примера увеличим ограничение до 3,2 Гб). Увеличивать ограничение стоит аккуратно и постепенно;
- После подтверждения успешного завершения операции в окне командной строки перезагрузите ПК и попробуйте еще раз выполнить действия, приведшие к ошибке. Если проблема не ушла и 1С по-прежнему вылетает – можете еще раз увеличить ограничение;
- После успешного завершения операции без ошибки в 1С восстановите ограничения Windows по умолчанию командой «bcdedit /deletevalue increaseuserva». Это необходимый шаг, чтобы ОС не ущемляла свою работоспособность в угоду 1С и другим приложениям.
Это решение позволяет выполнить операцию, которую невозможно выполнить из-за ошибки 1С «Недостаточно памяти». Пользоваться им можно только в экстренных случаях, когда операцию необходимо выполнить прямо сейчас. В других обстоятельствах лучше попробовать запустить 1С на 64-разрядной платформе и повторить операцию там.
Намного серьезнее стоит относиться к сообщению о том, что недостаточно памяти на сервере при обновлении или масштабной работе. Проблема может быть в несвоевременном завершении процессов, запускаемых различным ПО, вследствие чего происходит «наслоение» и накопление их в виртуальной памяти. Второй источник подобной ошибки – интенсивная работа различных программ с резервированием и освобождением памяти. Существует различное ПО для решения этих проблем, но практика показывает, что оно вызывает разрывы соединений и падения 1С.
Подобные ошибки заставляют задуматься, достаточно ли мощный сервер 1С. Увеличение его мощности пойдет на пользу компании, но обойти подобную ошибку можно и другими способами, не требующими вливания денежных средств.
Конечно, постоянно их применять не стоит, но однажды они могут помочь при необходимости срочно выполнить ресурсоемкую работу. Среди популярных способов, способных помочь решить ошибку недостатка памяти на сервере, называют:
Еще одна распространенная ошибка 1С возникает, когда на жестком диске на сервере мало места. Временные таблицы занимают много места, и в случае его недостатка, администратор видит ошибку «Недостаточно свободной памяти для выполнения операции». В таком случае сложно давать точные советы, так как устройство сервера или кластера может существенно отличаться в разных вариантах. Среди стандартных решений, которые помогают в таких случаях, можно найти перезапуск сервера, увеличение свободного места, оптимизация запросов, обновление версии.
В компаниях с большим количеством пользователей ошибка «Недостаточно свободной памяти на сервере 1С:Предприятия 8.3» возникает достаточно часто. Большой проблемой и предпосылкой к этому является недостаточный анализ необходимой производительности. Поэтому при внедрении 1С уделите большое внимание достаточной мощности серверов, чтобы в будущем не пришлось настраивать производительность в ущерб стабильности.
Перечислить все ситуации, когда возникает ошибка 1С «Недостаточно памяти» (Рис.1) невозможно. Попробуем определить основные:
- При обновлении конфигурации;
- При запуске приложения;
- При формировании отчета;
- При выполнении больших расчетов (проведение документа «Расчет себестоимости», «Закрытие месяца» и так далее).
Причина во всех случаях одна – нехватка физической памяти компьютера. При этом добавление в устройство дополнительных планок оперативной памяти, проблему решает не всегда.
Что определяет размер доступной памяти
32-разрядные операционные системы имеют одну существенную особенность: независимо от объема оперативной памяти и размера файла подкачки, под работу конкретного приложения операционка выделяет только 4 Гб.
Учитывая, что половина адресного пространства виртуальной памяти выделяются под нужды самой системы, на работу приложения остается только 2Гб. При работе программы адресное пространство виртуальной памяти должно резервироваться одним непрерывным блоком. Когда нет такой возможности, выскакивает окно (Рис.1).
Как увеличить доступную память
Без переустановки операционной системы существуют два варианта исправления ситуации:
Этими способами можно уменьшить адресное пространство, выделяемое под операционную систему до 1Гб, увеличив память под приложение до 3Гб.
Внимание! Вручную распределив память можно столкнуться с проблемами в работе персонального компьютера вплоть до полной остановки системы.
Удаление строки из файла boot.ini или запуск команды с заменой параметра 2900 на 2000 возвращает систему в исходное состояние.
Важно понимать, что указанные способы – только временное решение проблемы, для окончательного её устранения необходимо перенести базу на 64-разрядную платформу.
Нехватка памяти при формировании отчета
Не очень часто, но эта ошибка возникает при возникновении отчетов. В этом случае выполнение обработки формирования табличного документа затягивается и, в конце концов, заканчивается окном, как на первом рисунке.
Прежде, чем лезть в настройки операционной системы и менять параметры распределения оперативной памяти, в этом случае лучше попробовать сменить настройки отчета. Поменяйте дату, измените группировки, добавьте отбор. В большинстве случаев это помогает.
Если ошибка возникает не в стандартном отчете (типа карточки счета или оборотно-сальдовой ведомости), и есть доступ к исходному коду обработки, проверьте, не формируются ли в запросе временные таблицы. Записанные в оперативную память и существующие до конца выполнения запроса они способны значительно подъедать ресурсы слабого компьютера.
Вообще, во избежание подобных ситуаций крайне рекомендуется уничтожать временные таблицы в запросе, сразу после того, как в них отпадает необходимость.
Утечки памяти на сервере
В некоторых случаях у пользователей появляется сообщение, представленное на рис.3
О причинах подобного поведения сервера хотелось бы сказать отдельно.
Вообще фраза «утечка памяти» несколько неточная, лучше сказать, что идет складирование памяти, её наслоение. Программы, запускающие процессы, забывают их своевременно завершить. В результате они накапливаются в оперативной памяти.
Вторая причина – фрагментация памяти. Если в процессе работы сервера происходит интенсивное резервирование и высвобождение оперативной памяти, в один из моментов может возникнуть ситуация, когда объем свободной памяти достаточен, но захватить непрерывный блок адресов памяти, достаточного размера невозможно.
Решить вторую проблему можно с помощью системных утилит.
В результате этого могут:
- Возникать проблемы с соединением, его разрывы, падение программы;(рис.4)
- Появляться ошибки и зависания при выгрузке информационной базы;
- Наблюдаться скачки памяти, занимаемой процессами 1С.
Ошибки обновления
Этот вариант нехватки памяти возникает при попытке обновления конфигурации до актуального релиза. Он может быть связан как с большим количеством запущенных приложений, так и с ошибками в базе.
Первые действия при возникновении этой проблемы – запуск обновляемой базы в режиме конфигуратора и проведение её реструктуризации (пункт меню Администрирование->Тестирование и исправление), хотя лучше провести полный спектр работ по исправлению ошибок и переиндексацию таблиц.
Ошибка «Недостаточно памяти» в 1С 8.3 и 8.2 является не такой уж и редкой. Ее можно встретить и в конфигураторе (например, при сравнении конфигураций), а так же в режиме «1С:Предприятие» при выполнении трудоемких обработок: например при записи большого файла формата base64.
Данная ошибка может встречаться не только в программе 1С, но и в других программах операционной системы Windows.
Все дело в том, что в 32-х разрядных операционных системах по умолчанию 2 ГигаБайта на различные программы и столько же для операционной системы. В 64-х разрядных ОС выделяемый на приложения объем памяти составляет уже 4 ГигаБайта.
Следуя из вышесказанного, вам необходимо увеличить размер выделяемой адресной памяти на приложения, коим является программа 1С. Сделать это можно двумя способами: осуществить переход с 32-х разрядной системы на 64-х разрядную, или увеличить выделяемое изначально количество адресной памяти.
Конечно же, первый способ лучше и предпочтительнее, но если в данный момент, либо вообще вы не можете им воспользоваться, то можете воспользоваться вторым.
Дня начала перейдите в командную строку операционной системы. Для этого перейдите в меню «Пуск» и вверите в строке поиска «cmd».
Перед вами отобразится поиск программ. Выберите ту, что называется «cmd».
Так же командную строку можно открыть при помощи комбинации горячих клавиш Windows + R.
В открывшемся окне наберите следующую команду и так же нажмите «Enter»:
bcdedit /set increaseuserva 3200
В данном случае вы увеличите объем адресной памяти до 3200 МегаБайт.
После того, как у вас все получилось, настоятельно рекомендуется восстановить прежний объем адресной памяти. Данная мера временная, так как при выделении памяти на приложения, у операционной системы ее становится меньше. За счет этого возможно нарушение стабильности Windows.
Для восстановления адресной памяти в значение по умолчанию можно воспользоваться следующей командной, которая так же вводится в командной строке:
bcdedit /deletevalue increaseuserva
Обратите внимание, что при часто встречающийся ошибке «Нехватка памяти» в 1С так же может помочь удаление помеченных объектов. Возможно, в программе их накопилось очень много и программе сложно обрабатывать такие объемы данных. Если и этот способ не помог, то вам следует увеличить разрядность операционной системы Windows.
Возникают ошибки. Мы рассмотрим одну из них, посвящённую теме «Недостаточно свободной памяти на сервере 1С:Предприятия».
Методика устранения ошибки «Недостаточно свободной памяти на сервере 1С:Предприятия».
Объём памяти рабочих процессов при работе на агент-сервере 1С не является бесконечным. При его максимальной загрузке пользователь видит перед собой радующее своей новизной сообщение - «Недостаточно свободной памяти на сервере 1С:Предприятия».
Сначала о причинах возникновения подобного рода сообщений - почему памяти не хватает. Их может быть несколько:
Недостаточная мощность железа
Если в системе работает до пяти человек - тогда будет достаточно одного восьмигигабайтного компа с двумя винтами (на одном - SERVER, на втором - SQL) и дополнительно установленных фишек. Но другое дело - человек тридцать пользователей, тысячи документов первички. Тут и SQL нужно выносить в отдельный сервер, и одним сервером терминалов уже не справиться.
Нехватка памяти для лишней информации
Типовые конфигурации пытаются описывать буквально все процессы, которые только мог себе представить разработчик, пытаясь создать универсальное бухгалтерское средство под названием 1С:Предприятие. Поэтому конкретный пользователь получает дополнительный багаж в виде бездны объектов метаданных , дополнительных таблиц SQL, неиспользуемых реквизитов. Постоянная прописка и переиндексация всего этого ненужного в регистрах программы занимает длительное время и много места.
Ошибки кодирования
Перегрузка сервера возникает и при непонимании (иногда) программистами некоторых процессов и внедрении ими своих «костылей», увеличивающих срок выполнения поставленных задач (и количество рабочих процессов тоже).
Ошибки программы
Кроме всего прочего, и это является часто чуть ли не основной причиной - программа 1С имеет неимоверное количество внутренних ошибок . Некоторые из них исправляются в последующих релизах. Этим ошибкам посвящено большое количество форумов, на которых админы, обсуждая очередные каверзы, шутя говорят, что в один эс работают, наверное, одни таджики (Джамшут и Равшан).
Так что же делать с сервером 1С
Поскольку причины возникновения проблемы могут быть различными, то и способы выхода из ситуации тоже есть разные:
Перезапуск службы сервера
Самым быстрым и простым способом решения является перезапуск службы сервера. Из командной строки Microsoft Windows (cmd): для остановки выполняется команда - net stop «1C:Enterprise 8.3 (или ваша версия) Server Agent», а для запуска - net start «1C:Enterprise 8.3 (соответственно вашей версии) Server Agent». Такое решение не снимает вопрос полностью - чаще всего ошибка повторяется. Частота её повторов зависит от количества клиентов и количества рабочих процессов.
ВАЖНО. Для возможности перезапуска нужно обладать соответствующими правами.
Автоперезапуск и настройки кластера
Иногда даже один выполняемый рабочий процесс может занять чуть ли не всю оперативку. Такую задачу решают путём увеличения их количества в настройках кластера. Добавляют примерно по одному процессу для каждых пятнадцати-тридцати юзеров.
Интервал перезапуска. Незадолго до завершения предыдущего запускается новый процесс rphost.exe. - На него переходят соединения от старого. Допустимый объём памяти - при превышении этой величины будет запущен секундный таймер отсчёта.
Интервал по превышению предельного объёма - при превышении таймером отсчёта этого значения будет запущен новый процесс. И на него подвяжутся соединения от старого. А старый, в свою очередь, помечается неактивным. Выкл. процессы останавливать через - по прошествии значения этого параметра после пометки рабочего процесса неактивным, произойдёт его завершение операционной системой. Если такой параметр указать равным «0» - тогда все неактивные процессы не будут автоматически завершаться.
ВАЖНО. Эта настройка характерна тем, что отключает от базы только того из клиентов, который запустил некорректный отчёт. А остальные - будут плавно перемещены к новым соединениям (без прерывания от своей базы).
Количество рабочих процессов
При перегрузке rphost.exe с фоновыми заданиями и отсутствии создания новых процессов нужно проверить настройки:
Макс. объем памяти рабочих процессов - это суммарный объем памяти для всех процессов вместе. Измеряется в байтах. При установке неправильного значения (неадекватного нормальной работе) все получат ошибку «Недостаточно свободной памяти на сервере 1с».
Безопасный расход памяти на 1 вызов - контролирует расходование памяти при вызове сервером (в байтах). При использовании вызовом большего количества чем указано - он будет завершён внутри кластера. Перезапуск его произведён не будет. А утрата сеанса не отразится на других клиентах.
Объем памяти для процессов, до величины которого сервер считается системой производительным - при достижении этого значения сервер кластера перестаёт принимать соединения. Количество информационных баз на процесс - изолирует ИБ по процессам. После изоляции информационных баз (при введении значения - «1») проблемы обычно решаются.
Количество соединений на один процесс - по умолчанию установлено значение «128». Если текущая база отличается очень большой нагрузкой от фоновых заданий, то можно уменьшить это количество, например, до «25». При таких настройках немного изменится и настройка кластера:
Уровень отказоустойчивости - показывает то количество серверов, при выходе из строя которого не произойдёт аварийного завершения работы клиентов. При этом автоматически будут запущены в нужном количестве резервные сервисы.
Режим распределения нагрузки - имеет два возможных варианта. Если установить «Приоритет по производительности» - то память сервера будет расходоваться больше для увеличения производительности. При выборе «Приоритет по памяти» - кластером 1С память будет экономиться.
Инструмент для работы с базой
Для оперирования с базой данных необходимо пользоваться средствами СУБД MS SQL.
Проверка конфигурации
Возможно, причина ошибка кроется в некорректной информации, содержащейся в Конфигурации. Для её проверки требуется выполнить команду «Проверка конфигурации». (Не путать с тестированием!). Перед выполнением нужно проверить установку чекбокса (флажка) - «логическая целостность». При обнаружении некорректности это будет отражено в сообщении. А ошибки будут удалены.
Мы рассмотрели причины отсутствия свободной памяти на сервере 1С и возможные пути устранения этого. Один из способов наверняка позволит разрешить проблему.
Эта ошибка является довольно типичной для 1С 8.3, с ней сталкиваются многие пользователи.
Причины возникновения
Причин, по которым может появиться ошибка «Недостаточно памяти 1С», на самом деле, довольно много. Очень часто данная ошибка возникает при некорректном обновлении конфигурации 1С Предприятие. Не менее редко к возникновению ошибки приводит загрузка объемной базы данных, или попытка обработать очень большой файл.
Так как причина возникновения ошибки при этих действиях кроется в нехватке адресной памяти, решить ее модернизацией оборудования, на котором установлена программа 1С, не получится.
Дело в том, что операционная система дает программному обеспечению доступ к ограниченному объему адресной памяти, как правило, этот объем составляет 2 гигабайта для тридцатидвухбитных операционных систем и 4 гигабайта для шестидесятичетырехразрядных операционных систем.
У вас есть вопрос, нужна помощь консультанта?
Как увеличить объем адресной памяти?
Расширить доступную программе 1С адресную память несложно. Для этого необходимо осуществить вызов командной строки. Это можно сделать несколькими способами, самый простой из которых - щелчок правой клавишей мышки по значку меню «Пуск» - «Командная строка»
В появившемся окне необходимо ввести следующее:
где числовое значение - желаемый объем памяти и нажать клавишу «Enter». После этого потребуется перезагрузка компьютера. После этого можно попробовать повторить операцию, завершившуюся ошибкой. Если ошибка повторяется, рекомендуем обратиться к специалистам.
Наши программисты будут рады проконсультировать вас и помочь.