Performance - cgroup介绍
Performance - cgroup 介绍 cgroup 是 Linux 下的一种机制,用于将任务集(包括进程、线程及其所有未来的子级)聚合并分区到具有专门行为的层级组中。Android 使用 cgroup 控制及考量 CPU 和内存等系统资源的使用和分配情况。 cgroup 的概念是将进程分组,但是目的与 namespace 不一样,namespace 是为了隔离进程组之前的资源,而 cgroup 是为了对一组进程进行统一的资源监控和限制。cgroup 名词是 Linux 下一种将进程按组管理的机制,在用户层面看,cgroup 技术就是可以把系统中的所有进程组织成一颗独立的树,每颗树都包含系统所有进程,树的每个节点就是一个进程组,而每颗树又和一个或者多个 subsystem 关联,树的作用是对进程分组,而 subsystem 的作用是对这些组进行操作。 cgroup 描述文件位于 <ANDROID_BUILD_TOP>/system/core/libprocessgroup/profiles/ 下的 cgroups.json 文件中。各个控制器在子部分中描述,且必须至少包含以下内容:名称,由 Controller 字段定义;装载路径,由 Path 字段定义;Mode、UID(用户 ID)和 GID(组 ID),用于描述该路径下文件的所有者模式和访问模式(均为可选字段);Optional 属性,将其设置为 true,让系统忽略内核不支持装载的 cgroup 控制器引起的装载错误。 在 cgroup 中,task_profiles.json 文件用于描述要应用于进程或线程的一组特定操作。这组操作与一个配置文件名称相关联,后者在 SetTaskProfiles 和 SetProcessProfiles 调用中用于调用配置文件操作。为特定 cgroup 文件分配名称,作为 Attributes 列表中的条目。每个条目都包含以下内容:Name 字段 - 指定 Attribute 的名称;Controller 字段 - cgroup 的设置可以分为两个部分:cgroup 的概念和 cgroup 的描述文件。cgroup 的概念是将进程分组,以便对一组进程进行统一的资源监控和限制。cgroup 的描述文件用于描述 cgroup 的各个控制器,包括名称、装载路径、Mode、UID 和 GID 等信息。 在 Android 中,cgroup 是一个强大的机制,用于对系统资源的使用和分配进行控制和监控。通过使用 cgroup,可以对进程或线程的一组特定操作进行配置和限制,从而提高系统的性能和安全性。 cgroup 是一个重要的机制,用于对系统资源的使用和分配进行控制和监控。在 Android 中,cgroup 是一个强大的工具,用于提高系统的性能和安全性。