防止HANA负载过高-工作负载类缺少功能

2020-08-23 09:52发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)主要由于Fiori利用CDS视图...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


主要由于Fiori利用CDS视图进行的大量开发,我们在HANA中遇到了负载问题。

通常,系统具有大量可用的CPU和内存,但是有时(每天2-3次)用户将提交复杂的选择标准,从而消耗大量资源; 当他们没有迅速得到答复时,有时会重复重复提交具有相同(或非常相似)查询的搜索。 结合SADL框架并行提交许多查询,这意味着一个用户可以提交40多个高资源查询,并影响系统稳定性,而一个用户几乎消耗所有数据库资源。

理想情况下,我们将有一些参数(或工作负载类)会限制单次使用可以占用的资源。 但是我在当前设计中可以想到的唯一解决方案将意味着每个用户需要一个工作负载类。 但是,即使我们这样做,也无法解决多个并行提交高查询的用户。

为缓解此问题,我们提供了一个巡逻脚本来识别高数据库负载的情况,然后识别并杀死控制数据库的用户的连接。

有人在使用HANA中控制高负载的更标准方法吗?

预先感谢; 斯图尔特

6条回答
闻人可可
2020-08-23 10:31

感谢Lars;

以上内容符合我们的理解; 您的评论中有2条突出显示了我感觉缺少该功能的地方...

-"为BI用户或FIORI用户创建映射并不那么困难。"
-"设置TOTAL STATEMENT THREAD LIMIT,以便其他工作负荷类仍然可以运行"

如果只阻塞一个组件/工作负载类而不是完全降低数据库速度,显然会更好; 但对于我们(我猜想大多数公司都是这样),我们不允许一个用户/很少用户能够耗尽资源(例如Fiori)并阻止大量用户使用该资源。 另一个问题是,在许多情况下,HANA都会尝试通过有限的线程来完成昂贵的查询,而不是终止会话以释放资源。另一个限制是您只能限制线程或内存,但不能同时限制两者(我知道SAP 目前正在努力解决这个问题。

如果存在可以按用户/语句散列/应用/等来设置总语句线程限制的功能,而无需创建单独的工作负载类,那将是一个很大的改进。

如果它对更广泛的受众有用,请使用我们的巡逻脚本;

-开始允许所有用户使用高资源(仅受全局参数限制)
-被标识为在相当长的时间内消耗了很高资源的用户将失去连接以维护数据库稳定性
-该用户将被允许 在一段时间内减少了资源,如果超出资源,连接将再次被杀死
-如果用户继续创建高负载,则将他分配给"受限"工作负载类,并且总资源最少,情况将是 在将用户从该工作负荷类别中删除之前,先进行单独跟踪

谢谢,斯图尔特

一周热门 更多>