linux管理子进程c,Linux 进程管理 CGroup
Cgroups控制cup,内存,io资源示例
http://www.cnblogs.com/yanghuahui/p/3751826.html
Docker组成LXC+AUFS LXC=cgroup+namespace+chroor
libcgroup
Cgroup全称control groups,可用来限制、记录、隔离进程组的物理资源,下面小编将针对Cgroup在Linux上的安装和配置做个详细介绍,对Cgroup感兴趣的朋友可以来学习下。
为什么要有cgroup
Linux系统中经常有个需求就是希望能限制某个或者某些进程的分配资源。也就是能完成一组容器的概念,在这个容器中,有分配好的特定比例的cpu时间,IO时间,可用内存大小等。于是就出现了cgroup的概念,cgroup就是controller group,最初由google的工程师提出,后来被整合进Linux内核中。
Cgroup是将任意进程进行分组化管理的Linux内核功能。cgroup本身提供将进程进行分组化管理的功能和接口的基础结构。
而后的Android操作系统也就凭借着这个技术,为每个应用程序分配不同的cgroup,将每个程序进行隔离,达到了一个应用程序不会影响其他应用程序环境的目的。
概念
task:
一个进程
control group:
控制族群,按照某种标准划分的进程组
hierarchy:
层级,control group可以形成树形的结构,有父节点,子节点,每个节点都是一个control group,子节点继承父节点的特定属性。
subsystem:
子系统。
子系统就是资源控制器,每种子系统就是一个资源的分配器,比如cpu子系统是控制cpu时间分配的。
可以使用lssubsys -al来列出系统支持多少种子系统,和使用ls /sys/fs/cgroup/ (Ubuntu)来显示已经挂载的子系统:
可以看到这里的几个子系统,比如cpu是控制cpu时间片的,memory是控制内存使用的。
如何安装cgroup
安装cgroup:
apt-get install cgroup-bin
如何为cgroup分配限制的资源
首先明白下,是先挂载子系统,然后才有control group的。意思就是比如想限制某些进程的资源,那么,我会先挂载memory子系统,然后在memory子系统中创建一个cgroup节点,在这个节点中,将需要控制的进程id写入,并且将控制的属性写入。
拿memory子系统为例:
通过查看cgroup的配置文件:
cat /etc/cgconfig.conf
看到memory子系统是挂载在目录/sys/fs/cgroup/memory下
进入这个目录
创建一个文件夹,就创建了一个control group了
mkdir test
发现test目录下自动创建了许多文件:
这些文件的含义如下:
于是,限制内存使用我们就可以设置memory.limit_in_bytes
将一个进程加入到这个test中
echo $$ >> tasks (tasks是test目录下的一个文件)
这样就将当前这个终端进程加入到了内存限制的cgroup中了。
将这个cgroup删除只要删除目录就行了
rmdir test
上面就是Linux安装及配置Cgroup的方法介绍了,本文主要介绍了为Cgroup分配限制资源的方法,以及Cgroup的安装和作用。
linux管理子进程c,Linux 进程管理 CGroup相关推荐
- linux基础知识_压缩—进程管理-网络管理-ftp-nfs-ssh-scp
linux基础知识_压缩-进程管理-网络管理-ftp-nfs-ssh-scp 1.压缩包管理 gzip .gz格式的压缩包,不打包,分别压缩,原文件消失 bzip2 .bz2格式的压缩包,原文件不会消 ...
- linux---基本权限chmod/软件管理之二进制安装/进程管理/系统服务/psio模型
1. 基本权限chmod 1 rwx r-x r-x属主(文件所有者) 属组权限 其他人权限 2 权限详解r:read写权限w: write写权限x:可执行 3 修改权限7=4(r)+2(w)+1(x ...
- linux进程配置异常中断自动重启_Linux系统配置及服务管理 (四)进程管理
一.进程简介 进程是已启动的可执行程序的运行实例,进程有以下组成部分: • 已分配内存的地址空间: • 安全属性,包括所有权凭据和特权: • 程序代码的一个或多个执行线程: • 进程状态. 程序: 二 ...
- linux内核设计与实现---进程管理
进程管理 1 进程描述符及任务结构 分配进程描述符 进程描述符的存放 进程状态 设置当前进程状态 进程上下文 进程家族树 2 进程创建 写时拷贝 fork() vfork() 3 线程在Linux中的 ...
- 自实现进程管理器linux,【Linux工具篇】supervisor进程管理器
概述 项目中遇到有些脚本需要通过后台进程运行,保证不被异常中断,除了通过nohup.&.screen以外,更推荐的方法就是用Supervisor. Supervisor是用Python开发的一 ...
- Linux运维篇之进程管理②
一.HUP信号 当用户注销(logout)或者网络断开或者关闭终端时(一定是终端整体关闭,而不是单纯的exit)时,终端会收到Linux HUP信号,然后终端在结束前会关闭所有子进程. 如果我们想让进 ...
- 11、Linux系统基础原理、进程管理工具、任务计划
Linux进程及作业管理 内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能 Process: 运行中的程序的一个副本: 存在生命周期 Linux内核存储进程信息的固定 ...
- Linux——文件或目录的权限管理、网络管理、进程管理、服务管理的相关命令
1.文件或目录的权限管理命令 一个用户至少属于一个组,也可以属于多个组:一个文件或者目录也必须属于一个,并且只能属于一个组: 在一个文件或者目录看来,linux系统中所有的用户可以分为三类:所有者:同 ...
- 【Linux】ps和top进程管理命令
ps命令和top都是查看Linux系统进程相关信息,即进程管理工具. 1. ps和top命令区别 1.1 ps命令 可以查看进程的瞬间信息(系统在过去执行的进程的静态快照). 只看到的是命令执行瞬间的 ...
- linux内核的进程管理,Linux内核设计与实现——进程管理
主要内容 进程 进程描述符及任务结构 进程创建 线程在linux中的实现 进程终结 1. 进程 进程不仅仅是一段可执行程序代码,还包含其他资源,如打开的文件,挂起的信号,内核内部数据,处理器状态,一个 ...
最新文章
- Using Graphviz dot for ERDs, network diagrams and more
- HAAR、LBP分类器训练
- 最大似然估计(最大可能性估计)(likelihood)
- 【嵌入式】ARM技术博客汇总
- tensorflow环境下的识别食物_在TensorFlow+Keras环境下使用RoI池化一步步实现注意力机制...
- 16kb等于多少b_面试官:MySQL索引为何选择B+树?
- 获取cookies的简单代码(总结待续)
- html中opacity的使用
- anaconda 安装包 超时_vs2010nuget安装包时 操作超时
- java类图_Java开发设计——UML类图
- 给新服务器装linux系统,新服务器安装linux系统安装教程
- bin和obj文件夹
- 那些出其不意给你惊喜的点,重新感受for循环的爱,来自C#
- Gym - 101635J - Frosting on the Cake
- css template download
- SpringBoot整合Spring Data Elasticsearch
- SourceInsight4.0下载安装教程
- 虚拟人,数字人,虚拟数字人的定义区别
- AUTOSAR实战教程 - 软件集成调试_程序跑飞一招解决
- Python批量生产短视频
热门文章
- 掌握这35 个小细节,助你有效提升 Java 代码的执行效率!
- rm 空间不释放_rm删除文件之后,空间就被释放了吗?
- python 有序字典 OrderedDict
- cannot import name #39get_all_providers#39
- a leaf Variable that requires grad has been used in an in-place operation
- python TypeError: Expected int32, got list containing Tensors of type '_Message' instead.
- oracle递归用法
- Day 05 名人能树立好榜样吗
- PMP-【第14章 五大过程组的工作要点】2021-2-17(292页-303页)
- 一、LDAP目录服务介绍