???????????????alloc_pid???????????????????????kernel.pid_max??????

??????????????100000????????С?

???????????strace???????η????????????mprotect????

????????????????????????mmap???????????????vm.max_map_count??????

??????????????100000????????У?????????????????
????????????滹?????????kernel.threads-max???????????????????????????800000???????????????????????????б????????
???????????????????????????ó?800000??????????????????????????????
????3.3     ???????
??????????copy_process????
????copy_process
????3.3.1  ???????
????dup_task_struct–>alloc_task_struct_node/alloc_thread_info_node/arch_dup_task_struct–>kmme_cache_alloc_node(slub.c)–>slab_alloc_node–>
????“CONFIG_MEMCG_KMEM” //?????????????docker???????cgroup?????????????????????slub????治???ó??????????
???????庯????
????alloc_pages—->__memcg_kmem_newpage_charge–>memcg_charge_kmem–>__res_counter_charge–>res_counter_charge_locked
????3.3.2  Threads-max????????
????if (nr_threads >= max_threads) // threads-max ???????
????3.3.3  Pid_max????????
????alloc_pid–>alloc_pidmap //pid_max???????
????3.3.4  ?????????????
??????????????????????????vm.max_map_count????
????4.   ???
????/proc/sys/kernel/pid_max #???????????????
????/proc/sys/kernel/thread-max  #???????????
????max_user_process??ulimit -u?? #???????????????????ж??????????
????/proc/sys/vm/max_map_count #??????mmap???????????????????????????
????/sys/fs/cgroup/memory/${cgroup}/memory.kmem #????docker ???????????????????task_struct??slab?????????????????????????