1. 使用ulimit命令
这是最基础的资源限制工具,适合临时性控制:
# 限制单个用户最大进程数
ulimit -u 100
# 限制内存使用(单位KB)
ulimit -m 512000
# 查看当前限制
ulimit -a
注意: ulimit设置的限额只在当前会话有效,如需永久生效需修改/etc/security/limits.conf文件。
在企业级Linux服务器管理中,资源分配和控制是系统管理员的核心职责之一。本文将详细介绍5种专业级方法,帮助您精确控制用户对CPU、内存等关键资源的使用,确保服务器稳定运行。
在共享服务器环境中,单个用户的过度资源消耗可能导致:
这是最基础的资源限制工具,适合临时性控制:
# 限制单个用户最大进程数
ulimit -u 100
# 限制内存使用(单位KB)
ulimit -m 512000
# 查看当前限制
ulimit -a
注意: ulimit设置的限额只在当前会话有效,如需永久生效需修改/etc/security/limits.conf文件。
永久性资源限制方案:
# 格式:用户名/组名 软/硬限制 资源类型 限制值
developer hard nproc 50
marketing soft memlock 1024000
* hard nofile 4096
参数说明:
Linux内核提供的强大资源隔离机制:
# 安装cgroups工具
yum install libcgroup -y
systemctl start cgconfig
systemctl enable cgconfig
# 创建控制组
cgcreate -g cpu,memory:/group1
# 设置CPU限制(使用1个核心的50%)
cgset -r cpu.cfs_period_us=100000 group1
cgset -r cpu.cfs_quota_us=50000 group1
# 设置内存限制(1GB)
cgset -r memory.limit_in_bytes=1G group1
现代Linux发行版推荐方案:
# 编辑服务单元文件
[Service]
CPUQuota=50%
MemoryLimit=1G
TasksMax=100
适用于:
容器化隔离是最彻底的资源控制方案:
# Docker示例
docker run -it --cpus="0.5" --memory="512m" ubuntu
# LXC示例
lxc.cgroup.cpu.shares = 512
lxc.cgroup.memory.limit_in_bytes = 1G
cat /proc/$(pidof 进程名)/limits
通过合理配置Linux资源限制,可以显著提高服务器稳定性和多用户环境下的公平性。建议根据实际需求组合使用上述方法,并建立完善的资源使用监控机制。