柴油机编译挂在 Lightsail 上

Posted

技术标签:

【中文标题】柴油机编译挂在 Lightsail 上【英文标题】:Diesel compilation hangs on Lightsail 【发布时间】:2020-11-07 11:31:28 【问题描述】:

我正在尝试在 Amazon Lightsail 上部署一个由数据库支持的 Rust 应用程序。它使用 ORM 板条箱 Diesel。它可以在我的本地(Arch)Linux 机器上顺利编译。

为了远程编译应用程序,我通过 SSH 连接到 Lightsail Debian VM。安装 Rust、克隆 repo 并指定工具链后,我运行 cargo build。这确实编译了一堆板条箱,但在编译 Diesel 时它似乎挂起。至少,调用 ps 显示 cargo 和 rustc 进程似乎在 30 分钟后继续。

我尝试过 Diesel 版本 1.4.5 和 2.0.0、稳定的夜间 Rust 工具链,以及 Ubuntu 和 Debian VM。

[编辑:该应用程序也可以在 Linode VM 上顺利编译。]

可能是什么问题? (如何收集更多信息进行诊断?)

【问题讨论】:

Diesel 不是需要连接到数据库进行自省然后编译的那些 ORM 之一吗? diesel.rs/guides/getting-started/…. Diesel 在编译时不需要数据库来检查。此功能与实际编译分开(如在单独的命令中)。 【参考方案1】:

CPU 图显示了什么?

Lightsail 使用具有 CPU 基线的可突发实例,可以处理偶尔的流量峰值,但如果 CPU 峰值时间过长,CPU 就会受到限制。

如果您查看实例指标选项卡,您可以查看它是否耗尽了突增容量(从下拉列表中选择突增容量百分比或分钟数)。

【讨论】:

这是一个很好的观点。据我所知,编译不会消耗大量的突发容量(控制台显示它始终保持在 70% 以上)。 您预计此构建需要多长时间?根据您的实例大小,您在 70% 的可突增区域中的时间可能不到 2 小时。 至少在我的笔记本电脑上,包含 165 个 crate 的整个(“发布”)构建大约需要 3 分钟;柴油板条箱花费的时间并不多(可能需要 5 秒)。

以上是关于柴油机编译挂在 Lightsail 上的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS Lightsail 上登录 PHPMyAdmin?

JVM的理解

为使用 Elastic Beanstalk 和 LightSail 的子域配置 SSL

有没有办法每3个月自动安排一次Lightsail实例的启动?

Lightsail 与 Lambda + S3

WP-CLI 是不是与在 AWS Lightsail 上安装的 Bitnami 的 Wordpress 不兼容?