Можно презапустить службу 1С, но это может привести к тому, что сеансы пользователей, которые работаю с данными, завершаться аварийно.
Есть возможность перезапустить рабочие процессы сервера приложений без заверешния работы пользователей.
Для этого в консоли сервера выбираем процесс, который занял больше всего памяти и открываем его свойства.
В свойствах процесса указываем Использование = Не использовать. Нажимаем ОК.
Без паники. Все сеансы пользователей автоматически перейдут на другие рабочие процессы. Проверено на практике (много раз).
Дожидаемся, пока процесс не завершится:
Примечание: сеанс Конфигуратора не переносится с процесса на процесс.
После этого повторяем обратную операцию. Открываем свойство остановившегося рабочего процесса, указываем Использование = Использовать.
Ждем. При первом подключении выделяется память:
Все. Память освободилась. Начинается новая жизнь.
Также можно настроить автоматический перезапуск сервера.
это делает намного проще. В кластере устанавливаем порог допустимого объема памяти см. приложение.
+
Упустил главный момент необходимо поставить «Интервал превышения допустимого объема памяти __ секунд»
p.s. Работает как часы, версия платформы 8.2.15.310
Выдержка из документации:
Интервал перезапуска __ секунд
Интервал времени после запуска процесса, по истечении которого рабочий процесс перезапускается. Нулевое значение означает, что рабочие процессы не будут перезапускаться автоматически.
Допустимый объем памяти __ KB
Устанавливает предельный объем виртуального адресного пространства, после постоянного превышения которого в течение определенного времени (см. следующий параметр) рабочий процесс будет автоматически перезапущен. Нулевое значение означает, что критический объем памяти не задан и автоматический перезапуск рабочих процессов не выполняется.
Интервал превышения допустимого объема памяти __ секунд
Определяет интервал времени постоянного превышения предельного объема виртуального адресного пространства, занимаемого рабочим процессом (см. предыдущий параметр), после которого выполняется автоматический перезапуск рабочего процесса. Нулевое значение означает, что автоматически перезапуск рабочих процессов не выполняется.
Спасибо!
Возьмем на зметку 🙂
…
(1) спасибо 🙂
Методом пользуемся, когда нужно перезапустить рабочий процесс с зависшими фоновыми заданиями.
Все пользовательские сессии перебрасываются на другой рабочий процесс, а этот («зависший») убивается в диспетчере задач (для этого нужно в его колонках вывести PID процесса, а в свойствах рабочего процесса 1С посмотреть этот самый PID).
(1) alexex,
спасибо, будем пробовать
Сейчас проверил у себя , только один рабочий процесс, как сделать чтобы было больше ?, если завершу то точно все юзверы отключаться
(6) Посмотрите в желто-оранжевой книжке по особенностям 1С в клиент-серверном варианте
(6) hamlo_666,
В консоли администрирования: Кластеры-<ваш кластер>- Рабочие серверы-<ваш кластер>- Рабочие процессы — Добавить
Изменять настройку рабочих процессов без последующего перезапуска службы 1С влечет за собой кучу проблем у пользователей, проверено на практике :). Поиграться конечно можно, но перезапуск службы в конечном итоге обязателен.
(9) конкретно какие проблемы?
Вот нашел, начались сыпаться вот такие ошибки (УПП, в базе находилось примерно 200 пользователей):
1. При записи какого либо объекта, в данном примере, документа «Заявка на расходвание средств»:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
{ОбщийМодуль.ПроцедурыОбменаУПП.Модуль(884)}: Ошибка при получении значения атрибута контекста (НаличиеОбменаУПП)
по причине:
Попытка получения неинициализированного значения параметра сеанса
2. При входе в систему сразу выдавала ошибку: «Таблица не найдена «Справочник.Пользователи»….. и кнопка «Завершить работу»
Раньше таких ошибок не возникало, началось именно после того, как мы добавили наживую рабочие процессы.
Ошибки возникали хаотично, беглый анализ показал, ошибки появляются у тех пользователей которых сервер начал перекидывать с одного процесса на другой распределяя нагрузку. В начале пытались выкидывать этих пользователей из базы и после того как они заходили заново ошибка уходила, но как оказалось не надолго. Помучавшись два дня, в конечном итоге, вырубили всех пользователей, добавили заново рабочие процессы, перезапустири службу и проблем больше не было.
И в инсрукции к серверу явно написано нужно перезапускать, но как всегда начинаешь их читать когда уже проблемы возникли.
(11) спасибо!
(11) ravsan, Это была платформенная ошибка в 8.2.14 или 8.2.15 1С-ки её исправили
если не сложно напишите где, я такого не встречал.
Использую методику из первого поста 2 мес. полет нормальный. 350 активных пользователей.
Стояла платформа 8.2.14.519, согласен, очень может быть что проблема в ней.
Спасибо участникам за комменты, чрезвычайно познавательное обсуждение.
(1) alexex,
Наверно, не на всех версиях платформы это свойство ведет себя так, как описано в документации.
У нас на платформе 8.2.13.289 и .14.540 процессы продолжали жить с памятью, превышающей установленное пороговое значение, и при этом никакие сеансы пользователей не перемещались на другие процессы.
на платформе 8.2.14.537 есть глюки
А вот, что пишут 1С по этому поводу:
Проблема:
В клиент-серверном варианте информационной базы при работе в толстом клиенте, если кластер содержит несколько рабочих процессов, или выполнялись динамические обновления конфигурации базы данных, то при попытке получить из кода толстого клиента значения некоторых параметров сеанса может происходить ошибка
Попытка получения неинициализированного значения параметра сеанса
Дата публикации:
2012-01-19
исправлено в 8.2.15.301
Не когда бы не подумал, что инфостарт докатиться до подобных статей, которые расписаны в любом руководстве…
Или инструкции читать сейчас не в моде?
(18) Dimasik2007, ладно вам. эта статья довольно полезная, особенно комменты. в частности (4)
Инфостарт «докатился». кучу публикаций даже не возникает желание открыть.
(19) Serj1C, (18) Dimasik2007,
так происходит со всеми ресурсами по мере нарастания их популярности
Полезный топик, и комменты порадовали. А то постоянно ждать приходилось, пока все юзеры по домам в конце рабочего дня разойдутся, или выгонять всех.
(20) Den_D,
Собственно, в отсутствии популярности, ресурс загибается. Нужен баланс.
(22) Silenser,
как собственно и в рабочих процессах сервера 🙂
Вопрос нуба:
что это на картинках и где про это почитать можно ?)))
(24) это сервер приложений 1С. Первоисточник — это документация 1С.
С недавнего времени тоже стал рабочие процессы убивать. Удобно и практически без последствий!
Прекрасный метод. Репетируем его с 1С еще с 8.2.9…. до сих пор (8.3.ххх) не работает корректно. Когда реально промышленные масштабы — сходит с ума и валится так, что потом фиг поднимешь…
Хотя конечно многое уже поправили, но ИТОГО не работает. Так что будьте осторожны )
ЗЫ. Кстати задумано так, что отключать можно даже один процесс. Система должна автоматом создать НОВЫЙ и перекинуть на него юзеров, не срабатывает. Не всегда.
ЗЗЫ: Автоматический перезапуск — оказался фигней. У вас 20-30 процессов. Они ОДНОВРЕМЕННО достигают таймаута и ОДНОВРЕМЕННО создав свои клоны отрубаются. Но пока происходит переключение у вас 40-60 активных процессов — система сходит с ума и падает.
ЗЗЫ: автоматически по превышению — не работает — балансировка нагрузки приводит к тому, что процессы ПРАКТИЧЕСКИ одновременно достигают придела памяти — дальше происходит коллапс из предыдущего варианта.
Так, что пользуйтесь, но бойтесь ))
Ручное управление — прямая дорога 1С-ку к превращению в периферию сервера приложений. Нужен автоматический процес — cmd или bat файл.
(28) так уже написано жеhttp://raw8.ru/not-enough-free-memory-on-1c-enterprise-server/
Где в логах можно увидеть перезапуск сервера приложений в автоматическом режиме?
Откуда знать, что перезапуск произошел успешно? Кстати, сам MS SQL Server постепенно увеличивает объем памяти в рабочих процесах во время работы. Поэтому остановки/перезапуска только Агента 1С недостаточно — нужно останавливать SQL Server.
>> Где в логах можно увидеть перезапуск сервера приложений в автоматическом режиме?
Хороший вопрос. Надо поискать.
>> Кстати, сам MS SQL Server постепенно увеличивает объем памяти в рабочих процесах во время работы.
«Рабочие процессы» это понятие сервера приложений 1С.
Понятно, что у SQL своя память и за ней тоже можно следить и управлять. Здесь речь только про сервер приложений.
>> Поэтому остановки/перезапуска только Агента 1С недостаточно — нужно останавливать SQL Server.
Это за рамками данной публикации.
а как данный момент реализуется в 8.3.5 ?
(32) cmd_vasec, тоже неделю назад столкнулся. здесь описано:http://1cnik.by/server1crphost.html