查看node服务内存使用情况
查看node应用列表
pm2 list
结果:
id | name | mode | ↺ | status | cpu | memory |
---|---|---|---|---|---|---|
1 | app | fork | 211 | stopped | 0% | 0b |
2 | my-app | fork | 0 | online | 0% | 0b |
找到你先查看的项目 ,找到 script args ,这个就是最大值
在使用PM2管理Node.js进程时,默认情况下,PM2不会限制Node.js进程的最大堆内存值。这意味着,Node.js进程可以使用系统中可用的所有内存。
pm2 show 2
结果:
Describing process with id 2 - name my-app
┌───────────────────┬──────────────────────────────────┐
│ status │ online │
│ name │ my-app │
│ namespace │ default │
│ version │ 1.0.0 │
│ restarts │ 0 │
│ uptime │ 15s │
│ script path │ /nodeJS/espot-middleware/app.js │
│ ***script args*** │ --max-old-space-size=2048 │
│ error log path │ /root/.pm2/logs/my-app-error.log │
│ out log path │ /root/.pm2/logs/my-app-out.log │
│ pid path │ /root/.pm2/pids/my-app-2.pid │
│ interpreter │ node │
│ interpreter args │ N/A │
│ script id │ 2 │
│ exec cwd │ /nodeJS/espot-middleware │
│ exec mode │ fork_mode │
│ node.js version │ 16.14.0 │
│ node env │ N/A │
│ watch & reload │ ✘ │
│ unstable restarts │ 0 │
│ created at │ 2023-06-05T11:05:08.510Z │
└───────────────────┴──────────────────────────────────┘
Actions available
┌────────────────────────┐
│ km:heapdump │
│ km:cpu:profiling:start │
│ km:cpu:profiling:stop │
│ km:heap:sampling:start │
│ km:heap:sampling:stop │
└────────────────────────┘
Trigger via: pm2 trigger my-app <action_name>
Code metrics value
┌────────────────────────┬───────────┐
│ Heap Size │ 60.93 MiB │
│ Heap Usage │ 45.41 % │
│ Used Heap Size │ 27.67 MiB │
│ Active requests │ 0 │
│ Active handles │ 6 │
│ Event Loop Latency │ -0.05 ms │
│ Event Loop Latency p95 │ 0.88 ms │
└────────────────────────┴───────────┘
Divergent env variables from local env
Add your own code metrics: http://bit.ly/code-metrics
Use `pm2 logs my-app [--lines 1000]` to display logs
Use `pm2 env 2` to display environment variables
Use `pm2 monit` to monitor CPU and Memory usage my-app
修改内存的最大值
使用Node.js的 –max-old-space-size标志来设置堆内存的最大值
例如,要将堆内存最大值设置为2GB,您可以使用以下命令:
node --max-old-space-size=2048 app.js
要查看Node.js应用程序的当前堆内存最大值
可以使用 process.memoryUsage()方法。该方法返回一个对象,其中包含有关Node.js进程内存使用情况的信息,包括堆内存使用情况。以下是一个示例代码:
const used = process.memoryUsage();
console.log(`Heap memory maximum: ${used.heapTotal/1024/1024} MB`);
如果希望在应用程序运行时动态修改堆内存的最大值
则可以使用 v8模块中的 setFlagsFromString()方法。以下是一个示例代码:
const v8 = require('v8');
const maxHeapSize = 2048; // 2GB
v8.setFlagsFromString(`--max-old-space-size=${maxHeapSize}`);
如果使用pm2作为启动器:
增加ecosystem.config.js 文件在根目录
module.exports = {
apps: [
{
name: "my-app",
script: "./app.js",
args: ["--max-old-space-size=2048"],
max_memory_restart: "2G"
}
]
};
max_memory_restart 是修改的最大堆内存 单位为MB或者GB文章来源:https://www.toymoban.com/news/detail-631996.html
pm2的启动命令修改为文章来源地址https://www.toymoban.com/news/detail-631996.html
pm2 start ecosystem.config.js
到了这里,关于【nodejs 作为服务器修改最大堆内存】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!