Node.js 的升级和执行应用
Hoje Node.js 是一个可以广泛使用的开发平台。 Seu ecossistema évasto e poderoso e sua Performance não é nada ruim。
但是,Node.js 并不存在这种问题,它具有以下特性:无法观察到的所有特性都会损害应用程序的性能。
Single Tread 和 código bloqueante
Muitos já devem saber, porém, é importante frisar, Node.js é single step, mesmo que existam operações async (obrigado libuv ), alguas operações sãothoughtadas bloqueantes and travam toda and qualquer execução de código.
例如,我们可以console.time
执行类似的命令。
基本操作包括嵌套、组合和外部操作,以及功能的setTimeout
实现sleep
。一个程序在第 1 秒执行,但定时器没有结果,因此执行 3 个程序,然后执行程序。
Para entender melhor este comportamento,leia sobre事件循环。
请注意,Node/JS 的操作步骤如下:uma única operação,uma operação bloqueante。
阻塞操作
前面没有任何例子可以说明我们的while
操作理念与应用操作的冲击力。 Além do while
outras estruturas e funções também são bloqueantes。for、Array.prototype.forEach、Array.prototype.map、Array.prototype.reduce等。
Podemos assumir que todo Loop é uma operação bloqueante。
Uma única operação bloqueante tem um 巨大的潜在破坏性 em uma aplicação http。
siege http://localhost:7337/ -b -i -t 10s
持续 10 次或服务器 http 接收51.415请求,com correferência de 25. Abaixo alguns _logs das requisições
结果显而易见。
接近图像时,将在 500 毫秒内执行一次操作。
新星或性能测试或围攻。
持续 10 秒 25 个进程,以实现 18 个必要条件的成功。与前面的睾丸相比,它会变得更小。 Abaixo alguns记录dos请求。
需要 500 毫秒才能响应。可能是服务器 http 接收的 43 条要求,请在完成要求的处理过程之前测试终端。
解析器所需的节点有 18 个要求,共 10 个:500ms * 18 = 9000ms = 9s
全部为“presas”以外的要求。
这是执行操作之前的操作,在服务 http 节点上进行操作。
集群模式,多个服务。
我认为这个问题很严重,是一个有效的方法。
节点 possui um módulo chamado cluster。该模块允许 seu 进程/服务器的 criar 分叉,以及负载均衡器。
Você pode aprender mais sobre este módulo aqui
在群集模式下,我们可以使用一系列循环模式来实现性能和应用程序的性能。
PM2
PM2 或Process Manager 2是生产过程中必不可少的应用节点。
PM2 的原理和结尾各有不同。
进程监控
PM2 观察过程的启动、过程的启动、过程的执行,以及对人性的干预。
重复使用极端情况以保证应用程序不发生任何异常情况或不正常。
应用程序的多个进程
请注意,PM2 的应用程序可能会在应用程序中产生。 Dessa forma contornamos os Problemas citados Neste artigo。
除 PM2.5 外,还有其他一些有趣的应用程序。通过应用程序来了解并行处理和支持的算法过程,与消费者一起使用,可以完全控制一切。
PM2 正在运行
PM2 文档可帮助您安装和配置所有选项。可以使用集群模式进行 PM2 发送,例如启动 5 个进程。
pm2 start index.js -i 5
响应者的请求条件为 10 秒内的 95 项要求,主要是 18 项前测试。
Agora 或 mesmo teste com 10 个进程。
pm2 start index.js -i 10
响应者可提供 180 项必需的服务。例如 20 个进程和 40 个进程。
pm2 start index.js -i 20
pm2 start index.js -i 40
如果您有 20 个所需的数量,请选择 40 个进程。这是一个简单的关于处理过程的简单说明,它是一个一致的处理程序。
生产环境
例如,使用 8 个处理核心和 13Gb 内存 RAM。 Estes valores são Superiores a muitos servidores comuns。这是一个简单的升级过程,但并不足够,重要的是在构建应用程序时需要注意。必须使用水平升级的多个时刻。
服务程序的核心处理过程和应用程序的变化过程的数量,是理想和测试的主要因素,也是最大的“压力”。
解决办法是自动缩放+ docker são altamente 推荐。
结论
Mesmo Node.js 发送单线程,可证明处理器的各种核。 Há também um módulo para 激光雷达 com履带,elevando 作为可能性。
我们在开发过程中考虑了与 Node.js 相关的应用程序,但它限制了我们的技术和相关信息。
性能纯粹且简单,可在书写和测试中使用,这是最重要的。这是重要的生产应用和协作的形式。
关注质量算法,继续执行脚本和组织相关的性能,以解决徽标问题。
请访问dev.to/codecasts或blog.codecasts.com.br。如果没有YouTube,您可以使用JavaScript、jQuery、Gulp、ES6、Vue.JS或其他视频来观看视频。请注意不要与Telegram联系
文章来源:https://dev.to/codecasts/escalando-e-performando-aplicacoes-node-js-2j20