当前位置: 首页 > news >正文

【博客615】通过systemd设置cgroup来限制服务资源争抢

通过systemd设置cgroup来限制服务资源争抢

1、场景

我们的宿主机上通常会用systemctl来管理一些agent服务,此时我们需要限制服务的cpu,memory等资源用量,以防止服务之前互相争抢资源,导致某些核心agent运行异常

2、systemd与cgroup

Systemd 依赖 cgroups:

先区分 cgroups 的两个方面:层级结构(A)和资源控制(B)。首先 cgroups 是以层级结构组织并标识进程的一种方式,同时它也是在该层级结构上执行资源限制的一种方式。我们简单的把 cgroups 的层级结构称为 A,把 cgrpups 的资源控制能力称为 B。
对于 systemd 来说,A 是必须的,如果没有 A,systemd 将不能很好的工作。而 B 则是可选的,如果你不需要对资源进行控制,那么在编译 Linux 内核时完全可以去掉 B 相关的编译选项。

Systemd 默认挂载的 cgroups 系统:

在系统的开机阶段,systemd 会把支持的 controllers (subsystem 子系统)挂载到默认的 /sys/fs/cgroup/ 目录下面:在这里插入图片描述

除了 systemd 目录外,其它目录都是对应的 subsystem。
/sys/fs/cgroup/systemd 目录是 systemd 维护的自己使用的非 subsystem 的 cgroups 层级结构。这玩意儿是 systemd 自己使用的,换句话说就是,并不允许其它的程序动这个目录下的内容。其实 /sys/fs/cgroup/systemd 目录对应的 cgroups 层级结构就是 systemd 用来使用 cgoups 中 feature A 的。

3、通过systemd为服务设置cgroup限制

有两种方法可以对配置了systemd的程序进行资源隔离:

  • 命令行修改:通过执行systemctl set-property命令实现,形式为:

    systemctl set-property name parameter=value;修改默认即时生效

  • 手工修改文件:直接编辑程序的systemd unit file文件,然后重刷配置:

    再执行systemctl daemon-reload更新配置,并重启服务systemctl restart name.service

systemd unit file里支持的资源隔离配置项,如常见的:

  • CPUQuota=value
    该参数表示服务可以获取的最大CPU时间,value为百分数形式,高于100%表示可使用1核以上的CPU。与cgroup cpu控制器cpu.cfs_quota_us配置项对应。

  • MemoryLimit=value
    该参数表示服务可以使用的最大内存量,value可以使用K, M, G, T等后缀表示值的大小。与cgroup memory控制器memory.limit_in_bytes配置项对应。

4、systemd-cgtop 命令显示 cgoups 的实时资源消耗情况:

在这里插入图片描述

http://www.lryc.cn/news/2582.html

相关文章:

  • C语言经典编程题100例(21-40)
  • Rabbitmq业务难点
  • 服务器如何下载百度网盘文件?Linux服务器如何在百度网盘中连接、上传下载;在Linux服务器上下载百度云盘中的资料
  • Cesium-数字仿真-你总要了解
  • 原型、原型链、__proto__与prototype的区别、继承
  • 前端 面经
  • [oeasy]python0080_设置RGB颜色_24bit_24位真彩色_颜色设置
  • 实战项目-用户评论数据情绪分析
  • day02 DOS(续)文本编辑快捷键 发展史
  • arm64与aarch64
  • QString详解
  • SpringCloud微服务
  • Hive 连接及使用
  • android libavb深入解读
  • 【面试题】对闭包的理解?什么是闭包?
  • 笔试题-2023-乐鑫-数字IC设计【纯净题目版】
  • antd日期组件时间范围动态跟随
  • mysql一条sql语句的执行过程
  • SaaS是什么,和多租户有什么关系?
  • C语言---字符串函数总结
  • MySQL-表的基本操作
  • 开篇之作—闲聊几句AUTOSAR
  • 02- 天池工业蒸汽量项目实战 (项目二)
  • LeetCode-111. 二叉树的最小深度
  • git常用命令
  • 2022年12月电子学会Python等级考试试卷(一级)答案解析
  • 大数据未来会如何发展
  • 2022黑马Redis跟学笔记.基础篇(一)
  • 【Spring(十一)】万字带你深入学习面向切面编程AOP
  • 基于Java+SpringBoot+Vue+uniapp前后端分离图书阅读系统设计与实现