Google Cloud SQL Postgres - Google Compute / Kubernetes中的随机缓慢查询

14
我一直在使用PostgreSQL测试Google Cloud SQL,但是有些查询随机需要3秒钟,而不是几毫秒。
我已经尝试了以下排除故障方法: - 查询本身没有问题,重新运行相同的查询即可正常工作。 - 索引已正确设置。数据库非常小,即使没有任何索引,它也不应该出现这种情况。 - Kubernetes容器通过SQL Proxy连接到数据库(我按照https://cloud.google.com/sql/docs/postgres/connect-kubernetes-engine的说明操作)。但这不是问题,因为我尝试直接连接到数据库,问题依然存在。 - 我将`net.ipv4.tcp_keepalive_time`配置为60,以确保连接不会断开。 - 我还有一个连接池,这些连接永远不会断开,以确保问题不是由此引起的。 - 当我直接通过本地PostgreSQL客户端运行查询时,我从未遇到过这个问题。 - 在本地开发并连接到我的本地数据库时,我也没有这个问题。
我的意思是:我感觉我的Google Compute实例和Google SQL实例之间存在某种奇怪的连接/链接问题,我似乎无法解决。有什么想法吗?
编辑: 我还注意到我的SQL Cloud实例每30秒记录一次以下日志: ERROR: recovery is not in progress HINT: Recovery control functions can only be executed during recovery. STATEMENT: SELECT pg_is_xlog_replay_paused(), current_timestamp

我认为查询并不是问题所在。我将SQL实例连接到本地开发机器并运行软件,一切都很正常。 - Michael Villar
哦,我在我的 SQL 云实例中也遇到了这些随机错误,每 30 秒一次(已添加到问题中)。 - Michael Villar
1
这个问题有任何更新吗?我也遇到了同样的问题。 - Mike Furlender
1
这里也有同样的问题。有更新吗? - jeremymarc
1
这里也有同样的问题。我们使用mysql、kubernetes和node.js应用程序。 通常查询时间为~10-25毫秒,但偶尔会出现随机的500-1500毫秒。 - A_V
显示剩余8条评论
1个回答

0

你面临的问题很有趣。虽然我对 Kubernetes 的了解不是很深,但我有一般性的理解,所以让我们看看我能否提供一些建议。

首先,你在问题中提到的 API 还处于测试阶段。因此,我相信仍然存在一些问题需要修补以最大化速度性能。

其次,据我所知,Kubernetes 是处理无状态工作负载的好工具。因此,处理需要查询状态的数据将是一个缓慢的操作。这篇文章(虽然不完全相关)解释了 Kubernetes 的一些缺点(并非所有问题都相关)。

第三,你能解释一下你的用例吗?你真的需要使用 Kubernetes 吗?还是像强大的计算引擎实例或 Dataflow 作业这样的其他工具可以解决问题?你是通过编程语言还是应用程序调用进行数据库查询的?

谢谢,让我知道吧!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接