phone +7 (495) 66 014 66

× Общий раздел

Значительное потребление памяти процессами кластера на сервере приложений

7 года 3 мес. назад #4937 от Дмитрий
Краткое содержание:
По счетчику Performance Monitor \Memory\Available Mbytes видим, что объем доступной памяти близок к нулю.

Что делать?
Что требуется сделать
1. Подключиться к указанному серверу
2. Запустить RamMap
3. Найти процесс, который использовал всю доступную оперативную память. Стоит также смотреть на закладку File Summary.
4. Найти причину
5. Если это процесс rphost, то открываем консоль администрирования серверов 1С
o Переходим на страницу "Сеансы"
o Находим колонку Память (текущая)
o Упорядочиваем по колонке
o Записываем номера сеансов, которые использовали больше всего памяти
o Завершаем сеансы
o Проверяем, успело ли сработать условие перезапуска процессов кластера серверов
o Если есть сеансы, которые находятся в длительном клиент-серверном вызове, то записываем номера сеансов
o Завершаем сеансы, убеждаемся, что процессы успешно перезапустились.
o Убеждаемся, что памяти достаточно
6. Если процесс rmngr и виновник не понятен, то снимаем дамп с помощью утилиты ProcDump
o Полученные дампы и технологические журналы (если собирались) отправляем в 1С с подробным описанием проблемы и симптомов
o Следует учитывать, что нет смысла отправлять дампы в 1С, если на сервере действительно очень мало доступной оперативной памяти, а rmngr при нормальной работе занимает ровно тот же самый объем
7. Ищем в журнале регистрации полученные номера сеансов с целью выяснить сценарий, который выполнялся в момент воспроизведения проблемы. Анализируем.
8. Проверяем, настроен ли перезапуск процессов кластера.
Как настроить кластер серверов 1С Предприятия так, чтобы не заканчивалась доступная оперативная память.

У кластера серверов 1С Предприятия есть несколько настроек перезапуска процессов по превышению порога памяти. Их можно найти в параметрах кластера в консоли администрирования(рис. 1).


Рис. 1. Параметры кластера.

Подробная информация по настройкам указана на странице ITS.

Рекомендуется всегда настраивать параметры
• Допустимый объем памяти
• Интервал превышения допустимого объема памяти
• Выключенные процессы останавливать через

"Допустимый объем памяти" стоит устанавливать из расчета, того, что в случае срабатывания условия превышения показателя будет запущен ещё один процесс rphost того же объема, как при нормальной работе кластера серверов в этой информационной системе.
Например, на рабочем сервере имеем 12 Гб ОЗУ. Допустим для конкретной информационной системы характерен размер rphost около 3 Гб. В этом случае порог превышения памяти следует рассчитывать следующим образом:

"Допустимый объем памяти" = 12 ГБ - 2 Гб (объем, занимаемый процессами системы) - 3 Гб * 1 rphost (объем всех процессов rphost) = 7 Гб. Т.е. процесс rphost в худшем сценарии может вырасти до 7 Гб.

Для случая, когда у нас при штатной работе используются два процесса rphost.

"Допустимый объем памяти" = 12 ГБ - 2 Гб (объем, занимаемый процессами системы) - 3 Гб * 2 rphost (объем всех процессов rphost) = 4 Гб. Т.е. процесс rphost в худшем сценарии может вырасти до 4 Гб.

Такая рекомендация исходит из особенностей поведения в момент перезапуска процессов кластера. Как это происходит:
• процесс rphost превышает "Допустимый объем памяти" в течение "Интервал превышения допустимого объема памяти" секунд, срабатывает условие перезапуска процессов кластера.
• запускается "новый" процесс rphost
• "старый" процесс rphost выключается, но не завершается
• соединения назначаются на "новый" процесс rphost, который сразу полноценно включается в работу
• "старый" процесс будет исполнять вызовы (которые ещё существуют) максимум в течение ещё "Выключенные процессы останавливать через" секунд, но не более того.
• через время "Выключенные процессы останавливать через" "старый" процесс rphost завершается.
• новый процесс полноценно работает
Т.е. в течение периода, указанного в "Выключенные процессы останавливать через" будет одновременно работать как минимум два процесса rphost: "старый" и "новый".
Не следует указывать "Допустимый объем памяти" меньше нормального рабочего объема памяти процесса rphost для вашей системы, т.к. противном случае у вас постоянно будут перезапускаться процессы кластера серверов.
Настройки
• Интервал превышения допустимого объема памяти
• Выключенные процессы останавливать через
следует стараться указывать как можно меньше исходя из характера нагрузки на информационную систему, например, по 60 секунд, если мы рассчитываем, что все операции (или большая их часть) должны выполниться быстрее 60 секунд.
Чем больше значения указанных параметров, тем менее эффективен может оказаться механизм перезапуска процессов, но зато позволит "успешно выполнить" большее число вызовов.

Batch file для получения дампов кластера серверов 1С.
Нужно запустить batch file из директории, в которой расположен ProcDump (technet.microsoft.com/en-us/sysinternals/dd996900.aspx)
@ echo off
echo Start dumping all rmngrs, rphosts, and ragents on this server...
CD %~dp0
for /f "usebackq tokens=2" %%a in (`tasklist /FO list /FI "IMAGENAME eq rmngr.exe" ^| find /i "PID:"`) do (
start /b procdump.exe -ma %%a rmngr_%%a)
for /f "usebackq tokens=2" %%a in (`tasklist /FO list /FI "IMAGENAME eq rphost.exe" ^| find /i "PID:"`) do (
start /b procdump.exe -ma %%a rphost_%%a)
for /f "usebackq tokens=2" %%a in (`tasklist /FO list /FI "IMAGENAME eq ragent.exe" ^| find /i "PID:"`) do (
start /b procdump.exe -ma %%a ragent_%%a)
pause
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.081 секунд