Cgroups定义及验证

2023-11-03 18:28
文章标签 定义 验证 cgroups

本文主要是介绍Cgroups定义及验证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

sudo lsb_release -a可以看到操作系统版本是20.04sudo uname -r可以看到内核版本是5.4.0-156-generic
在这里插入图片描述

Linux Cgroups 的全称是 Linux Control Group。它最主要的作用,就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。

sudo mount -t cgroup展示Cgroups给用户暴露出来的操作接口等文件系统。
在这里插入图片描述

ls /sys/fs/cgroup/cpu 看一下CPU 子系统中配置文件。
在这里插入图片描述

我们可以使用底下的方法来使用上边子系统的配置文件:
cd /sys/fs/cgroup/cpu进入特定的目录,然后使用mkdir container创建一个新目录。
在这里插入图片描述

container这样的目录称为一个控制组,操作系统会在你新创建的 container 目录下,自动生成该子系统对应的资源限制文件,ls container/显示了生成的各种文件,如下图。
在这里插入图片描述

cd container/进入特定的目录。
while : ; do : ; done &后台执行while脚本开始进行吃内存。
在这里插入图片描述

q退出top

sudo cat /sys/fs/cgroup/cpu/container/cpu.cfs_quota_us
sudo cat /sys/fs/cgroup/cpu/container/cpu.cfs_period_us

显示对应配置值。

在这里插入图片描述

sudo echo 20000 > /sys/fs/cgroup/cpu/container/cpu.cfs_quota_us把20000写入cpu.cfs_quota_us中。
在这里插入图片描述

sudo echo 28435 > /sys/fs/cgroup/cpu/container/tasks把PID——28435写入到tasks中。
在这里插入图片描述

这里的PID——28435是上边执行while语句产生的。
在这里插入图片描述

再使用top看一下,28435的CPU使用率下降到20%左右。
在这里插入图片描述

q退出top

sudo kill -9 28435把进程杀死。
在这里插入图片描述

此文章为11月Day 3学习笔记,内容来源于极客时间《深入剖析 Kubernetes》。

这篇关于Cgroups定义及验证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/340043

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

easyui 验证下拉菜单select

validatebox.js中添加以下方法: selectRequired: {validator: function (value) {if (value == "" || value.indexOf('请选择') >= 0 || value.indexOf('全部') >= 0) {return false;}else {return true;}},message: '该下拉框为必选项'}

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

浙大数据结构:树的定义与操作

四种遍历 #include<iostream>#include<queue>using namespace std;typedef struct treenode *BinTree;typedef BinTree position;typedef int ElementType;struct treenode{ElementType data;BinTree left;BinTre

类和对象的定义和调用演示(C++)

我习惯把类的定义放在头文件中 Student.h #define _CRT_SECURE_NO_WARNINGS#include <string>using namespace std;class student{public:char m_name[25];int m_age;int m_score;char* get_name(){return m_name;}int set_name

React 笔记 父子组件传值 | 父组件调用子组件数据 | defaultProps | propsType合法性验证

1.通过props实现父组件像子组件传值 、方法、甚至整个父组件 传递整个父组件则   [变量名]={this} import Header from "./Header"render(){return(<Header msg={"我是props传递的数据"}/>)} import React,{Component} from "react";class Header extends