Имя: Пароль:
1C
1С v8
Почему rphost не освобождает память
0 Антиквар
 
30.09.24
21:42
Всем привет!
Есть тяжелые сеансы пользователей (какой-нибудь громоздкий отчет или заполнение огромного документа), которые отжирают много памяти (допустим в консоли кластера 1С видим, что сеанс пользователя достиг 10 Гб). Соответственно rphost пухнет тоже до таких размеров. Но когда у пользователя процесс заканчивается, сеанс память освобождает, в консоли кластера в колонке "Память текущая" видим пусто. При этом rphost остается распухшим, память не освобождает.
Подскажите, как правильно выставить настройки рабочего сервера или кластера в консоли, чтобы rphost освобождал память?
У нас лицензии есть и КОРП и ПРОФ, везде такая история.
"Завершать проблемные процессы" - это же не то?
1 timurhv
 
30.09.24
21:54
(0) Мешает жить? В ветке товарищи уже обсуждали эту тему
Может ли динамическое обновление сжирать память на сервере 1С
2 timurhv
 
30.09.24
21:58
Ждете 8.3.27 и в свободное время (когда мало или нет пользователей) настраиваете перезапуск rphost:

https://wonderland.v8.1c.ru/blog/zadanie-raspisaniya-perezapuska-protsessov-dlya-rabochego-servera/
3 Смотрящий
 
30.09.24
22:17
(0) Почитайте про garbage collector - что это, нахрена нужно и как работает
4 Антиквар
 
30.09.24
23:02
(1) Да, мешает жить.
rphost-ы пухнут, и достигают критического объема памяти всех процессов, и если при этом какой-то сеанс пожирает много памяти, то срабатывает ограничение на безопасный расход памяти сеанса. И сеанс падает. А если разбухшие rphost-ы поудалять, то сеанс не падает, процесс доходит до конца.
5 Антиквар
 
30.09.24
23:03
(2) это не сильно спасет, за час работы уже имеем несколько сильно распухших рпхостов. А перезапуск в лучшем случае на ночь можно запланировать, 1 раз в сутки
6 Сергиус
 
01.10.24
00:32
(0)Увеличивайте память.
7 palsergeich
 
01.10.24
01:10
(0) бу дизайн так.
То что рпхост скушал, он обратно ОС не отдаёт, но если нет утечки то пере использует в рамках процесса.
Варианта 2.
Увеличить память или пересмотреть алгоритмы и если это возможно оптимизировать их под уменьшение пиков потребления памяти, как правило это возможно, но не всегда
8 Антиквар
 
01.10.24
01:59
спасибо, понял
9 arsik
 
01.10.24
07:54
Оставьте 1 рпхост. Тогда память переиспользоваться будет.
У вас сейчас не переиспользуется, т.к. разделяется по разным рпхостам.
10 Антиквар
 
03.10.24
09:17
(9) а точно если по разным, то не переиспользуется?
У нас база сильно нагруженная, рпхосты в сумме до 70 Гб, а тут получится один рпхост будет весить 70
11 Smit1C
 
03.10.24
09:20
(10) демоническим обновлением пользуетесь ?
12 arsik
 
03.10.24
09:24
(11) А как 2 процесса будут переиспользовать память друг друга?
Там даже логика вроде такая - задача отдается наименее загруженному рпхосту если в настройках кластера указано "Приоритет по памяти".
1й нагрузили и заняли память, следующая нагрузка упадет на следующий рпхост ну и так далее.
Попробуйте для начала в настройках кластера установить "приоритет по призводительности" + уменьшить количество рпхостов.
13 Антиквар
 
03.10.24
21:04
(11) демонически только расширения иногда обновляем. Но с этим не связано, т.к. агент сервера периодически приходится гасить, чтоб рпхосты все убить, и далеко не всегда между перезапусками агента бывает динамическое обновление
14 Антиквар
 
03.10.24
21:10
(12) У нас всегда стоит приоритет по производительности.
На количество рпхостов повлиять сложно, платформа их сама генерит. В новых версиях правда обещают сделать такую возможность, но пока никак.
Ну и всё же платформа не зря на несколько рпхостов делит, мне кажется если не перезапускать их на автомате, то всё же несколько - это лучше чем один
15 arsik
 
04.10.24
10:09
(14) Что за гонево? А эти настройки для чего?
16 ptiz
 
04.10.24
10:14
(0) Интервал перезапуска рабочих процессов какой стоит?
17 Тындр
 
04.10.24
21:45
(0) А должен?
18 breezee
 
06.10.24
16:46
1. Обновите платформу. Писали что помогало
2. Если не поможет соберите ТЖ с событием SCRIPTCIRCREF
3. Если ничего не нашлось соберите ТЖ c событием CALL. Выберите с максимальным значением Memory и MemoryPeak. Возможны проблемы с тем что считываются избыточные данные в запросах. Юзеры выводят миллионы строк в отчетах. Возможо сложение больших строк
19 Антиквар
 
08.10.24
01:36
(15) Это косвенные настройки, 1 рпхост с помощью их не сделать
(16) Не стоит. Мы не перезапускаем, т.к. непонятно, в какое время этот перезапуск произойдет
(17) Уже понял, что нет
(18) "Юзеры выводят миллионы строк в отчетах" - так и есть. Почему распухают рпхосты мне понятно, но я думал что после формирования отчета рпхост освободит память
20 palsergeich
 
08.10.24
01:46
(19) освободит, когда юзер закроет форму или завершит сеанс, но ОС не отдаст как правило, почему тоже в принципе понятно.
Я бы поигрался с Временно допустимым объемом памяти и временем временно допустимого превышения.
Но там есть нехорошая особенность - рубятся все вызовы которые больше 10% от временно допустимого объема разом.
В моем случае, когда я поставил 200 ГБ, но есть утренняя некая выгрузка на 25 гб - это немного жизнь подпортило, потом ее переписали оптимизировав потребление памяти, но не всегда это возможно.
В вашем контексте такое может быть и недопустимо.
21 breezee
 
08.10.24
09:39
(20) > Но там есть нехорошая особенность - рубятся все вызовы которые больше 10% от временно допустимого объема разом.

Они рубятся только если временно допустимый уже превышен.
2 + 2 = 3.9999999999999999999999999999999...