Linux的企业-docker的资源配额cgconfig

简介:

一.简介

       Cgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO等等)的机制。最初由google的工程师提出,后来被整合进Linux内核。Cgroups也是LXC为实现虚拟化所使用的资源管理手段,可以说没有cgroups就没有LXC。

       Cgroups最初的目标是为资源管理提供的一个统一的框架,既整合现有 的cpuset等子系统,也为未来开发新的子系统提供接口。现在的cgroups适用于多种应用场景,从单个进程的资源控制,到实现操作系统层次的虚拟化 (OS Level Virtualization)。Cgroups提供了以下功能:

1.限制进程组可以使用的资源数量(Resource limiting )。比如:memory子系统可以为进程组设定一个memory使用上限,一旦进程组使用的内存达到限额再申请内存,就会触发OOM(out of memory)。

2.进程组的优先级控制(Prioritization )。比如:可以使用cpu子系统为某个进程组分配特定cpu share。

3.记录进程组使用的资源数量(Accounting )。比如:可以使用cpuacct子系统记录某个进程组使用的cpu时间

4.进程组隔离(Isolation)。比如:使用ns子系统可以使不同的进程组使用不同的namespace,以达到隔离的目的,不同的进程组有各自的进程、网络、文件系统挂载空间。

5.进程组控制(Control)。比如:使用freezer子系统可以将进程组挂起和恢复。


二.cgconfig安装启动

ec80bdfdc37e35d96677a5463dfd5031.png


三.内存限制

410fc3e7e5efaa981addaebbfdf07acd.png


1.添加group x1,内存限制为256M

63877e831428f73ba4ded8a493816f9a.png

2a72af5f41adb8e63f9b0781699a76a7.png


2.测试内存限制

注:必须在/dev/shm内存空间下写入

正常情况下没有限制,可以直接写入,cached值为441

deb76079bd97533d4178d040ee08a0ea.png


使用group:x1策略写入只能到395,剩下的写入到交换分区45M

93b7d4aecb1755a7b2268bb66195961b.png



添加交换分区内存限制

62406d5ac704d3ab019f043cd032f457.png

444525ac5fdf367a04e5781aa58a8bec.png


写入300M内存直接禁止,交换分区也无法写入

26840f60b48e50ff7cd9d0373a32783d.png



四.cpu优先级限制

1.添加group:x2,cpu优先级为100

9b28c2a5b983c4818d09861f18290764.png


2.测试:第一次正常测试,第二次使用group:x2策略测试

85aa8085c41fec07cca8ef4bc6698e18.png


可以看出优先级为100的进程1305后面执行



五.IO接口限制

1.添加group:x3,IO接口252设备限制读取的100M

f1d6aba86afcc927a440a6d3e62ac7b5.png

7bd53465c61e56b208a77edd6239cf01.png


2.测试前安装iotop检测模块

280ec971b206a94cc2cd6fe91ff7d605.png


第一次正常读取,读取速度为187M左右

60a13ab8b82702207770dbe2bb21d26e.png

6237615a3d1a5bebe87102d3cd656cc6.png


第二次使用group:v3策略测试,速度为1M左右

0c34dbc1afbce3c4f228ac7bf237d09a.png

ccef1ee9807c5d33aab58761839186c8.png




六.cgconfig不同用户的限制

此处使用内存为例

1.配置/etc/cgrules.conf规则文件,cgconfig和刚才配置一样即可


22cb2dae616cfa62478afd6f4d878b0d.png


cgrules.conf规则文件需要填写用户  限制类型   限制策略,配置完重启服务

22f7dd07301b582044265c6662b61d7f.png

d8624d78a1515b585822cd8978ebdd92.png


2.测试

创建用户westos,进入到/dev/shm内存写入空间

291bbeaf3c5a86c3b2f1854af7be7449.png

写入300M内存,被限制

95b043caf08e8fff4d1df1215e16aecd.png



      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1977058,如需转载请自行联系原作者





相关文章
|
8天前
|
Ubuntu Linux 数据库
【Linux】深入了解Linux磁盘配额:限制用户磁盘空间的利器
【Linux】深入了解Linux磁盘配额:限制用户磁盘空间的利器
|
8天前
|
Cloud Native Linux 开发者
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
|
5天前
|
存储 Linux 文件存储
Linux使用Docker部署Traefik容器并实现远程访问管理界面-1
Linux使用Docker部署Traefik容器并实现远程访问管理界面
|
5天前
|
NoSQL Linux Shell
2.Docker常用命令(linux)
2.Docker常用命令(linux)
|
5天前
|
存储 缓存 Linux
linux几种典型应用对系统资源使用的特点
【4月更文挑战第22天】几种典型应用对系统资源使用的特点
13 0
|
6天前
|
存储 Oracle 关系型数据库
linux操作系统相关资源优化
【4月更文挑战第21天】基于操作系统的性能优化也是多方面的,主要是系统安装、系统内核参数、网络参数、文件系统等几个方面进行衡量
17 2
|
7天前
|
Linux 网络安全 Docker
【Linux】-docker配置容器并打包成镜像
【Linux】-docker配置容器并打包成镜像
|
7天前
|
运维 监控 Linux
【专栏】举几个Docker ps 命令的例子,Linux运维必知
【4月更文挑战第28天】本文介绍了Docker命令`docker ps`的使用,包括列出运行中的容器、筛选特定容器、组合使用与其他命令配合以及在故障排查中的应用。通过基础和高级用法示例,如列出所有容器、搜索特定镜像、监控资源使用等,帮助读者理解和提升容器管理效率。对于Linux运维工程师,掌握`docker ps`是必备技能。
|
12天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(下)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
45 1
|
12天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(上)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
48 0