进程数量控制器 【ChatGPT】

简介: 进程数量控制器 【ChatGPT】

进程数量控制器

摘要

进程数量控制器用于允许 cgroup 层次结构在达到一定限制后阻止任何新任务进行 fork() 或 clone()。

由于很容易达到任务限制而不触及任何已设置的 kmemcg 限制,PID 是一种基本资源。因此,在 cgroup 层次结构的范围内,必须通过允许限制 cgroup 中任务数量的资源来防止 PID 耗尽。

用法

要使用 pids 控制器,需设置 pids.max 中的任务最大数量(出于明显的原因,根 cgroup 中不可用)。当前 cgroup 中的进程数量由 pids.current 给出。

组织操作不会受到 cgroup 策略的阻碍,因此可能出现 pids.current > pids.max 的情况。这可以通过将限制设置为小于 pids.current,或者将足够多的进程附加到 cgroup 中使得 pids.current > pids.max 来实现。但是,不可能通过 fork() 或 clone() 违反 cgroup 策略。如果创建新进程会导致违反 cgroup 策略,fork() 和 clone() 将返回 -EAGAIN。

要将 cgroup 设置为无限制,将 pids.max 设置为 "max"。这是所有新 cgroup 的默认设置(注意,PID 限制是分层的,因此遵循层次结构中最严格的限制)。

pids.current 跟踪所有子 cgroup 层次结构,因此 parent/pids.current 是 parent/child/pids.current 的超集。

pids.events 文件包含事件计数器:

  • max:因达到限制而 fork 失败的次数。

示例

首先,挂载 pids 控制器:

# mkdir -p /sys/fs/cgroup/pids
# mount -t cgroup -o pids none /sys/fs/cgroup/pids

然后创建一个层次结构,设置限制并将进程附加到其中:

# mkdir -p /sys/fs/cgroup/pids/parent/child
# echo 2 > /sys/fs/cgroup/pids/parent/pids.max
# echo $$ > /sys/fs/cgroup/pids/parent/cgroup.procs
# cat /sys/fs/cgroup/pids/parent/pids.current
2

需要注意的是,尝试突破设置的限制(在本例中为 2)将失败:

# cat /sys/fs/cgroup/pids/parent/pids.current
2
# ( /bin/echo "Here's some processes for you." | cat )
sh: fork: Resource temporary unavailable

即使我们迁移到一个没有设置限制的子 cgroup 中,也无法突破层次结构中最严格的限制(在本例中为父级的限制):

# echo $$ > /sys/fs/cgroup/pids/parent/child/cgroup.procs
# cat /sys/fs/cgroup/pids/parent/pids.current
2
# cat /sys/fs/cgroup/pids/parent/child/pids.current
2
# cat /sys/fs/cgroup/pids/parent/child/pids.max
max
# ( /bin/echo "Here's some processes for you." | cat )
sh: fork: Resource temporary unavailable

我们可以设置一个小于 pids.current 的限制,这将完全阻止任何新进程的 fork(请注意,shell 本身也计入 pids.current):

# echo 1 > /sys/fs/cgroup/pids/parent/pids.max
# /bin/echo "We can't even spawn a single process now."
sh: fork: Resource temporary unavailable
# echo 0 > /sys/fs/cgroup/pids/parent/pids.max
# /bin/echo "We can't even spawn a single process now."
sh: fork: Resource temporary unavailable
相关文章
|
3月前
|
前端开发 RDMA
RDMA 控制器 【ChatGPT】
RDMA 控制器 【ChatGPT】
|
3月前
|
Shell
HugeTLB 控制器 【ChatGPT】
HugeTLB 控制器 【ChatGPT】
|
3月前
设备白名单控制器 【ChatGPT】
设备白名单控制器 【ChatGPT】
|
3月前
|
存储 调度
Block IO 控制器 【ChatGPT】
Block IO 控制器 【ChatGPT】
|
4月前
|
人工智能 自然语言处理 搜索推荐
chatgpt这么火,现在AI搜索引擎有哪些呢?
国外AI搜索引擎包括ChatGPT,擅长自然语言处理与内容生成;Google Bard,提供智能个性化搜索体验;Microsoft Bing集成GPT模型增强智能检索;Perplexity AI以简洁答案及文献引用著称;Neeva强调隐私保护与无广告服务。国内方面,天工AI支持多种功能如知识问答与代码编程;腾讯元宝基于混元模型助力内容创造与学习;360AI搜索以精准全面的信息搜索见长;秘塔AI专注提升写作质量和效率;开搜AI搜索提供个性化智能搜索服务。以上引擎均利用先进AI技术提升用户体验。更多详情参阅[AI搜索合集](zhangfeidezhu.com/?page_id=651)。
118 8
chatgpt这么火,现在AI搜索引擎有哪些呢?
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题
HuggingGPT是一个框架,它使用大型语言模型(如ChatGPT)作为控制器来管理和协调Hugging Face上的AI模型,以语言作为通用接口解决多模态和领域的复杂AI任务。
69 0
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题
|
4月前
|
机器学习/深度学习 人工智能 算法
为什么ChatGPT等AI大模型都是基于Python开发?
为什么ChatGPT等AI大模型都是基于Python开发?
|
4月前
|
人工智能 自然语言处理 Linux
免费ChatGPT4o灵办AI可体验浏览器插件
灵办AI就是您所需的最佳助手!我们为您带来了一款多功能AI工具,ChatGPT4o不仅能为您提供精准翻译,还能满足您的对话需求、智能续写、AI搜索、文档阅读、代码生成与修正等多种需求。灵办 AI,真正让工作和学习变得轻松高效!一款多功能智能助手,旨在提升工作和学习效率。它提供实时翻译、对话问答、搜索、写作和网页阅读等服务,支持多种浏览器和操作系统,帮助用户随时获取信息,打破语言障碍,优化内容创作和信息处理。
126 0
|
4月前
|
Web App开发 人工智能 安全
Gemini vs ChatGPT:谷歌最新的AI和ChatGPT相比,谁更强?
Gemini vs ChatGPT:谷歌最新的AI和ChatGPT相比,谁更强?
|
4月前
|
人工智能 安全 机器人
ChatGPT 1岁:创新、争议和AI产生突破的一年
ChatGPT 1岁:创新、争议和AI产生突破的一年

相关实验场景

更多