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

推荐阅读更多精彩内容

  • 认识容器 Namespace帮助容器来实现各种计算资源的隔离,Cgroups主要限制的是容器能够使用的某种资源量。...
    一生逍遥一生阅读 460评论 0 1
  • 容器是镜像的一个运行实例。比较大的不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层。 本文记录容器...
    wean_a23e阅读 777评论 0 1
  • Android进程管理三部曲[3]-内存的回收 https://www.jianshu.com/p/c170f17...
    Kevin_Junbaozi阅读 1,094评论 2 2
  • 1 进程的概念 Linux内核把进程称为任务(task),进程的虚拟地址空间分为用户虚拟地址空间和内核虚拟地址空间...
    CHCD阅读 666评论 0 0
  • 转载:浅谈Cgroups 说起容器监控,首先会想到通过Cadvisor, Docker stats等多种方式获取容...
    meng_philip123阅读 764评论 0 2
  • Substrate的transaction-payment模块分析 transaction-payment模块提供...
    建怀阅读 7,744评论 0 4
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 5,562评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 6,606评论 0 2