【问题标题】:Insert large blob into vitess through node js通过节点js将大blob插入vitess
【发布时间】:2020-04-21 00:19:39
【问题描述】:

我正在使用这种方法将一个大 blob 插入我的 mySQL 数据库(Blob 大小约为 40MB)大约 15 秒后,它会引发异常或 CPU 利用率达到 100%,并在大约 25-50 秒内保持 100%。这里的所有东西都适用于小于 ~7MB 的 blob。

我正在使用节点 js,mysql

【问题讨论】:

  • 你的文件太大了最好把文件存放在一个目录里,把文件的位置存放在db中。
  • 我正在使用 docker 容器,所以我想将该 blob 访问到另一个容器中,如果我将它存储到文件中,这是不可能的。此外,在重新启动容器时,我很可能会丢失文件。
  • 附加信息请求。 RAM 大小,# 核心,MySQL 主机服务器上的任何 SSD 设备?在 pastebin.com 上发布并分享链接。 A) 完整(未编辑)my.cnf 或 my.ini 来自 SSH 登录根,文本结果为:B) SHOW GLOBAL STATUS;至少 24 小时正常运行时间后 C) 显示全局变量; D) 冲洗原木;然后发布您的错误日志的最后 400 行。 E) 完成 MySQLTuner 报告,为服务器 blob 大小分析提供建议。
  • wilson-hauck,目前我正在我的开发机器上尝试它,它是四核256GB SSD和16GB RAM。
  • @Vikas 你的开发机器应该没问题。您有机会发布其他请求的信息吗?

标签: javascript mysql node.js vitess


【解决方案1】:

您需要提高 vtgate 和 vttablets 的 grpc_max message_size:https://github.com/vitessio/vitess/blob/master/go/vt/grpccommon/options.go#L28-L32。即便如此,它也应该返回一个错误。

【讨论】:

  • 已经完成了,它可以与其他语言如 JAVA 一起使用,我在 JAVA 中尝试过,但不适用于 node js。
  • 这不是我们以前见过的。当它挂起时,您可以查看 vtgate 的 '/debug/pprof/goroutine?debug=1' 吗?它可能会给我们一个线索。如果堆栈跟踪太大,您可以将其作为问题发布到 github。
猜你喜欢
  • 2015-12-30
  • 2011-08-05
  • 1970-01-01
  • 2014-12-12
  • 2017-04-07
  • 2011-02-06
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多