繁体   English   中英

BigQuery 流式插入在 GKE 上失败

[英]BigQuery streaming inserts fail on GKE

我们有具有 3 个 n2-highcpu-8 节点的 GKE 集群,用 GO 编写的 web 应用程序扩展到 3 个实例(每个节点 1 个),使用流式传输将所有请求写入 BigQuery,我注意到非常奇怪的行为:

在高应用程序使用率期间,应用程序的 3 个实例中有 2 个在流式写入中开始 100% 失败,仅写入“超出上下文截止日期”作为错误,当我删除这 2 个 pod 并且它们恢复接收流量时,旧的 1 开始因“超出上下文期限”而失败,而新的 2 中的 1 成功继续写入数据,另一个开始失败。

我浏览了 BigQuery 文档中可用的报价和限制,但没有发现任何可能与此案例相关的内容,查看 Stackdriver Monitoring 以查看每张表每秒有多少写入以及 1500 左右的数字,以及数据的大小sent 也很小 1-5kb,我们不使用批量写入,所以它主要通过 goroutines 在请求到来时尽快完成。

BigQuery Logging 也没有任何错误/警告。

是否有任何隐藏的限制,或者整体 BigQuery 流式写入仅适用于少量同时写入,我们需要一些使用 Pub/Sub 和 Dataflow 的队列解决方案将数据大量传输到 BigQuery?

GKE 和 BigQuery 数据集位于 europe-west-2,这种情况每天都在发生

[编辑]

以下是来自最大表之一的一些流统计数据,如果它确实有任何区别:

流缓冲区统计 估计大小 249.57 MB 估计行 1,640,220 最早进入时间 2020 年 12 月 3 日,18:43:00

实际上这个问题与应用程序的 Affinity 设置的错误配置有关,并且 2 个 pod 在同一个 GKE 节点上运行,在黄金时段消耗了 100% 的 cpu,这似乎是一个相关的问题,所以在排序之后我们没有在写入 BigQuery 时看到任何上下文截止日期消息或错误

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM