在Centos6,7使用cgroup做内存限制,使用的配置包是libcgroup,具体方案和操作步骤如下。
步骤1:安装配置管理包
Centos 6:
# yum install libcgroup
Centos 7:
# yum install libcgroup libcgroup-tools
步骤2:添加控制组
创建文件 /etc/cgconfig.d/cgroup.orange.conf,限制orange用户物理内存只使用200M,并禁用orange用户使用swap。
文件内容如下:
group orange_limitmem{
memory {
memory.limit_in_bytes=200m;
memory.memsw.limit_in_bytes=200m;
}
}
cgred服务将根据这条规则,匹配happy用户的进程。
步骤3:添加规则
在文件/etc/cgrules.conf中添加对happy用户的规则,关联步骤2的控制组:
# echo "orange memory orange_limitmem/">> /etc/cgrules.conf
步骤4:重启配置服务使之生效
Centos 6:
# service cgconfig restart
# service cgred restart
Centos 7:
# systemctl restart cgconfig.service
# systemctl restart cgred.service
其中,cgconfig服务负责资源控制组挂载;
cgred服务负责识别进程,并将进程添加到指定资源控制组。
步骤5:测试
使用orange用户,编写消耗内存脚本,观察脚本执行情况。
#!/bin/bash
x='a'
while [ True ];do
x=$x$x
done;
可以看到,进程被Kill。
注意:
centos7建议使用systemd进行资源限制。
原因可参考:
https://blog.csdn.net/lanyang123456/article/details/82319731
关于如何使用systemd进程资源限制,可以参考:
https://blog.csdn.net/lanyang123456/article/details/81610779
https://blog.csdn.net/lanyang123456/article/details/82318978
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现