Сервер идентификации WSO2 работает очень медленно с политиками 2000

Я пытаюсь сравнить WSO2 сервер идентификации 4.5 с помощью postgresql, чтобы определить, сколько политик можно поддерживать, не тратя слишком много времени на принятие решения.

У меня есть Java-программа для загрузки всех моих политик, используя EntitlementPolicyAdminServiceStub из org.wso2.carbon.identity.entitlement.stub-4.2.0.jar:

adminStub.addPolicy(myPolicy)

После 100 первых политик происходит значительное уменьшение времени загрузки (более 2 секунд для каждой политики), и со временем оно ухудшается.

Для 3000 политик WSO2 не является более отзывчивым, и когда я просматриваю статистику базы данных, я вижу, что было возвращено более 10^12 кортежей для всей базы данных и 10^11 последовательных кортежей для таблицы reg_resource_property.

Это что-то нормальное или в моей конфигурации WSO2 есть ошибка?

1 ответ

Решение

Да.. может быть некоторое ограничение.. В вашем случае, похоже, проблема с хранением политик. По умолчанию сервер идентификации хранит политики XACML в реестре wso2.. Вы можете увидеть такую ​​статистику базы данных из-за этого.. Потому что это не то же самое, что просто поместить политику в виде записи базы данных в таблицу... Поскольку это реестр управления, за этим много чего произошло... Если вам требуется более высокая производительность при хранении политики, я думаю, что лучше внедрить новую хранилище политик, расширяя поведение по умолчанию. По сути, вы можете написать хранилище политик для сохранения политик в простой таблице базы данных или даже в файловой системе. Вы можете найти источник хранилища политик реестра здесь.

Кроме того, во время выполнения все политики загружаются в память, обычно это происходит, когда инициализируется механизм предоставления прав... или происходит не любое обновление. Когда количество политик велико, может быть задержка при получении политик из реестра (но Сам реестр как кеширование и индексация... так что может быть не так медленно как мы думаем). Поскольку во время выполнения все политики хранятся в памяти, нам может потребоваться учитывать объем памяти сервера. Вы можете увеличить его, используя файл wso2server.sh.

Кроме того, есть некоторые документы, которые были упомянуты о тестировании производительности с WSO2IS, пожалуйста, обратитесь к нему для более подробной информации

Другие вопросы по тегам