Бывают случаи, когда процесс rphost отъедает много ОЗУ (Иногда даже всю свободную).
Как правило, это происходит при аварийном завершении работы процесса (случается утечка) или конечно, неоптимальный код приводит к таким последствиям.
В результате, даже соседним процессам «Сервера 1С» ее может не хватать, как и всем остальным процессам на данном сервере (особенно если на борту уже есть MS SQL, сервер терминалов, веб сервер и прочие).
К слову, подобные вещи уже давно происходят и с MS SQL, чьи аппетиты не редко приходится усмирять администраторам.
Собственно борьбой с утечками памяти мы и будем заниматься в сегодняшней статье.
Разберем различные способы, которые позволяют решить проблему «утечек» памяти rphost – а.
В 1С признают официально, что утечки памяти есть (на техническом уровне), и проблема не решена. Обещают решить с выходом версии 8.3.20. Также есть надежда, что с выходом 8.3.20 решат и в целом проблему повышено потребления памяти процессами 1С.
Чтобы предотвратить потерю данных, закройте программу. НЕТ!! Файл подкачки — Решение ошибки
На «Сервер 1С» к сожалению, не все так просто как с MS SQL, здесь есть и ограничения версии «ПРОФ», и новые версии платформы. К примеру с 8.3.15 убрали возможность настройки «Допустимый объем памяти», что дополнительно давало нам возможность самим влиять на потребление памяти одного rphost-а. Некоторые настройки перенесли в «Параметры рабочего сервера».
Правда, обещают, что с версии 8.3.20 вернут обратно некоторые настройки регулирования потребления ОЗУ и для версии «ПРОФ», так как на сегодня, это возможно сделать, только используя «КОРП».
В 1С также временами не могут определиться, что оставить в «ПРОФ» а что перенести в «КОРП»:
Что также здорово «запутывает» пользователя.
Но и это еще не все )
Многие эксперты утверждают, что настроек «Сервера 1С» по умолчанию вполне достаточно, и что «Сервер 1С» не надо перезапускать.
Это утверждение только отчасти является верным!
Настройки «по умолчанию» имеют право быть, если действительно нет утечек памяти и других критических проблем, «Сервер 1С» не вылетает с ошибками и тд.
А утечки случаются и при небольших нагрузках (на «ПРОФ») и они как минимум могут требовать перезапуска рабочих процессов (rphost) так и более тонких настроек.
Правдой является и то, что перезапуск целого «Сервера 1С» не является «острой» необходимостью, так как корректного перезапуска rphost-а почти всегда достаточно, чтоб освободить память, и не навредить пользователям, которые в этот момент могут работать в 1С Предприятии.
Перезапуск «Сервера 1С» делаем только когда это действительно необходимо.
(К примеру, разово, в начале расследования утечки памяти).
Далее будет достаточно перезапуска rphost.
В разы же возрастает необходимость внесения правок, если у нас «КОРП»!
Есть высоконагруженные системы, где работают сотни пользователей, тогда действительно требуется чаще вносить изменения в параметры руками на «Сервере 1С», сюда и создание отказоустойчивого кластера, путем добавления «Рабочего сервера», также настройка, направленная на борьбу с утечками памяти (они встречаются и в «КОРП») а их в кластере будет еще больше.
РЕШЕНИЕ ПРОБЛЕМЫ «В системе недостаточно памяти»
А вот что касается части настроек с целью повысить как то производительность «Сервера 1С» (Не учитывая создания отказоустойчивого кластера серверов 1С), то вот здесь настройки как для «ПРОФ» так и «КОРП» будут малоэффективные.
Сервер 1С и так работает на максимум своих возможностей и фактически редко когда такие настройки могут быть действительно полезны. Усилия с целью повышения производительности стоит направить только на поддержание условий его работы, выделив достаточные аппаратные ресурсы.
Что ж, глубину проблемы мы с вами уяснили, теперь начинаем «распутывать».
Сперва разберемся, какое потребление rphost считать за нормальное.
Если говорить прямо, то сегодня на один RPHOST уже уходит больше 4ГБ ОЗУ.
В более старых конфигурациях 1С, эта цифра может быть меньше, а вот в новых (особенно ERP и подобных «тяжелых») , 10 -15 и больше ГБ, уже будет за норму.
ВАЖНО!
Напрасно надеется, что «Серверу 1С» хватит пары Гб, что остались у вас свободны, и тут никакие оптимизации не спасут!
Что в основном влияет на потребление ОЗУ процессом rphost:
- Количество сеансов
- Конфигурации 1С
- КОД (Качество написания)
- Фоновые задачи (Порожденные регламентными заданиями).
- Версия платформы 1С
Первое что стоит сделать в борьбе с утечкой:
Останавливаем «Сервер 1С», и очистим кэш на «Сервере 1С»!
И затем после его запуска в «боевых» условиях мы посмотрим на потребление ОЗУ в течение короткого времени от 30 мин до ~часа.
В этот период (30 мин – час) все пользователи (или около того) должны работать в 1С Предприятии, и мы увидим более-менее реальное потребление rphost-ов.
Бывает, что rphost чрезмерно потребляет ОЗУ не сразу, а на протяжении всего рабочего дня или даже нескольких дней. (Можно увидеть «утечку»).
После чего надо пройтись по сеансам!
С них я и всегда предлагаю начинать расследование, так как именно ошибки (не оптимально написанный код) чаще всего и вызывает «утечки».
Память (текущая) в сеансах.
Это объем переданных и полученных данных с момента начала клиентского соединения (в байтах).
Отсортируем по наивысшим показателям эти сеансы, после чего стоит пристально разобрать у пользователей, где на сеанс ушло больше всего ОЗУ, что они делают в этот момент в 1С, какие отчеты, документы, обработки запускают.
Затем получив список объектов, мы проводим их диагностику на уровне кода в конфигурации, конечно с привлечением программиста 1С.
Если после анализа, качество кода конфигурации 1С не вызывает у вас сомнения (разобрали что происходит в сеансах пользователей), тогда это и будет «обычное» (или близкое к этому) потребление RPHOST-ов ОЗУ у Вас.
В том случаи, если вместо «приложения» у вас «фоновая задача» кушает много ОЗУ, следует разобрать ее.
Если автор «фонового» известен, тогда поиск проблемы будет сильно упрощен, нам останется только отключить регламентные задачи, которые породили «фоновое задание», что у нас и имеет сильное потребление. (Вкладка Администрирование – Регламентные и фоновые задания).
Если вместо пользователя у вас автор «фоновой задачи» «DefUser» или трудно, поймать, кто запускает «фоновую задачу».
Тогда можно пойти другим путем и в целом на «Сервере 1С» установить «Блокировку регламентных задач» после чего перезапустить «Сервер 1С».
Конечно, совет будет вредным если рег. задания у вас в конфигурации нужны!
Далее рассмотрим случай, когда явно есть «утечка памяти», а разбор кода и отключение регламентных задач не решили проблему:
Обычно в этом случаи администраторы выполняют перезапуск «Сервера 1С», прямо скажем не очень хорошая идея, особенно когда это происходит посреди рабочего дня.
Более правильно, но только для «Аврала» ) будет установка «интервала перезапуска» в свойствах локального кластера:
Установив 86400 секунд, мы автоматизируем процесс перезапуска рабочего процесса раз в сутки (Ночью).
Сделайте настройку так, чтоб не попасть в рабочее время!
Конечно, это не решит проблему «утечки» но с симптомом позволит бороться, это на тот случай если у вас абсолютно нет времени предпринять что-то более изящное.
Раз уж мы заговорили о более правильном способе, то он состоит из настроек на перезапуск rphost-a в свойствах «Параметры рабочего сервера» (Только для КОРП!).
Как на картинке выше установим значение «Временно допустимый объем памяти процессов» в байтах (у нас это 15 ГБ).
И интервал превышения допустимого объема памяти процесса 300 сек.
Что будет происходить после установки значений выше:
Читать далее.
Зарегистрируйтесь, чтоб продолжить чтение статьи
Зарегистрироваться / Войти
Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>
С уважением, Богдан.
Присоединяетесь к нашей группе телеграмм: Здесь вы получите ценную помощь от умного бота «Коли» (ChatGPT) + знания сотен ее участников.
Похожие записи
Источник: kuharbogdan.com
Недостаточно памяти в 1С 8.3
Одна из самых распространенных ошибок, возникающих в процессе работы с 1С 8.3 – «Недостаточно памяти». В реальности она может происходить после множества событий – обновления, обработки больших файлов, формирования отчета, загрузки данных и прочих. Это означает, что любой администратор и разработчик 1С должен понимать суть проблемы и уметь исправлять ее. Простым увеличением оперативной памяти ПК или жесткого диска эту проблему не решить.
Решение проблемы на клиентском компьютере
Причины этой ошибки кроются в том, что в операционных системах семейства Microsoft выделяется определенный объем памяти на каждое приложение 1С. Эти значения заявлены разработчиком, компанией 1С. Для 32-разрядных систем это значение установлено в 2 Гб, для 64 – 4 Гб. Когда ПО превышает этот показатель, на мониторе возникает окно с ошибкой.
Приглашаем на
бесплатный вебинар!
18 июля в 11:00 мск
Самый простой способ избавиться от таких сообщений – удалить помеченные на удаление объекты в конфигурации. Это помогает нечасто, но избавляет от лишних колебаний. К тому же, риск этих действий минимален, поскольку не требует вмешательства во внутренние настройки 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С;
- Перезапуск рабочих процессов 1С, что приведет к уменьшению используемой памяти. Этот вариант подойдет только для опытных администраторов, разбирающихся в консоли администрирования сервера 1С;
- Используя технологический журнал, найти таблицу, при загрузке которой появляется ошибка «Недостаточно памяти» при обновлении или другой операции. Если ошибка появилась при работе с таблицей «config», то выполните проверку конфигурации с флагом «Проверка логической целостности конфигурации». Найти эту функцию можно в конфигураторе в меню «Конфигурация».
Еще одна распространенная ошибка 1С возникает, когда на жестком диске на сервере мало места. Временные таблицы занимают много места, и в случае его недостатка, администратор видит ошибку «Недостаточно свободной памяти для выполнения операции». В таком случае сложно давать точные советы, так как устройство сервера или кластера может существенно отличаться в разных вариантах. Среди стандартных решений, которые помогают в таких случаях, можно найти перезапуск сервера, увеличение свободного места, оптимизация запросов, обновление версии.
В компаниях с большим количеством пользователей ошибка «Недостаточно свободной памяти на сервере 1С:Предприятия 8.3» возникает достаточно часто. Большой проблемой и предпосылкой к этому является недостаточный анализ необходимой производительности. Поэтому при внедрении 1С уделите большое внимание достаточной мощности серверов, чтобы в будущем не пришлось настраивать производительность в ущерб стабильности.
Источник: wiseadvice-it.ru
Оптимизация и ускорение файловой базы и SQL сервера 1С 8.3
Любые пользователи 1С некоторое время спустя сталкиваются с тем, что программа начинает работать слишком медленно. Общие рекомендации по ускорению «1С» были даны в статье «Как ускорить работу 1С Бухгалтерия 8.3? Бесплатные лайфхаки по оптимизации», теперь поговорим об оптимизации файловой структуры и баз данных. Итак, что делать, чтобы ускорить базу «1С»?
Основные начала и принципа учета требуют практически немедленной реакции на любое событие хозяйственной жизни (см. Закон о бухучете), При между тем пользователи «1С: Бухгалтерия 8.3» отмечают существенное снижение скорости работы, что сказывается на продуктивности и эффективности работы. Попробуйте прежде всего оптимизировать базу в режиме конфигуратора.
Ускорение базы 1С в конфигураторе
Первым делом следует сформировать бэкап, что можно сделать и без запуска конфигуратора (при наличии прав администратора).
Формирование бэкапа
При запуске создания резервной копии все пользователи базы будут заблокированы, позаботьтесь о том, чтобы это не стало для них неожиданностей. В любом случае они будут уведомлены соответствующим сообщением. Алгоритм создания бэкапа в «1С» прост:
- «Администрирование» — «Обслуживание»;
- «Резервное копирование и восстановление» — ссылка «Создание резервной копии»;
- выбираем каталог (но все-таки лучше избрать сохранение на внешний носитель);
- дать команду «Сохранить резервную копию», нажав соответствующую кнопку. Имя файла задается автоматом, содержит дату и время создания и тип *.zip.
- дождаться завершения процедуры создания бэкапа и появления соответствующего сообщения;
- нажать кнопку «Закрыть».
На выходе вы получите зазипованный файл, находящийся там, где вы указали.
Тестирование и исправление
В режиме конфигуратора переходим по пути «Администрирование» — «Тестирование и исправление»:
В открывшемся окне отмечаем следующие пункты:
- «Реиндексация таблиц информационной базы»;
- «Пересчет итогов»;
- «Сжатие таблиц информационной базы».
Устанавливая галочки, мы получаем следующее:
- «Реиндексация таблиц информационной базы» — перестраивает табличные индексы, что позволяет ускорить 1с 8.3 файловый;
- «Пересчет итогов», т.ч. подсчитанных результатов, представленных в виде таблицы, что позволяет «разогнать» получение данных;
- «Сжатие таблиц информационной базы» уменьшает объемы БД на жестком диске.
Нажимаем кнопку «Выполнить», дожидаемся служебного сообщения об окончании операции, закрываем конфигуратор.
Проверяем результаты нашей работы. Если ускорить 1С 8.3 файловый не удалось, следует попробовать иные методы
Оптимизация старых ОС
Если в силу каких-либо причин вам приходится работать на «возрастных» ОС – в частности, Windows 7 («семерка»), — то будет нелишним предпринять ряд элементарных шагов, которые помогут ускорить файловую базу 1С, поскольку ПК сможет выделять дополнительные ресурсы для обслуживания системы.
Оптимальное быстродействие
Вызовите свойства ПК (щелчок правой клавиши мыши по иконке «Мой компьютер» — «Свойства»:
Выбрать «Дополнительные параметры системы» (меню слева):
Переходим на вкладку «Дополнительно», открываем «Параметры быстродействия»:
На вкладке «Визуальные эффекты» отметить чекбокс «Обеспечить наилучшее быстродействие» для того чтобы снизить нагрузку на компьютер.
Настройка электропитания
Переходим из «Панели управления» в меню «Электропитание»:
В списке планов электропитания выбирайте «Высокая производительность»:
После этих нехитрых операций ваш ПК даже под «семеркой» сможет выделить достаточные аппаратные ресурсы с тем ускорить файловую «1С».
Тормозит 1С, ускорить SQL?
Первая рекомендация, хотя и несложная по реализации, нередко помогает решить рассматриваемую проблему.
Производим запуск SQL Server Management Studio и ввод данных для подключения, кликнув правой клавишей по серверу, открываем «Свойства»:
Выбираем закладку «Память», настраиваем ограничение потребления оперпамяти. Это делается в окошке «Максимальный размер памяти сервера (МБ)». Чтобы рассчитать этот показатель, необходимо от всего объема оперативной памяти отнять на нужды системы 4096 Мб, а затем вычесть произведение 1536 на число rphost-процессов. Так, при 32 Гб оперпамяти на сервере и двух процессах rphost максимальный размер будет равен 25 600 Мб (32 768 (32 х 1024) – 4096 – (1536 х 2)).
Перейдя на вкладку процессоров, выставляем в окне «Максимальное число рабочих потоков» значение 2048 (при значении «0» число потоков не может превышать 255), и включить чекбокс «Поддерживать приоритет SQL Server».
Вызвав «Базы данных» и рабочую базу (нажатием правой клавиши мыши), переходим на «Свойства» — «Файлы» — «Авторасширение» выставляем расширение файла БД до 250 мегабайт, лога — до 100 мегабайт с ограничением до 4096 Мб.
После нажатия «OK» закрываем программу. Замеры показывают существенное ускорение файловой 1С.
Включаем мгновенную инициализацию
Включение мгновенной инициализации файлов для пользователя, от имени которого запускается Microsoft SQL Server, что позволяет «разогнать» процессы:
- создания БД;
- добавления в имеющуюся БД файлов, журналов и проч.;
- увеличения размера существующих файлов;
- восстановления БД и (или) файловых групп.
Развертываем «Локальные политики», кликаем «Назначение прав пользователей», дважды кликаем на «Выполнение задач по обслуживанию томов», нажимаем «Добавить» — и включаем включения пользователя или группу. Не забываем нажать «Применить».
Тест работы проводится путем создания новой базы (файл в 5 Гб, журнал транзакций — 1 Мб). Если она сформировалась моментально, то все корректно (не забудьте удалить тестовую базу).
Включить блокировку страниц в памяти
Включение разрешения на блокировку страниц в памяти для пользователя или группы производится аналогичным образом.
Тем самым мы определяем, какие именно пользователи вправе сохранять данные в оперпамяти. При этом система не будет отправлять страницы данных в виртуальную память на диске, что повышает производительность. Для проверки следует или перезагрузить сервер, или зайти под логином пользователя, под которым происходит запуск MS SQL Server.
Отключить DFSS для дисков
Механизмы Dynamic Fair Share Scheduling (DFSS) осуществляют распределение аппаратных ресурсов, балансируют их между пользователями, что порой замедляет работу. Чтобы ускорить файловую базу 1С, порой достаточно отключить для дисков, для чего достаточно, вызвав реестр («Win» + «R», в окне «Выполнить» вписать «regedit», нажать «Enter»). В ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTSFairShareDisk задать «0» в параметре EnableFairShare.
Отключить сжатие данных
Чтобы ускорить базу 1С, можно попробовать отключить сжатие данных для каталогов, где располагаются файлы БД. При включенной опции операционная система производит дополнительную обработку файлов, что замедляет процесс записи (хотя и экономит пространство на диске). Для отключения этой опции открываем свойства каталога (DATA Properties), на вкладке «Общие» (General) нажимаем «Другие» (Advanced Attributes), снимаем (если установлен) флажок «Сжимать содержимое для экономии места на диске» (Compress contents to save disk space).
Задать степень параллелизма
С помощью параметра «Максимальная степень параллелизма» (Max degree of parallelism) задается, во сколько потоков может выполняться один запрос. Так, если в поле стоит «0», то это означает, что сервер автоматически определяет это число. При использовании 1С оптимальным параметром будет «1».
Конечно, это далеко не все методы разогнать 1с, ускорить SQL, существует множество вариантов решения данной проблемы, правда, их реализацию лучше поручить техническим специалистам. Неумелое вмешательство в работу платформы может повлечь за собой потерю ценных данных и аварийную остановку ПО, а с ней – и работы в целом. Предлагаем квалифицированное и всестороннее обслуживание программ семейства «1С» – поручите техническую сторону дела нам, высвободив время для решения по-настоящему важных вопросов.
- Транспортный налог в 1с 8.3 – расчет и начисление в 2021 году
- Способы учета НДС в 1С Бухгалтерия 8.3
- Правильный учёт излишков товара в 1С Бухгалтерия 8.3
- Как в 1С 8.3 оформить возврат товара поставщику?
- Создание номенклатуры в 1С 8.3
ТОП ПРОДАЖ
- 1С:Бухгалтерия 8
- 1С:Управление нашей фирмой 8
- 1С:Управление торговлей 8
- 1С:Управление предприятием 2
- 1С:ЗУП 8
- 1C:Учет путевых листов и ГСМ
- 1С:Учет в управляющих компаниях
- Электронные поставки 1С
Облачные сервисы
- 1С:Фреш
- 1С:Готовое рабочее место
- 1С:ЭДО
- Маркировка товаров
- 1С:Отчетность
- 1C:Товары
- 1C-Ритейл Чекер
Источник: center-comptech.ru