Linux Cgroup 入门教程:cpuset
这是 Cgroup 系列的第四篇,往期回顾: Linux Cgroup 入门教程:基本概念 Linux Cgroup 入门教程:CPU Linux Cgroup 入门教程:内存 通过 上篇文章 的学习,我们学会了如何查看当前 cgroup 的信息,如何通过操作 /sys/fs/cgroup 目录来动态设置 cgroup,也学会了如何设置 CPU shares 和 CPU quota 来控制 slice 内部以及不同 slice 之间的 CPU 使用时间。本文将继续探讨对 CPU 使用时间的限制。 对于某些 CPU 密集型的程序来说,不仅需要获取更多的 CPU 使用时间,还要减少工作负载在节流时引起的上下文切换。现在的多核系统中每个核心都有自己的缓存,如果频繁的调度进程在不同的核心上执行势必会带来缓存失效等开销。那么有没有方法针对 CPU 核心进行隔离呢?准确地说是把运行的进程绑定到指定的核心上运行。虽然对于操作系统来说,所有程序生而平等, 但有些程序比其他程序更平等。 对于那些更平等的程序来说,我们需要为它分配更多的 CPU 资源,毕竟人都是很偏心的。废话少说,我们来看看如何使用 cgroup 限制进程使用指定的 CPU 核心。 1. 查看 CPU 配置 CPU 核心的编号一般是从 0 开始的,4 个核心的编号范围是 0-3 。我们可以通过查看 /proc/cpuinfo