CentOS7限制每个人使用资源

CentOS7限制用户资源使用的三种实践方法

一、cgroups实现精细资源控制

通过Control Groups(cgroups)可对用户或进程组进行细粒度资源管理:

# 安装必要组件
yum install libcgroup libcgroup-tools -y

# 创建内存限制组
echo "group memory_limit {
    memory {
        memory.limit_in_bytes = 2G;
    }
}" > /etc/cgconfig.d/memory.conf

# 应用配置并绑定用户
systemctl start cgconfig
cgred -g memory:memory_limit -u testuser

该配置将用户testuser的内存使用限制为2GB,可通过修改memory.limit_in_bytes参数调整限制值。

二、ulimit设置会话级限制

修改/etc/security/limits.conf文件实现基础限制:

# 限制最大进程数与文件打开数
* hard nproc 100
* hard nofile 1024

# 特定用户CPU时间限制
john hard cpu 7200

此配置对所有用户设置最大100进程和1024文件句柄,用户john的CPU时间限制为2小时。

三、磁盘配额管理方案

针对存储资源的限制配置步骤:

# 启用配额支持
mount -o remount,usrquota,grpquota /
quotacheck -cugm /dev/sda1
quotaon /dev/sda1

# 设置用户磁盘配额
setquota -u mary 20480 25600 0 0 /dev/sda1

该配置为用户mary设置20MB软限制和25MB硬限制,适用于需要严格控制存储使用的场景。

配置验证与监控

  • 使用cgget -g memory:memory_limit验证cgroups配置
  • 通过repquota -a查看磁盘配额使用情况
  • 监控工具推荐:top, htop, nmon

常见问题处理

Q: 限制配置未生效?
A: 检查服务状态systemctl status cgconfig,确认用户会话已重新登录
Q: 如何临时解除限制?
A: 使用cgexec -g memory:unlimited ...启动特殊进程

寰宇互联服务器4核4G云服务器1元/月,网络稳定、抗DDos、国际BGP、性能强劲,十年服务经验QQ:97295700 微信:huanidc

阅读剩余
THE END