在 CentOS 系统中,调整 Node.js 的内存限制可以通过以下方法实现:
在启动 Node.js 应用程序时,可以使用 --max-old-space-size 参数来设置内存限制。例如,将内存限制设置为 4096MB(4GB):
node --max-old-space-size=4096 app.js
如果你使用的是 Node.js 的内置 HTTP 服务器,可以在创建服务器之前设置 process.memoryUsage() 的 rss 属性来限制内存使用。例如,将内存限制设置为 4096MB(4GB):
const http = require('http');
const os = require('os');
const memoryLimit = 4 * 1024 * 1024 * 1024; // 4GB
const rssLimit = process.memoryUsage().rss;
if (rssLimit > memoryLimit) {
console.error('Memory limit exceeded. Exiting...');
process.exit(1);
}
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
请注意,这种方法并不完美,因为 process.memoryUsage() 只提供了一个近似值,而不是一个严格的限制。
有一些第三方库可以帮助你更好地管理 Node.js 应用程序的内存使用,例如 pm2。使用 pm2,你可以通过配置文件或命令行参数来设置内存限制。例如,将内存限制设置为 4096MB(4GB):
pm2 start app.js --max-memory-restart 4G
这将确保当应用程序使用超过 4GB 内存时,pm2 会自动重启应用程序。