IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    cgroups 常用配置

    Yiran\'s Blog发表于 2018-09-23 11:40:19
    love 0
    背景 链接到标题 在软件运行过程中,我们经常需要限制 CPU 、内存、磁盘的使用,方式程序超出了限定边界范围。在 Linux 中,我们可以通过 cgroups 来进行限制。 cgroups 链接到标题 中文名称为控制组群,具体功能分类为: 资源限制:组可以被设置不超过设定的内存限制;这也包括虚拟内存。 优先级:一些组可能会得到大量的CPU或磁盘IO吞吐量。 结算:用来衡量系统确实把多少资源用到适合的目的上。 控制:冻结组或检查点和重启动。 下面来说下常见的使用方式 CPU 链接到标题 RedHat 官方文档中描述 cgroups 在 RHEL7/CentOS7 之后的版本需要通过 systemd 配置,不再使用 libcgconfig 方式。 但是在 systemd 的配置中,CPU 相关的配置项比较简单,或者说 OS 自动配置了很多,没有暴露出来。所以我们这里还是采用 libcgconfig 的配置方式。 在进行 CPU 限制之前,我们需要了解一下 NUMA 结构。什么是 NUMA? NUMA 是一种为多处理器的计算机设计的内存,内存访问时间取决于内存相对于处理器的位置。在NUMA下,处理器访问它自己的本地内存的速度比非本地内存快一些。 不同的 Thread 在同一个 Core 上也会发生抢占情况,具体可以通过 sysbench 进行测试。 相关概念定义: Socket:物理服务器上的 CPU 插槽 Core:物理 CPU 核心数 Thread:超线程 简单的说就是如果你的程序是计算密集型,那么尽可能的要让 CPU 限制在同一个 NUMA node 上。 查看 NUMA node 方式:


沪ICP备19023445号-2号
友情链接