gpt4 book ai didi

基于 Node.js 的 Express 应用程序在 ec2 微实例上速度极慢

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:22 25 4
gpt4 key购买 nike

设置如下:

  • ec2 微实例
  • MySQL 5.6
  • Redis 服务器
  • Node.js(基于 Express 的应用)
  • Nginx 作为反向前端代理。

速度很慢。非常慢。我知道这是一个微型实例,你会得到你所付出的代价(考虑到它是免费的)。

我最终甚至使用了 MySQL 的交换文件,但速度太慢以至于无法使用。我应该启动 2 个中型实例(1 个用于 db/redis,一个用于应用程序服务器)吗?将所有内容保留在一个实例上并将其升级到大型实例?

另外,我应该寻找什么?为 MySQL 提供更多 RAM,为应用服务器提供更多 CPU?任何输入都会非常有帮助(尤其是那些过去使用过类似设置的输入)。

最佳答案

请记住,EC2 微型实例会限制 CPU - 它可能会稍微激增,但如果您在微型实例上放置一致的 CPU 负载,它就会降低。它们确实是为开发而设计的 - 我以前使用过微型实例作为 Web 服务器,并且在负载上升时它们就停止运行,因此付出了代价 - 基本上停止了。

至于您应该使用什么,您确实需要根据数据库大小、工作集大小、用户数量等的基准测试和分析相结合来评估自己的需求。

也就是说,如果您打算扩展您的应用程序,尝试将所有内容保留在一台虚拟化服务器上​​往往效果不佳。 EC2目前有许多不同的实例类型针对不同的使用场景进行了优化,分别强调CPU、内存、本地磁盘或网络容量。扩展应用程序的 node.js/nginx 端与 MySQL 和 Redis 有很大不同。

就我个人而言(这只是我的观点),我会从两个小组件开始,一个是 MySQL 和 Redis,另一个是 Node 和 nginx,并仔细监控内存、CPU 和磁盘使用情况。 EC2(或任何主要的基于云的虚拟实例提供商)的伟大之处在于您可以轻松地尝试并迁移到其他实例类型。为了方便起见,我肯定会使用 EBS 卷作为数据库,因为这样以后移动数据库变得非常容易(更不用说使用卷快照进行备份)。

关于基于 Node.js 的 Express 应用程序在 ec2 微实例上速度极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23598481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com