跳到主要内容

句柄

2024年12月25日
柏拉文
越努力,越幸运

一、nodejs_active_handles


1.1 认识

Node.js 中,句柄(Handles 通常指的是进程中打开的各种资源,如文件描述符、TCP/UDP 套接字、进程的 I/O 等等。每个句柄都占用一些内存,并且可以影响系统的性能。

Node.js 中,文件句柄网络连接句柄 是最常见的两种类型。要计算句柄,我们通常会查看进程的打开文件描述符的数量。这些句柄可以通过 process._getActiveHandles() 来获取。

  • process._getActiveHandles() 返回当前 Node.js 进程的所有活动句柄(如 TCPUDP、定时器、请求等)。

  • process._getActiveRequests() 返回当前 Node.js 进程中的所有活动请求(如 HTTP 请求等)。

1.2 计算

// 计算句柄数
const calculateHandles = () => {
const activeHandles = process._getActiveHandles();
const activeRequests = process._getActiveRequests();

console.log('Active Handles: ', activeHandles.length); // 活动句柄数量
console.log('Active Requests: ', activeRequests.length); // 活动请求数量
};

// 每秒统计一次句柄数量
setInterval(calculateHandles, 1000);
  • process._getActiveHandles(): 返回当前 Node.js 进程的活动句柄数组。它包含所有当前活跃的 I/O 资源(如 TCP 套接字、文件描述符、计时器等)。

  • process._getActiveRequests(): 返回当前进程中的所有活动请求。活动请求指的是 Node.js 进程中正在处理的所有异步请求(例如 HTTP 请求)。

二、nodejs_active_requests


2.1 认识

Node.js 中,句柄(Handles 通常指的是进程中打开的各种资源,如文件描述符、TCP/UDP 套接字、进程的 I/O 等等。每个句柄都占用一些内存,并且可以影响系统的性能。

Node.js 中,文件句柄网络连接句柄 是最常见的两种类型。要计算句柄,我们通常会查看进程的打开文件描述符的数量。这些句柄可以通过 process._getActiveHandles() 来获取。

  • process._getActiveHandles() 返回当前 Node.js 进程的所有活动句柄(如 TCPUDP、定时器、请求等)。

  • process._getActiveRequests() 返回当前 Node.js 进程中的所有活动请求(如 HTTP 请求等)。

2.2 计算

// 计算句柄数
const calculateHandles = () => {
const activeHandles = process._getActiveHandles();
const activeRequests = process._getActiveRequests();

console.log('Active Handles: ', activeHandles.length); // 活动句柄数量
console.log('Active Requests: ', activeRequests.length); // 活动请求数量
};

// 每秒统计一次句柄数量
setInterval(calculateHandles, 1000);
  • process._getActiveHandles(): 返回当前 Node.js 进程的活动句柄数组。它包含所有当前活跃的 I/O 资源(如 TCP 套接字、文件描述符、计时器等)。

  • process._getActiveRequests(): 返回当前进程中的所有活动请求。活动请求指的是 Node.js 进程中正在处理的所有异步请求(例如 HTTP 请求)。