配置cgroup时启动挂在有问题,求解答

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置cgroup时启动挂在有问题,求解答相关的知识,希望对你有一定的参考价值。

这个界面应该是你配置了自动挂在,而且最后写入了1或者是2,而盘掉了,你开机的时候检测不通过就出现这个界面,可以按照这个界面进急救模式,将/etc/fstab文件里面对应挂载错误的盘的哪一行的最后是否启动时检测都改为0.就可以正常启动。 参考技术A cgroup配置
1、Cgroup安装
安装Cgroups需要libcap-devel和libcgroup两个相关的包
yum install gcc libcap-devel

2、Cgroup挂载配置
Cgroup对应服务名称为cgconfig,cgconfig默认采用“多挂载点”挂载。经过实际测试,发现在CentOS环境中应采用“单挂载点”进行挂载,因此应当卸载原有cgroup文件系统,并禁用cgconfig。
cgclear或者sudo service cgconfig stop # 停止cgconfig,卸载cgroup目录
sudo chkconfig cgconfig off # 禁用cgconfig服务,避免其开机启动
然后采用“单挂载点”方式重新挂载cgroup。
可以直接手动挂载,这样仅当次挂载成功。
mount -t cgroup none /cgroup
然后编辑/etc/fstab/,输入下列内容。这样每次开机后都会自动挂载。
none /cgroup cgroup defaults 0 0

3、常用的Cgroup相关命令和配置文件
service cgconfig status|start|stop|restart #查看已存在子系统
lssubsys –am #查看已存在子系统
cgclear # 清除所有挂载点内部文件,相当于service cgconfig stop
cgconfigparser -l /etc/cgconfig.conf #重新挂载

Cgroup默认挂载点(CentOS):/cgroup
cgconfig配置文件:/etc/cgconfig.conf

CGroup系列二CGroup管理模式

写在前面

        我们可以通过静态、动态的方式来配置cgroup以达到管控系统资源的目的。静态的方式就是在系统启动时通过系统服务挂载cgroup并加载cgroup配置策略。动态的方式就是根据系统运行时场景实时调整cgroup配置策略。

一、CGroup管理模式

        CGroup是分层管理的,类似进程。子层级会继承父层级cgroup的属性。

        Linux系统中的所有进程都是通用父进程init的子进程,该进程在引导时由内核执行并启动其他进程。所有进程都归结到一个父进程,所以Linux进程管理模式都是一个单一层级结构,或树结构。另外,init之外的每个Linux进程都会集成其父进程的环境和某些属性。

        那么CGroup与Linux的进程管理模式由相似之处,主要体现在以下两点:

  • CGroup同样分级
  • 子CGroup会继承父CGroup的某些属性

        不同之处在于cgroup不是单一树模式,可能是多个树并行的。这里可能不太好理解。如前面所述,CGroup支持多达十几个子系统,那么如果所有的子系统都合并挂载到一个层级上,我们可以直接用Linux系统中init进程管理模式来理解没问题的。但是大多数情况下,可能会有多个层级存在。最极端的情况下, 一个子系统就独立附加到一个层级上去。

        以Ubuntu 18.04为例,如下图:

         如上图,有多达13个层级,cpu子系统和cpuacct子系统合并挂载到了”cpu,cpuacct”层级中。每个层级都是一个独立的树结构。如果不理解没关系,读完本系列自然一目了然。

二、CGroup默认层级

默认情况下,systemd会自动创建slice,scope和service单位的层级,来为cgroup树提供统一结构。systemd也会自动为/sys/fs/cgroup/目录中重要的kernel子系统挂载层级。

系统中运行的所有进程,都是systemd init进程的子进程。这些进程类型大体上份为3类进程,分别是service、scope和slice。

2.1 service

一个或一组进程,由systemd根据unit配置文件启动。根据需求service对指定进程进行封装,可以作为一个整体来启动或者停止。命名方式如下:

name.service

2.2 scope

一组外部创建的进程,通过fork()函数启动,停止,之后被systemd在运行时注册的进程。这些进程会被标记为scope。如用户会话、容器和虚拟机等。

name.scope

2.3 slice

指按层级排列的类型。slice并不包含进程,但会创建一个层级,并将scope和service都放在其中。真正的进程包含在scope和service中。

parent-name.slice

parent-name-name2.slice

如name.service属于parent-child.slice,会被映射到cgroup parent.slice/parent-child.lsice/name.service中。

系统默认会创建4种slice:

  • -.slice —— 根 slice;

  • system.slice —— 包含所有系统 service;

  • user.slice —— 包含所有用户会话;

  • machine.slice —— 包含所有虚拟机和 Linux 容器。

...... 

以上是关于配置cgroup时启动挂在有问题,求解答的主要内容,如果未能解决你的问题,请参考以下文章

tomcat启动特别慢,求高手解答!

CGroup系列二CGroup管理模式

笔记本电脑无法正常启动怎么办啊?求高手解答。

mysql开记二进制日志即配置my.cnf中的log_bin参数后无法正常启动,求高手解答!

Windows 无法启动MySQL服务(位于本地计算机上)。 错误2:系统找不到指定的文件。 求解答啊!

使用opencv时,VS提示“无法启动程序,系统找不到指定文件”,求解答!急!!