Как перезапустить агент сервера 1с
Доброго времени! Именно перезапуском службы решили избавиться от проблем занятых зависших лицензий, одновременно и память освободить. Много решений, пробовал
net stop [1C:Enterprise 8.3 Server Agent (x86-64)]
net start [1C:Enterprise 8.3 Server Agent (x86-64)]
пробовал с паузой ping -n 16 localhost>Nul , или sleep.exe
Не добился нужного результата.
Интересно то, что после ручной остановки и запуска вчерашние сеансы так и остались висеть.
Платформа 8.3.17.1851, может знаете какие-то более простые решения?
Установи в консоли кластера серверов в свойствах каждого кластера параметр «Перезапуск рабочих процессов», например, 86400 (сутки).
Немедленно завершить приложения.
taskkill /F /IM ragent.exe
taskkill /F /IM rmngr.exe
taskkill /F /IM rphost.exe
taskkill /F /IM httpd.exe
taskkill /F /IM w3wp.exe
taskkill /F /IM 1cv8c.exe
taskkill /F /IM 1cv8.exe
Остановка службы 1С:Предприятие с очисткой временных файлов.
set LOG_FILE=»scripts.log»
set SERVICE_1C_NAME=»1C:Enterprise 8.3 Server Agent (x86-64)»
set SERVICE_RAS_NAME=»1C:Enterprise 8.3 Remote Server»
set CNTX_PATH=»C:\srvinfo\reg_1541″
set PFL_PATH=»C:\ProgramData\1C\1cv8″
set TEMP_PATH=»C:\Windows\Temp»
echo stop %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
sc stop %SERVICE_1C_NAME%
sc stop %SERVICE_RAS_NAME%
timeout 5
taskkill /f /im «rphost.exe»
taskkill /f /im «rmngr.exe»
taskkill /f /im «ragent.exe»
taskkill /f /im «ras.exe»
timeout 5
echo done stop %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
echo clean temp %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
DEL /Q /F /S %CNTX_PATH%\snccntx*
DEL /Q /F %PFL_PATH%\*.pfl
DEL /Q /F /S %TEMP_PATH%\*.*
echo done clean temp %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
Запуск службы 1С:Предприятие.
set LOG_FILE=»scripts.log»
set SERVICE_1C_NAME=»1C:Enterprise 8.3 Server Agent (x86-64)»
set SERVICE_RAS_NAME=»1C:Enterprise 8.3 Remote Server»
echo start %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
sc start %SERVICE_1C_NAME%
sc start %SERVICE_ RAS _NAME%
echo done start %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
Рестарт с очисткой временных файлов.
set LOG_FILE=»scripts.log»
set SERVICE_1C_NAME=»1C:Enterprise 8.3 Server Agent (x86-64)»
set SERVICE_RAS_NAME=»1C:Enterprise 8.3 Remote Server»
set CNTX_PATH=»C:\srvinfo\reg_1541″
set PFL_PATH=»C:\ProgramData\1C\1cv8″
set TEMP_PATH=»C:\Windows\Temp»
echo stop %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
sc stop %SERVICE_1C_NAME%
sc stop %SERVICE_RAS_NAME%
timeout 5
taskkill /f /im «rphost.exe»
taskkill /f /im «rmngr.exe»
taskkill /f /im «ragent.exe»
taskkill /f /im «ras.exe»
timeout 5
echo done stop %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
echo clean temp %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
DEL /Q /F /S %CNTX_PATH%\snccntx*
DEL /Q /F %PFL_PATH%\*.pfl
DEL /Q /F /S %TEMP_PATH%\*.*
echo done clean temp %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
echo start %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
sc start %SERVICE_1C_NAME%
sc start %SERVICE_ RAS _NAME%
echo Service %SERVICE_1C_NAME% restarted at %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
Аварийное завершение процесса rphost, который потребляет больше N Гб памяти.
N сильно зависит от вашей системы, нагрузки, конфигурации и т.д. В этом примере N = 8 Гб.
echo off
REM MemLimit in bytes!
REM MemLimit is 8 GB
set MemLimit=8796093022208
echo MemLimit is set %MemLimit% bytes
for /f «usebackq tokens=2» %%a in (`tasklist /FO list /FI «IMAGENAME eq rphost.exe» ^| find /i «PID:»`) do (
for /f «usebackq tokens=1» %%c in (`»wmic process where ProcessId=%%a get WorkingSetSize»`) do (
SET «var=»&for /f «delims=0123456789» %%i in («%%c») do set var=%%i
if not defined var (
if /I %%c GTR %MemLimit% (
echo Killing process rphost_%%a with Mem Usage %%c for breaking limit %MemLimit%
taskkill /F /PID %%a
)
)
)
)
(0) >Интересно то, что после ручной остановки и запуска вчерашние сеансы так и остались висеть.
Спящие сеансы? Они автоматически удаляются, смотрите настройку базы. По-умолчанию 24 часа (86400 сек).
Спящие сеансы лицензий не потребляют.
В менеджере кластера однозначно отображается потребление лицензий сеансами, что позволяет достоверно установить «виновников» и причины.
Вместо универсального решения всех проблем «перезагрузите компьютер».
(0) После перезапуска подсасываются сеансовые данные, которые складируются на сервере приложений.
Если после серьезных инцидентов мне требовался «чистый рестарт», то я обычно делал так — рестартовал сервер, после этого удалял все восстановленные сеансы в менеджере кластера и после этого снова рестартовал.
(0) чисти папку с сеансовыми данными.
Пользуйся
Pause 60
Как перезапустить агент сервера 1с
Простая инструкция тому, у кого вызывает непонимание выражение «перезагрузить сервер 1С:Предприятия» или «перезапустить Агент сервера 1С». Выполнив операцию один-два раза по инструкции, в дальнейшем «перезагрузка агента сервера 1С предприятия» будет выполняться машинально.
В Windows «Панель управление» — «Администрирование» — «Службы»
В списке служб находим в колонке «Имя» «Агент сервера 1С:Предприятия 8.x». Состояние — «Работает». Правой кнопкой на строке названия службы вызываем контекстное меню и нажимаем кнопку меню «Остановить» или «Перезапустить»
Служба «Агент сервера 1С 8» будет остановлена или перезапущена в соответствии с Вашим выбором. Состояние будет теперь «Отключена».
Чтобы запустить, необходимо там же, правой кнопкой вызвав меню, выбрать пункт «Запустить»
Служба «Агент сервера 1С 8» будет запущена, если в процессе запуска не возникнут ошибки.
Перезапуск сервера 1С с помощью средств платформы
В данном случае будет перезапускаться не агент сервера, а рабочие процессы.
- Необходимо открыть консоль сервера 1С.
- Открыть свойства кластера серверов (Рис №1)
- В группе параметров «Перезапускать рабочие процессы» настроить параметры перезапуска (Рис №2).
Рассмотрим что означают эти параметры перезапуска сервера 1С:
Интервал перезапуска (сек) — интервал времени после запуска процесса, по истечении которого рабочий процесс перезапускается. Нулевое значение означает, что рабочие процессы не будут перезапускаться автоматически.
Допустимый объем памяти (Кб) — устанавливает предельный объем виртуального адресного пространства, после постоянного превышения которого в течение определенного времени (см. следующий параметр) рабочий процесс будет автоматически перезапущен. Нулевое значение означает, что критический объем памяти не задан и автоматический перезапуск рабочих процессов не выполняется.
Интервал превышения допустимого объема памяти (сек) — определяет интервал времени постоянного превышения предельного объема виртуального адресного пространства, занимаемого рабочим процессом (см. предыдущий параметр), после которого выполняется автоматический перезапуск рабочего процесса. Нулевое значение означает, что автоматически перезапуск рабочих процессов не выполняется.
Автоматический перезапуск службы агента сервера 1С Предприятия 8 и/или любой другой службы.
Решение проблемы с утечками памяти рабочих процессов сервера 1С Предприятия средствами операционной системы.
Известно, что при функционировании рабочих процессов сервера 1С Предприятия 8.1 rphost.exe существует следующая проблема: из-за особенностей платформы, с подключением каждого нового клиента к рабочему процессу, увеличивается размер занимаемой рабочим процессом оперативной памяти. При этом, при отключении клиента, занимаемый при подключении объем не освобождается. Так же объем памяти, занимаемый рабочим процессом может увеличиваться при выполнении программного кода. Данное поведение называется “Утечками памяти” или “Memory Leaks”. В итоге, когда объем занимаемой памяти процессом rphost.exe вырастает больше опеределенного предела (в моем случае это было >1Gb), рабочий процесс безусловно перезапускается. Понятно, что клиенты, подключенные к этому процессу, получают сообщение, что соединение с сервером разорвано, прекращают работу и вынуждены переподключаться. В зависимости от количества пользователей и количества запущенных рабочих процессов, данная проблема возникает с той или иной частотой. В моем случае — пользователей порядка 60 и один рабочий процесс, подобная ситуация возникала до 5 раз в неделю. Т.е. ни о какой стабильной работе системы 1С Предприятие в этом случае речь не идет.
Первым шагом решения проблемы было — увеличить количество рабочих процессов, что и было сделано. Однако, проблему это решило лишь отчасти, перезапуски рабочих процессов стали происходить реже, но не исчезли совсем.
Второй и вполне логичный шаг — автоматический перезапуск процессов на сервере, о чем, собственно, и хочется написать.
Поскольку служба агента сервера 1С Предприятия представляет собой стандартную службу, в арсенале Windows есть стандартный способ остановки и запуска служб из командной строки командами net stop и net start. Достаточно эти команды лишь включить в bat-файл и настроить шедулер на запуск bat-файла по расписанию, я настроил перезапуск один раз в сутки, в ночное время. Следует иметь ввиду, что если перезапускать рабочие процессы в рабочее время, все подключенные к серверу 1С Предприятия клиенты будут отключены!
Кроме того, чтобы немного разнести по времени команды остановки и запуска службы, будем использовать известную утилиту sleep.exe, которую легко найти в Сети.
Примерный текст bat-файла restart1c.bat:
rem @echo off rem ----- начало скрипт остановки и запуска агента сервера 1С Предприятия---- set logfile="stopstartlog.txt" set timeout=20 echo %date% %time% >>%logfile% net stop "1C:Enterprise 8.1 Server Agent" >>%logfile% c:scriptssleep %timeout% echo %date% %time% >>%logfile% net start "1C:Enterprise 8.1 Server Agent" >>%logfile% c:scriptssleep %timeout% rem ----- конец скрипт остановки и запуска агента сервера 1С Предприятия----
Объяснение используемых переменных и команд:
* logfile — файл stopstartlog.txt, куда будут записываться результаты выполнения команд, размещается в том же каталоге, что и сам bat-файл;
** timeout — время в секундах;
*** c:scripts — каталог, где предполагается разместить программу sleep.exe, bat-файл и лог-файл;
Из этого же bat-файла можно сразу после перезапуска процессов запускать скрипт бэкапа средствами 1С Предприятия. В этом случае у вас гарантированно не будет подключен ни один клиент.
Необходимая ремарка: у пользователя, под которым будет выполняться задание по перезапуску службы должны быть соответствующие права на остановку и запуск служб сервера.
- материалы форума www.mista.ru;
- Документация по платформе 1С Предприятие 8.1;
- Документация по продуктам MS Windows;