powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Поиск утечки памяти. Настройка logcfg.xml
6 сообщений из 6, страница 1 из 1
Поиск утечки памяти. Настройка logcfg.xml
    #37536873
Добрый день.

Пару недель назад начались утечки памяти. В течение двух суток объем памяти занимаемой rphost постепенно увеличивается, достигает полутора гигабайт, память на сервере заканчивается и приходится перезагружать сервер. В случае если корректно завершить все клиентские сеансы - память также не очищается.

Попробовал отследить утечку памяти при помощи технического журнала . Для этого создал файл logcfg.xml такой структуры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<config xmlns="http://v8.1c.ru/v8/tech-log">

    <log location="d:\1C\Administration\log" history="72">
		
		<event>
			
			<eq property="name" value="LEAKS"/>
			
		</event>
		
		<property name="all"/>
		
    </log>
	
	<leaks Collect= 1 >
		
		<point Call="client"/>
		
		<point Сall="server"/>
		
		<point Proc="МодульСеанса/"/>
		
		<point Proc="МодульПриложения/"/>
		
		<point Proc="МодульВнешнегоСоединения/"/>
		
	</leaks>
	
    <dump location="d:\1C\Administration\dump" create="1" type="2"/>
	
</config>

При такой конфигурации в логи не выводится вообще ничего. С другой конфигурацией, например такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<config xmlns="http://v8.1c.ru/v8/tech-log">

    <log location="d:\1C\Administration\log" history="72">

		<property name="Context"/>
		
		<event>
		
			<eq property="Name" value="MEM"/>
			
		</event>

		<property name="all"/>
		
    </log>

    <dump location="d:\1C\Administration\dump" create="1" type="2"/>
	
	<leaks Collect= 1 > 
	
	</leaks>
	
	<mem/>

</config> 
выводится лог по выделению памяти (понять из него можно только то что я и так вижу - память выделяется и не всегда полностью очищается).

Подскажите пожалуйста - как "выловить" это проблемное место в котором происходит утечка памяти.

Версия платформы 1С 8.1.15.14
СУБД Microsoft SQL Server 2005
...
Рейтинг: 0 / 0
Поиск утечки памяти. Настройка logcfg.xml
    #37536922
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КонсольЗаданий.epf смотрели?
...
Рейтинг: 0 / 0
Поиск утечки памяти. Настройка logcfg.xml
    #37536972
Нет, не смотрел.

В учетной системе выполняются и регламентированные задания и планировщиком Windows есть вызовы, когда задание надо отработать на стороне клиента. Но про все эти фоновые задания я знаю и, если бы утечка началасть после каких-то изменений связанных с одним из фоновых заданий - действительно первым делом начал бы подробно разбираться с этим заданием. Никаких новых заданий не добавлял и не модифицировал, изменений в них не было ну минимум несколько месяцев, насколько я помню.

Примерно в это время как начались утечки памяти я занимался
Внешней обработкой

Отчетами

Процедурой которая вызывается из модулем проведения в нескольких документов, но изменял только логику.

В упор не помню чтобы добавлял работу с таблицами значений или массивами. Поэтому и начал поиски при помощи технического журнала.
...
Рейтинг: 0 / 0
Поиск утечки памяти. Настройка logcfg.xml
    #37538200
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий ЗайцевНет, не смотрел.
В учетной системе выполняются и регламентированные задания и планировщиком Windows есть вызовы, когда задание надо отработать на стороне клиента. Но про все эти фоновые задания я знаю и, если бы утечка началасть после каких-то изменений связанных с одним из фоновых заданий - действительно первым делом начал бы подробно разбираться с этим заданием. Нжурнала.
И все же смотри в сторону заданий. Дело в том, что ты можешь ничего не менять: просто алгоритм заданий по каким-то причинам стал обрабатывать больше данных и утечка стала заметной.
Пример из личной практики: написал я как-то подсистему, которая на основе штатного механизма версионирования позволяла навешивать на базу определяемые пользователем условные события с извещениями. Например, пришел платеж > 5 млн.руб. - извещение. Пока в справочнике отслеживаемых событий было немного, все работало нормально. Как только количество "хотелок" перевалило за несколько десятков, фоновый процесс стал забирать более 2Г памяти и "вешать" сервер. Оптимизировал код, переписал фоновое задание таким образом, что за один запуск анализируется только одно событие - и все стало Ok.
...
Рейтинг: 0 / 0
Поиск утечки памяти. Настройка logcfg.xml
    #37538209
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верный признак того, что "виснет" задание - увеличение его времени выполнения. Кроме того, ты можешь в журнале регистрации посмотреть № сеанса, под которым запущено задание и потом в консоли сервера увидеть объем занимаемой памяти.
...
Рейтинг: 0 / 0
Поиск утечки памяти. Настройка logcfg.xml
    #37563223
Во-первых хочу поблагодарить за ответы.

Причину утечки выяснил. Это было не регламентированное задание.

В начале сентября (то-есть около двух месяцев до возникновения проблемы) заниматься оптимизацией на стороне SQL-Server-a. Вобщем "игрался" с параметрами. Есть такой параметр max full-text crawl range

Код: sql
1.
Параметр "max full-text crawl range" применяется для оптимизации использования ЦП, что позволяет улучшить производительность полнотекстового сканирования. С помощью этого параметра можно указать количество секций, которые MicrosoftSQL Server будет использовать при полном сканировании индекса. Например, при неоптимальном использовании нескольких ЦП значение этого параметра можно увеличить до максимума. Помимо этого параметра, определение фактического числа используемых секций в SQL Server производится с учетом ряда других факторов, например количества строк в таблице или количества ЦП.



У меня двухпроцессорный сервер, четыре ядра на каждый процессор. Установил значение параметра в 16 (было 0), посмотрел пару дней - вроде никак не повлияло на производительность. Вернуть в прежнее значение - забыл.

Дальше события развивались так:
В начале ноября начала наблюдаться утечка памяти. Приходилось перегружать сервер раз в сутки/ в двое суток. Пямять забивал процесс rphost - сервер приложения 1С.
Среди всех возможных причин проблемы я вспомнил об этом злополучном параметре. Установил его в 4. Утечка памяти значительно уменьшилась, но все равно продолжалась. Установил его в значение 1 - утечка памяти практически прекратилась, но за сутки rphost все равно приростал на сотню/две мегабайт.
После установки max full-text crawl range в 0 - проблема утечки памяти прекратилась.


Конечно после всего этого у меня остались вопросы, ответы на которые скорее всего кроются в сферах непознаного и мистического:
Почему утечка началась не сразу, а только спустя два месяца.

Какое отношение параметр, который по сути должен влияеть только на работу запросов, в которых происходит полное сканирование индекса, имеет к механизмам выделения и очистки памяти сервера приложений.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Поиск утечки памяти. Настройка logcfg.xml
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]