SAP IQ发出许多检查点,这些检查点也需要很长时间才能完成

2020-09-10 12:15发布

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

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


你好

我们有一个无法解决的SAP IQ问题。 随着时间的流逝,数据库似乎越来越慢。 通过分析,我们发现数据库发出许多检查点(有时每分钟发出几个检查点),而-gm启动参数设置为10(分钟)。

检查点还占用相当多的时间,在2.4TB数据库上平均要花费12.4秒。 在检查点期间,其他连接(正在运行的查询)将暂停,直到检查点完成为止。 这可能是正常现象,但会导致查询执行效果非常差。

注意:我们有一个多重设置,其中包含三个IQ节点(一个主节点,一个读取器和一个写入器)。 在所有三个节点上都会发生此问题。 我们当前正在运行IQ 16.0 SP11PL22。

一个例子:

 4月8日15:00:41  SQLAnywhere():在2019年4月8日星期一15:00开始的" "( .db)检查点
 4月8日15:00:50 <主机名> SQLAnywhere(<服务器名>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:01:22 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一的" "( .db)的开始检查点
 4月8日15:01:35 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:02:22 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一的" "( .db)的开始检查点
 4月8日15:02:28 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:03:13 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一开始" "( .db)的检查点
 Apr 8 15:03:19 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:03:52 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一开始" "( .db)的检查点
 4月8日15:03:58 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:04:01 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一的" "( .db)的开始检查点
 4月8日15:04:08 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:04:10 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一的" "( .db)的开始检查点
 4月8日15:04:18 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 

有人知道吗?

-为什么我们要检查点的时间这么长?
-为什么要检查点的时间太长(特别是因为它们经常运行)
-我们如何减少检查点的数量和完成时间?/p>

谢谢!

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

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


你好

我们有一个无法解决的SAP IQ问题。 随着时间的流逝,数据库似乎越来越慢。 通过分析,我们发现数据库发出许多检查点(有时每分钟发出几个检查点),而-gm启动参数设置为10(分钟)。

检查点还占用相当多的时间,在2.4TB数据库上平均要花费12.4秒。 在检查点期间,其他连接(正在运行的查询)将暂停,直到检查点完成为止。 这可能是正常现象,但会导致查询执行效果非常差。

注意:我们有一个多重设置,其中包含三个IQ节点(一个主节点,一个读取器和一个写入器)。 在所有三个节点上都会发生此问题。 我们当前正在运行IQ 16.0 SP11PL22。

一个例子:

 4月8日15:00:41  SQLAnywhere():在2019年4月8日星期一15:00开始的" "( .db)检查点
 4月8日15:00:50 <主机名> SQLAnywhere(<服务器名>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:01:22 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一的" "( .db)的开始检查点
 4月8日15:01:35 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:02:22 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一的" "( .db)的开始检查点
 4月8日15:02:28 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:03:13 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一开始" "( .db)的检查点
 Apr 8 15:03:19 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:03:52 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一开始" "( .db)的检查点
 4月8日15:03:58 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:04:01 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一的" "( .db)的开始检查点
 4月8日15:04:08 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 4月8日15:04:10 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一的" "( .db)的开始检查点
 4月8日15:04:18 <主机名> SQLAnywhere(<服务器名称>):在2019年4月8日星期一完成了" "( .db)的检查点
 

有人知道吗?

-为什么我们要检查点的时间这么长?
-为什么要检查点的时间太长(特别是因为它们经常运行)
-我们如何减少检查点的数量和完成时间?/p>

谢谢!

付费偷看设置
发送
2条回答
浮生未央
1楼-- · 2020-09-10 13:00

首先,您是否打开了一个案例以寻求支持并与您合作? 如果没有,您应该像他们一样引导您完成所有事情并及时进行。 如果有,请共享案例编号,以便我们进行研究。

此外,您还必须考虑使用IQ 16.1 SP03或更高版本。 IQ 16.0已经存在了一段时间,并且没有IQ 16.1所做的所有增强。 IQ 16.1具有一些强大的功能,这些功能可能会在其他方面显着帮助您。

默认检查点间隔应为20或更大。 不知道为什么设置为10,但是对于Multiplex来说这是一个相当低的值。

数据是否一直在加载? 有一个经常使用但绝对不建议使用的WITH CHECKPOINT ON加载表选项。 永远不要在IQ对象上的IQ中使用此选项,因为它会导致过多的检查点。

您可以共享服务器的配置文件吗? 以及系统规格(物理内核,RAM,操作系统等)?

关键是查明导致检查点运行的原因。 智商通常不会那样做。 至少不是那么频繁。 也许每分钟一次,就会有在每个节点上启动并执行检查点的MPX事件。

对于2.5TB数据库,检查点的持续时间也有些长。 将其降低到1-2秒,您可能不会注意到检查点。 检查IQ系统主设备上的速度。 那是大多数读/写活动在检查点期间发生的地方。 您希望系统主系统中的每个"磁盘"执行100-500 MB/秒的IO。 如果您当前使用的设备不是这样,或者服务时间较长,那么当我们等待IO时,检查点时间会大大增加。

Mark

风早神人
2楼-- · 2020-09-10 12:45

嗨,Mark ,

非常感谢您的快速回复! 至于回答您的问题:

-我们将提出一张支持票,但是我们的经验是,处理这些请求需要很长时间,因此我也在这里提出我的问题

-我们当然已经考虑过升级到IQ 16.1(最新版本),但是我们将SAP Data Services用作ETL软件。 直到几个月前,IQ 16.0还是Data Services中最新支持的IQ版本。 由于我们拥有大量的ETL软件,因此将数据服务升级到最新版本将是一个大项目。 结合使用IQ 16.1和Data Services SP11,我们还发现其他客户遇到了一些重大问题,最终导致降级到IQ 16.0

-SAP建议给我们设置10分钟的检查点

-是的,数据一直在加载; 我们每隔5分钟,每15分钟和每小时运行许多ETL作业。 未使用WITH CHECKPOINT ON标志,它是Data Services目标表中的一个选项。

-我在这篇文章的底部添加了配置文件(用于协调节点)

-协调器节点的规格为12 CPU,192GB RAM。 操作系统是Red Hat,磁盘在使用10GBIT连接的SAN上。 从物理上来说,它们是SSD的。

-所有DBSpaces均由原始设备组成,其中USER_MAIN和SYSTEM_TEMP dbspaces由多个文件(每个12个)组成。 SYSTEM_MAIN dbspace只有1个dbfile(也是原始设备)。 为了加快检查点过程,将这一操作也分成几个文件是否有帮助?

编辑:我们尝试将IQ_SYSTEM_MAIN dbspace拆分为12个原始设备,但这不会提高性能。 当我们以单一模式启动协调器节点,并停止所有ETL和查询(因此,数据库根本不执行任何操作)时,检查点仍然需要10到15秒。 即使我们从交互式sql窗口中顺序运行多个检查点,它们也都需要12-14秒左右。

 -n <服务器名称>
 -x tcpip {port = <端口>}
 -cl 512M
 -ch 1024M
 -gc 10
 -gd DBA
 -gl全部
 -gm 400
 -gp 8192
 -ti 480
 -iqmc 10000
 -iqtc 112000
 -iqlm 28000
 -iqmsgsz 50
 -iqmsgnum 10
 -xs http(端口= 

一周热门 更多>