|
06.06.2017, 13:35 | #1 |
Модератор
|
Я уже написал для чего "правильно" надо использовать SysGlobalCache, мое "правильно" и "правильно" от MS в этом случае совпадают
Ты сделал несколько спорных (на мой скромный взгляд) утверждений
Я предлагаю тебе попытаться их обосновать. Попробуешь ?
__________________
-ТСЯ или -ТЬСЯ ? |
|
06.06.2017, 13:58 | #2 |
Участник
|
Особое внимание прошу обратить на последний абзац: Best Practices
https://blogs.msdn.microsoft.com/axp...-implications/
__________________
// no comments |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
06.06.2017, 14:16 | #3 |
Участник
|
Цитата:
Сообщение от dech
Особое внимание прошу обратить на последний абзац: Best Practices
https://blogs.msdn.microsoft.com/axp...-implications/ Цитата:
SGOC is an LRU cache. When the cache is full, the least recently used element will be removed to accommodate newer element. Sizing the SGOC correctly will pay significant performance improvement over poorly sized SGOC setting. The number of elements Global Object cache can hold is defined in Server Configuration form under performance Optimization fast tab
Итак, вопросы: что вы думаете о глобальном кэшировании в Аксапте? как правильно, на ваш взгляд кэшировать, а как неправильно? что подлежит кэшированию, а что кэшировать ни в коем случае нельзя? что можно было бы сделать к кэшем в аксапте, чтобы упростить жизнь всех разработчиков, администраторов и пользователей? чтобы снизить вероятность ошибок, связанных с кэшированием? |
|
07.06.2017, 13:35 | #4 |
Участник
|
Будем справедливы.
Как отметил Vadik и dech, есть SysGlobalObjectCache. Там есть механизм вытеснения. Но вытесняются только те значения, которые не влезают в отведенные количественные лимиты (число записей, объем памяти) Другое дело, что в текущем коде SysGlobalObjectCache и SysGlobalCache используются поровну. Цитата:
Сообщение от dech
Особое внимание прошу обратить на последний абзац: Best Practices
https://blogs.msdn.microsoft.com/axp...-implications/ |
|
06.06.2017, 14:07 | #5 |
Участник
|
Цитата:
Сообщение от Vadik
Я уже написал для чего "правильно" надо использовать SysGlobalCache, мое "правильно" и "правильно" от MS в этом случае совпадают
Ты сделал несколько спорных (на мой скромный взгляд) утверждений
Я предлагаю тебе попытаться их обосновать. Попробуешь ? Берем акс2012, открываем дерево объектов, смотрим перекрестные ссылки. SysGlobalCache используется используется 1720 раз. хранит всякую гадость. включая, и Record, и изображения и чего только не хранит. SysGlobalObjectCache используется 1627 раз. хранит всякую гадость. включая record. разница между этими кэшами - будут ли значения видны разным клиентским сессиям. SysGlobalObjectCache - виден между сессиями, а SysGlobalCache "живет" в пределах одной сессии. все упомянутые в этой ветке глобальные кэши не имеют механизма устаревания данных. все упомянутые в этой ветке глобальные кэши можно полностью очистить. SysGlobalCache не следят за своим размером. SysGlobalCache не имеют механизма устаревания данных. все упомянутые в этой ветке глобальные кэши можно полностью очистить. на мой взгляд, методика работы с этими кэшами не должна отличаться. но хорошо что ты сказал про SysGlobalObjectCache. =========================== про hitRatio и размер пока придется поверить. или проверить самостоятельно - SysGlobalCache вполне доступен для редактирования. можно добавить измерялки в свой инстанс. =========================== Итак, вопросы: что вы думаете о глобальном кэшировании в Аксапте? как правильно, на ваш взгляд кэшировать, а как неправильно? что подлежит кэшированию, а что кэшировать ни в коем случае нельзя? что можно было бы сделать к кэшем в аксапте, чтобы упростить жизнь всех разработчиков, администраторов и пользователей? чтобы снизить вероятность ошибок, связанных с кэшированием? Последний раз редактировалось mazzy; 06.06.2017 в 14:21. |
|
06.06.2017, 20:56 | #6 |
Участник
|
Цитата:
= растет используемая память. = а из-за того, что java-объекты не освобождаются, сборщику мусора все сложнее и сложнее работать. = эффективность кэша снижается из-за того, что кэш хранит много объектов вплоть до рекомендации "в профилактических целях периодически перезагружать АОСы" |
|
06.06.2017, 21:15 | #7 |
Участник
|
|
|
06.06.2017, 21:24 | #8 |
Участник
|
Цитата:
видно число элементов в кэше, но не видно используемую память. но в ходе разбирательств выяснилось много чего другого забавного. я сформулировал выше. в конкретном случае разберемся. и с кэшами, и с памятью. мне больше было бы интересно рассуждения на тему: как правильно варить? и что люди делали в кэшами? в качестве побочного результата хочется получить знания о виндовых счетчиках и как публиковать данные из аксапты в них. Как добавить виндовый счетчик (performance monitor), который отображал бы администратору происходящее внутри аксапты? (кстати, Макс, видел твою внутреннюю страничку про регистрацию счетчиков и мониторинг. для всех бы такую. чтобы не зависело от внутренних служб) также было бы круто научиться перехватывать события закрытого класса SysGlobalObjectCache. ))) |
|
07.06.2017, 11:10 | #9 |
Участник
|
Цитата:
Причем проблема не только в указанных вами кешах (SysGlobalCache, etc), а вообще в том, что ядро много чего кеширует и потом не синхронизирует значения в кеше с актуальными данными. Возможно это будет оффтопик, но может быть составим реестр известных проблем и таблеток от них ? Навскидку 1. Проблема с добавлением по живой новых полей в табличку Ax 2012 R2. Поле "не извлечено" 2. Проблема при создании новых классов Extension Framework and SysGlobalCache issue Вообще, похоже в 2012-й решили жестко все кешировать, вроде бы это и неплохо, но постоянно лезут проблемы с неактуальностью значений в кешах (не только Sysglobalcache) 3. А вот тут кеша нет, а надо бы сделать кеширование. Долгий запуск AX2012 R2 |
|
Теги |
sysglobalcache, кэширование |
|
|