Имя: Пароль:
1C
1С v8
Может ли динамическое обновление сжирать память на сервере 1С
0 Smit1C
 
18.07.24
16:34
Может ли динамическое обновление конфигурации сжирать память на сервере 1С (rphost +2GB при каждом обновлении)?
1 Волшебник
 
18.07.24
16:34
демоническое обновление всё может, даже разрушить базу
2 arsik
 
18.07.24
16:48
(0) перезапусти рабочий процесс и будет счастье.
В кластере интервал перезапуска устанавливаем на 60 секунд.
После того как в рабочих процессах появится еще один процесс возвращаем интервал в исходное состояние.
3 Smit1C
 
18.07.24
16:51
(2) да это понятно, но потом объем занимаемой памяти опять вырастет. Просто хочу понять причину - дело в дин обновлении или просто так совпадает и память разрастается от чего-то ещё...
4 arsik
 
18.07.24
16:56
(3) Ну вот смотри - где то же должна 1с все операции сравнения делать и хранить копию конфигурации. Для старых пользователей же остается все как есть, а для новых уже по новому.
5 Smit1C
 
18.07.24
16:57
(4) но когда со старой версии никто не работает (все пользователи перезапустились), то получается эта память должна освободиться?... А она не освобождается...
6 arsik
 
18.07.24
17:07
(5) Ну не факт. По каким флагам система понимает, что ей больше не надо держать копию метаданных мы не знаем.
7 Федя Тяпкин
 
18.07.24
17:21
не только может, но и съедает. опытным путем доказанный факт. перезапускаем процесс после демонического.
8 H A D G E H O G s
 
18.07.24
17:44
(5) Сервер 1С не освобождает память почти никогда. Он ее резервирует и использует позже.
9 rphosts
 
18.07.24
18:21
(2) перезапуск кластера каждые 60 сек?
А ты точно не под кайфом пишешь?
10 rphosts
 
18.07.24
18:23
(8) ну даже сеансы закрытые оставляет про запас, но что почти никогда - это гипербола же.
11 H A D G E H O G s
 
18.07.24
20:58
(10)

1) Делаем и выполняем вот такой код


&НаСервере
Процедура FillНаСервере()
    Набор=РегистрыСведений.РегистрСведений1.СоздатьНаборЗаписей();
    Для Сч=1 По 1000 Цикл
        Запись=Набор.Добавить();
        Запись.Измерение=Новый УникальныйИдентификатор;
        Запись.Ресурс="TestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTest";
        
    КонецЦикла;
    Набор.Записать(Истина);
КонецПроцедуры

&НаКлиенте
Процедура Fill(Команда)
    FillНаСервере();
КонецПроцедуры

&НаСервере
Процедура QueryНаСервере()
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    РегистрСведений1.Измерение КАК Измерение,
    |    РегистрСведений1.Ресурс КАК Ресурс
    |ИЗ
    |    РегистрСведений.РегистрСведений1 КАК РегистрСведений1,
    |    РегистрСведений.РегистрСведений1 КАК РегистрСведений11";
    Таблица=Запрос.Выполнить().Выгрузить();
КонецПроцедуры

&НаКлиенте
Процедура Query(Команда)
    QueryНаСервере();
КонецПроцедуры

&НаСервере
Процедура ClearНаСервере()
    Набор=РегистрыСведений.РегистрСведений1.СоздатьНаборЗаписей();
    Набор.Записать(Истина);
КонецПроцедуры

&НаКлиенте
Процедура Clear(Команда)
    ClearНаСервере();
КонецПроцедуры


2) Выходим из 1С, пусть на сервере 1С вообще не будет сеаснов. Запускаем ArtMoney и ищем строку "TestTestTestTestTest....". Находим дофигилиард
3) Идем покурить и через час снова ищем и видим, что дофигилярд не поменялся.
4) Меняем строку "TestTestTestTestTest...." на "ТестТестТестТест....", чистим регистр и заполняем его на 500 записей и выполняем запрос
5) В Артмоней снова ищем "TestTestTestTestTest...." и видим, что количество найденных записей стало меньше.
6) Увеличивая размер записей с 500 до 600-700-800 можно увидеть, как из памяти вымываются старые строки с "TestTestTestTestTest...." при неизменном объеме занятой памяти.
12 arsik
 
18.07.24
21:00
(9) ты точно все сообщение прочитал?
13 Смотрящий
 
18.07.24
21:04
(11) 6) ну реализовали выделение ускользающей памяти. Па-адумаешь.
14 evorle145
 
18.07.24
21:17
(1) обновление расширения при работающих юзерах считается динамическим? оно несет в себе такую же опасность?
15 H A D G E H O G s
 
18.07.24
23:36
(14) ни разу ничего плохого не происходило. Даже не представляю, как без расширений кто то внедряет что то без постоянно онлайн.
16 ДедМорроз
 
19.07.24
00:50
Как вы себе представляете освобождение памяти,если ее выделили куском,а освободили только часть этого куска ?
18 rphosts
 
19.07.24
05:07
(16) размер кванта памяти для обратного высвобождения - конечно вопрос.

Если этот квант памяти частично не используется - я-бы тоже не отдавал, решала-бы регулярная реструктуризация памяти, но регулярное подвисание программы не норм, поэтому видимо не используется.
19 rphosts
 
19.07.24
05:09
(11) нет под рукой кластера с админским доступом, позже возможно попробую... artmoney для просмотра занятой памяти?