pid cgroup

1、为了避免系统资源被耗光,需要对进程的最大进程数进行限制,通过向对应进程所在 cgroup 的 pid.max 文件中写入具体的数字来限制其进程数。默认值为 ‘max’ 也就是不限制,和 cgroup 最上层中的限制数保持一致。pids.current 表示 cgroup 该层路径下已经使用 pid 数量。如果 pid 已经达到上限,再创建进程会出现 Resource temporary unavailable 报错;

2、pid 被大量使用的原因:每一个进程都需要一个 pid,也会占用一定的资源,如果不限制进程数,可能会出现类似 fork bomb 耗光系统资源的问题。通常来说容器中可能由于 init 进程没有回收子进程而出现大量僵尸进程导致 pid 被耗光,当子进程退出时父进程没有回收子进程时,子进程就会成为僵尸进程;

3、系统 pid 最大值设置:pid 最大值可以在系统文件 /proc/sys/kernel/pid_max 中看到,系统在初始化时默认会设置最大值,一般小于等于 32 核的机器,pid_max 会被默认设置为 32768,大于32核的默认被设置为 核数*1024;

参考:
https://www.kernel.org/doc/Documentation/cgroup-v1/pids.txt

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 认识容器 Namespace帮助容器来实现各种计算资源的隔离,Cgroups主要限制的是容器能够使用的某种资源量。...
    一生逍遥一生阅读 1,095评论 0 1
  • 容器是镜像的一个运行实例。比较大的不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层。 本文记录容器...
    wean_a23e阅读 1,146评论 0 1
  • Android进程管理三部曲[3]-内存的回收 https://www.jianshu.com/p/c170f17...
    Kevin_Junbaozi阅读 1,775评论 2 2
  • 1 进程的概念 Linux内核把进程称为任务(task),进程的虚拟地址空间分为用户虚拟地址空间和内核虚拟地址空间...
    CHCD阅读 1,574评论 0 0
  • 转载:浅谈Cgroups 说起容器监控,首先会想到通过Cadvisor, Docker stats等多种方式获取容...
    meng_philip123阅读 991评论 0 2

友情链接更多精彩内容