Maison  >  Article  >  interface Web  >  Comprendre rapidement les indicateurs de performance dans Node.js

Comprendre rapidement les indicateurs de performance dans Node.js

青灯夜游
青灯夜游avant
2021-09-16 10:10:183255parcourir

Cet article vous fera découvrir les indicateurs de performance de Node.js, j'espère qu'il vous sera utile !

Comprendre rapidement les indicateurs de performance dans Node.js

Pour nous, ingénieurs front-end, maîtriser le développement d'applications Node.js est le seul moyen pour nous de devenir senior/expert. De plus, Node.js est un langage côté serveur. Nous devons non seulement être capables de réaliser des tâches de développement, mais également faire attention aux performances du serveur. [Apprentissage recommandé : "tutoriel nodejsNode.js应用开发是我们走上资深/专家的一条必经之路。此外Node.js是一门服务端语言,我们不仅要能够完成开发任务,而且更应该要关注服务器性能。【推荐学习:《nodejs 教程》】

本文就针对Node.js的基础和性能指标做一些初步的介绍。

应用场景

在介绍NodeJS性能指标之前呢,我们先来看看它的应用场景,针对不同的应用场景,所要关注的性能指标是有所不同的。

  • BFF中间层,接口的代理,充当网关层

  • 开发构建工具gulpwebpack基于Node.js

  • 桌面应用程序Electron和Node.js结合

  • SSR服务端渲染

Node.js如果是用于前端SSR的话,那么CPU网络就会成为主要的性能瓶颈

如果使用NodeJS来进行数据持久化相关的工作,那么I/O磁盘会有很高的占用率;

而在大多数场景下,CPU内存以及网络可以说是Node的主要性能瓶颈。

优缺点

  • node.js容错,性能不是很好

  • node.js操作数据库不专业

  • node.js处理异步io强

  • io密集型,不适合cpu密集型

事件循环(libuv)

这里引用官网的一张图,展示了事件循环操作顺序的简化概览

Comprendre rapidement les indicateurs de performance dans Node.js

阶段描述

  • 定时器:本阶段执行已经被 setTimeout() 和 setInterval() 的调度回调函数。
  • 待定回调:执行延迟到下一个循环迭代的 I/O 回调。
  • idle, prepare:仅系统内部使用。
  • 轮询:检索新的 I/O 事件;执行与 I/O 相关的回调(几乎所有情况下,除了关闭的回调函数,那些由计时器和 setImmediate() 调度的之外),其余情况 node 将在适当的时候在此阻塞。
  • 检测setImmediate() 回调函数在这里执行。
  • 关闭的回调函数:一些关闭的回调函数,如:socket.on('close', ...)

V8 GC机制

我们知道Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,同时它又是单线程的。

其中 V8内存 分为新生代和老生代 :

新生代:采用from空间->to空间内存回收scavenge算法

老生代:采用引用标记、碎片整理的形式进行内存回收

如果GC时间过长,会导致js线程阻塞,影响服务性能。内存使用不当,则会造成内存溢出。了解了以上Node.js的基础知识之后,我们再来看性能指标

性能指标

我们从系统层面和Node.js进程层面进行一个性能指标描述

系统层面

针对服务器(物理机虚拟机Docker 等)级别,提供如下监控指标:

  • 内存使用

  • CPU 使用率

  • 系统负载,使用中进程/等待进行的进程数

  • 系统 QPS

  • 硬性性能指标

  • 磁盘使用率

  • GC"]

  • Cet article donnera une introduction préliminaire aux bases et aux indicateurs de performance de Node.js.
  • Scénarios d'application

  • Avant de présenter les indicateurs de performance de NodeJS, examinons d'abord ses scénarios d'application. Pour différents scénarios d'application, les indicateurs de performance à prendre en compte sont différents.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer