简体   繁体   English

ArangoDB 警告 [3ad54] {引擎} 后台设置同步缓慢

[英]ArangoDB WARNING [3ad54] {engines} slow background settings sync

I have a ArangoDB 3.8.7 database running on a AWS instance that has ~200 million records (~ 1000 new records per minute).我有一个在 AWS 实例上运行的 ArangoDB 3.8.7 数据库,它有大约 2 亿条记录(每分钟大约 1000 条新记录)。

During the day when user request is higher I keep seeing this warning in the database logs and the requests responses starts getting really slow (from the normal ~500 mS to 5-15 secs).在用户请求较高的那一天,我一直在数据库日志中看到此警告,并且请求响应开始变得非常慢(从正常的 ~500 毫秒到 5-15 秒)。

WARNING [3ad54] {engines} slow background settings sync

I use a large AWS instance c5a.12xlarge (48 vCPUs) with 98 GB RAM and even AWS analysis shows my instance is over provisioned.我使用具有 98 GB RAM 的大型 AWS 实例 c5a.12xlarge(48 个 vCPU),甚至 AWS 分析显示我的实例已过度配置。

i-0c41xxxxxxxxxxx is over-provisioned
Compute Optimizer found that this instance's CPU, network bandwidth and network PPS are over-provisioned.

I'm running a WAL compaction task every 60 seconds.我每 60 秒运行一次 WAL 压缩任务。 (i've tried lowering it to 15 seconds and it seems it gets a little worse). (我试过将它降低到 15 秒,但它似乎变得更糟了)。 When it was 10 minutes was also terrible.当它是 10 分钟时也很糟糕。

2022-11-24T14:45:35Z [1303] WARNING [3ad54] {engines} slow background settings sync: 9.240683 s
2022-11-24T14:45:49Z [1303] WARNING [3ad54] {engines} slow background settings sync: 11.222022 s
2022-11-24T14:46:05Z [1303] WARNING [3ad54] {engines} slow background settings sync: 14.198186 s
2022-11-24T14:46:18Z [1303] WARNING [3ad54] {engines} slow background settings sync: 10.272200 s
2022-11-24T14:46:34Z [1303] WARNING [3ad54] {engines} slow background settings sync: 13.703265 s
2022-11-24T14:46:35Z [1303] INFO [99d80] {general} --------------------------
2022-11-24T14:46:35Z [1303] INFO [99d80] {general} Running compaction task...
2022-11-24T14:46:35Z [1303] INFO [99d80] {general} Compacting access...
2022-11-24T14:46:35Z [1303] INFO [99d80] {general} Compacting accounts...
2022-11-24T14:46:35Z [1303] INFO [99d80] {general} Compacting addresses...
2022-11-24T14:46:35Z [1303] INFO [99d80] {general} Compacting products...
2022-11-24T14:46:35Z [1303] INFO [99d80] {general} Compacting phones...
2022-11-24T14:46:35Z [1303] INFO [99d80] {general} Compacting call_log...
2022-11-24T14:46:35Z [1303] INFO [99d80] {general} --------------------------

Is there a way to optimize this since my instance is more than enough to handle it?有没有办法优化它,因为我的实例足以处理它? And what exactly does this warning means?这个警告到底是什么意思?

Edit: Today I've upgraded to ArangoDB 3.10.1 and also upgraded my AWS instance to c6a.16xlarge (64 vCPUs).!!编辑:今天我已经升级到 ArangoDB 3.10.1,并将我的 AWS 实例升级到 c6a.16xlarge(64 个 vCPU)。!! And the problem persists.问题仍然存在。

BTW: the main issues are not the warning messages themselves, the issue is the lag, data corruption/writing lock errors and huge delays that occurs when these warnings are being shown.顺便说一句:主要问题不是警告消息本身,而是延迟、数据损坏/写入锁定错误以及显示这些警告时发生的巨大延迟。

Dec 01 01:24:31 sudo[1402]: Caused by: com.arangodb.ArangoDBException: Response: 409, Error: 1200 - AQL: timeout waiting to lock key Operation timed out: Timeout waiting to lock key; key: 12430138595 (while executing)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.internal.util.ResponseUtils.checkError(ResponseUtils.java:55)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.internal.velocystream.VstCommunication.checkError(VstCommunication.java:157)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.internal.velocystream.VstCommunicationSync.execute(VstCommunicationSync.java:144)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.internal.velocystream.VstCommunicationSync.execute(VstCommunicationSync.java:45)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.internal.velocystream.VstCommunication.execute(VstCommunication.java:149)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.internal.velocystream.VstCommunication.execute(VstCommunication.java:144)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.internal.velocystream.VstProtocol.execute(VstProtocol.java:46)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:71)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:57)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.internal.ArangoDatabaseImpl.query(ArangoDatabaseImpl.java:171)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.springframework.core.template.ArangoTemplate.query(ArangoTemplate.java:358)
Dec 01 01:24:31 sudo[1402]:         at com.arangodb.springframework.repository.query.AbstractArangoQuery.execute(AbstractArangoQuery.java:83)
Dec 01 01:24:31 sudo[1402]:         at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor$QueryMethodInvoker.invoke(QueryExecutorMethodInterceptor.java:195)
Dec 01 01:24:31 sudo[1402]:         at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:152)
Dec 01 01:24:31 sudo[1402]:         at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:130)
Dec 01 01:24:31 sudo[1402]:         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
Dec 01 01:24:31 sudo[1402]:         at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
Dec 01 01:24:31 sudo[1402]:         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
Dec 01 01:24:31 sudo[1402]:         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)

There might be a few issues to look up可能有几个问题需要查找

If the database is not under heavy load and is running on a fast system, you may need to increase the --server.background-sync-wait-threshold setting in the database configuration( BECAREFULL ).如果数据库负载不重并且运行在快速系统上,您可能需要增加数据库配置中的--server.background-sync-wait-threshold设置 ( BECAREFULL )。

This setting determines the maximum amount of time that the database will wait for the background settings sync to complete before issuing a warning.此设置确定数据库在发出警告之前等待后台设置同步完成的最长时间。 Increasing this value will allow the database to wait longer for the sync to complete, but may result in slower performance.增加此值将允许数据库等待更长时间以完成同步,但可能会导致性能下降。

Also, you may check if the database is running on a slow system by looking at the system specifications, such as the CPU and disk speed.此外,您可以通过查看系统规格(例如 CPU 和磁盘速度)来检查数据库是否在慢速系统上运行。 If the system is slow, you may need to upgrade to a faster system or use a database engine that is optimized for slow systems.如果系统速度慢,您可能需要升级到更快的系统或使用针对慢速系统优化的数据库引擎。

Heavy load on the DB server might raise the issue too.数据库服务器上的重负载也可能引发此问题。

You also might check this GitHub Issue #15080您也可以查看此 GitHub Issue #15080

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Azure AD 同步 - 默认属性同步和 DirectoryExtension - Azure AD Sync - Default attribute synced and DirectoryExtension 没有Portal配置Azure AD Connect Cloud Sync? - Configure Azure AD Connect Cloud Sync without Portal? 最佳 Azure AD 解决方案自动将用户/组从一个 Azure AD 租户同步到另一个租户 - Best Azure AD Solution to automatically Sync Users/Groups from one Azure AD Tenant to another 是否可以更改 flutter 中原生广告的背景颜色? - Is it possible to change the background color of a native ad in flutter? 从 AWS EC2 托管 Active Directory 并从 Azure AD 同步用户 - Host an Active Directory from AWS EC2 and sync users from Azure AD API 权限状态未在 Azure AD 应用程序中授予警告 API 权限 - API Permission Status not granted warning in Azure AD Application API Permission 禁用同步后无法断开 Office 365 用户与 Azure AD Connect 的连接 - Cannot disconnect Office 365 user from Azure AD Connect after disabling sync boto3:pydevd 警告:boto3 获取属性 Image.name 很慢 - boto3: pydevd warning: boto3 Getting attribute Image.name was slow Android 命令行工具 sdkmanager 始终显示:警告:无法创建设置 - Android Command line tools sdkmanager always shows: Warning: Could not create settings 构建规则引擎并调用它的函数 - Build a rule engines and call it function
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM