10.02.2022, 14:10 | #21 |
Участник
|
Отключал на аосе. В bin папке аоса в конф. файле меняется <gcServer enabled="false" />.
На клиенте я даже не знаю, есть ли такая настройка, ни разу не проверял. Но с клиентом проще. Там обычно все в один поток и пользователь может переоткрыть клиент, пока жалоб на клиент не поступало. Все тяжелые операции обычно на сервере. Эта настройка уже несколько лет работает в продуктиве на всех аосах, и клиентских и пакетниках. Я за это время особо негативных побочных эффектов не увидел, хотя лучше наверное включать только если реально диагностируется проблема. Я когда когда эту проблему исследовал, то наиграл воспроизводимый пример. В этом примере в таблицу InventParameters было добавлено несколько тяжелых полей и были частые обращения InventParameters::find() в джобе. Есть определенная граница в размере таблицы, после которой все начинает жутко тупить. Я предположил, что как то плохо собирается мусор от больших курсоров. Но возможно это не единственный триггер, и четких критериев нет. Уже после того как я этот параметр нашел мне удалось этот пример отправить в майкрософт и мне в итоге прислали рекомендацию как раз этот параметр и использовать. Сам параметр позиционируется как опция для тестовых сред для экономии памяти, но имеет большое влияние на работу нагруженных пакетников. |
|
|
За это сообщение автора поблагодарили: sukhanchik (10). |
10.02.2022, 16:11 | #22 |
Участник
|
Есть (Потому я и спросил. Из описания не понял, ваши проблемы только в пакетах наблюдались или и в клиентском коде тоже. Ну теперь разъяснили)
см. Ax32.exe.config Но там параметр не выставлен. Т.е. используется по умолчанию. |
|
10.02.2022, 18:49 | #23 |
Участник
|
Цитата:
Сообщение от Masel
Я когда когда эту проблему исследовал, то наиграл воспроизводимый пример. В этом примере в таблицу InventParameters было добавлено несколько тяжелых полей и были частые обращения InventParameters::find() в джобе. Есть определенная граница в размере таблицы, после которой все начинает жутко тупить. Я предположил, что как то плохо собирается мусор от больших курсоров. Но возможно это не единственный триггер, и четких критериев нет.
Если установлено Entire Table то вся таблица всасывается в локальную память. Проблема в том что той памяти выделяется аж 128Кбайт (если память не изменяет). В Dynamics Perf есть отдельный query на эту тему. |
|
10.02.2022, 20:15 | #24 |
Участник
|
Цитата:
Сообщение от vmoskalenko
Проверьте какой уровень кеширования выставлен в таблице InventParameters
Если установлено Entire Table то вся таблица всасывается в локальную память. Проблема в том что той памяти выделяется аж 128Кбайт (если память не изменяет). В Dynamics Perf есть отдельный query на эту тему. Конкретно с этой таблицей я разделил ее на две. Тяжелые кастомные поля убрал в отдельную таблицу. Но всю систему так не проверишь и главное нет четких критериев, поэтому параметр все таки лучшее решение в реальной жизни, если столкнулись с таким. Последний раз редактировалось Masel; 10.02.2022 в 20:19. |
|
|
За это сообщение автора поблагодарили: vmoskalenko (6). |
Теги |
garbage collector, gcserver, сборка мусора |
|
|