我正在尝试使用postgresql对WSO2身份服务器4.5进行基准测试,以衡量可以支持多少策略而不会有太糟糕的决策时间。
我有java程序使用org.wso2.carbon.identity.entitlement.stub-4.2.0.jar中的EntitlementPolicyAdminServiceStub上传我的所有策略:
adminStub.addPolicy(myPolicy)
在100个第一个策略之后,上传时间会有很大的下降(每个策略超过2秒),并且随着时间的推移会变得更糟。
对于3000个策略,WSO2不再响应,当我查看数据库统计信息时,我可以看到所有数据库的 10 ^ 12元组返回并且 10 ^ 11顺序元组读取表示reg_resource_property表。
这是正常的还是我的WSO2配置中有错误?
答案 0 :(得分:2)
是..可能存在一些限制..在您的情况下,它似乎是存储策略的问题..默认情况下,身份服务器在wso2注册表中存储XACML策略。您可以看到此类数据库统计信息..因为它不仅仅是将策略作为数据库条目放在表中。因为它是治理注册表,后面发生了很多事情......如果你需要更多的性能与策略存储,我想这是更好的通过扩展默认行为来实现新的策略存储。基本上,您可以编写策略存储来在多个简单数据库表甚至文件系统中保留策略。您可以从here找到注册表策略存储的来源。
此外,在运行时,所有策略都被加载到内存中,通常这是在初始化授权引擎时发生的。或者更少发生任何更新。当策略数量很大时,从以下方法检索策略可能会有延迟注册表(但注册表本身就像缓存和索引......所以可能没有我们想象的那么慢)。作为运行时,所有策略都保存在内存中,我们可能需要考虑服务器的内存占用情况。您可以使用wso2server.sh文件增加它。
此外,还有一些关于WSO2IS性能测试的doc,请参阅更多详情