发布于2026-07-29 阅读(0)
扫一扫,手机访问
在Debian系统上,想给Node.js应用来个“资源紧箍咒”?cgroups(控制组)就是那个趁手的工具。它是Linux内核自带的功能,能限制、监控和分配进程组的CPU、内存、磁盘I/O等资源,而且配置起来并不复杂。下面直接上步骤,跟着操作就行。
Debian系统默认没有cgroups的管理工具,需要先装个cgroup-tools包。打开终端,跑两行命令:
sudo apt-get update
sudo apt-get install cgroup-tools
创建一个叫nodejs的cgroup,后续就把Node.js应用扔进去,统一管理。命令如下:
sudo cgcreate -g memory,cpu:/nodejs
这条命令会创建一个同时包含内存和CPU控制器的cgroup,名字就叫nodejs。
假设你想把Node.js应用的内存上限设为512MB,那就在刚才创建的cgroup里写个限制值。注意,这里需要以字节为单位,所以512MB = 536870912字节:
echo "536870912" | sudo tee /sys/fs/cgroup/memory/nodejs/memory.limit_in_bytes
CPU限制需要设置两个参数:cpu.cfs_quota_us(配额)和cpu.cfs_period_us(周期)。比如想让应用最多用50%的CPU,可以这样配:
echo "50000" | sudo tee /sys/fs/cgroup/cpu/nodejs/cpu.cfs_quota_us
echo "100000" | sudo tee /sys/fs/cgroup/cpu/nodejs/cpu.cfs_period_us
这里cpu.cfs_quota_us是50000微秒,cpu.cfs_period_us是100000微秒,比例正好50%。
先找到Node.js应用的进程ID(PID)。可以用ps或pgrep,比如:
pgrep -f nodejs_app.js
假设PID是12345,用cgclassify把它加到nodejs组里:
sudo cgclassify -g memory,cpu:nodejs 12345
搞定。现在你的Node.js应用就乖乖受内存和CPU限制了。
想看看当前资源占用?用cgget命令查询:
sudo cgget -g memory,cpu:nodejs
命令会输出nodejs组里实时的内存和CPU使用情况。
以上步骤基于cgroups v1。如果你的系统用的是cgroups v2(比如较新的Debian版本),命令和路径可能略有不同,需要留心一下。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8