HugeTLB 控制器 【ChatGPT】

简介: HugeTLB 控制器 【ChatGPT】

HugeTLB 控制器

HugeTLB 控制器可以通过首先挂载 cgroup 文件系统来创建。

# mount -t cgroup -o hugetlb none /sys/fs/cgroup

通过上述步骤,初始或父 HugeTLB 组将在 /sys/fs/cgroup 中可见。在启动时,此组包括系统中的所有任务。/sys/fs/cgroup/tasks 列出了此 cgroup 中的任务。

可以在父组 /sys/fs/cgroup 下创建新组:

# cd /sys/fs/cgroup
# mkdir g1
# echo $$ > g1/tasks

上述步骤创建了一个新组 g1,并将当前 shell 进程(bash)移入其中。

控制文件的简要摘要:

- hugetlb.<hugepagesize>.rsvd.limit_in_bytes            # 设置/显示“hugepagesize”巨大页保留的限制
- hugetlb.<hugepagesize>.rsvd.max_usage_in_bytes        # 显示“hugepagesize”巨大页保留和无保留故障的最大使用量
- hugetlb.<hugepagesize>.rsvd.usage_in_bytes            # 显示“hugepagesize”巨大页的当前保留和无保留故障
- hugetlb.<hugepagesize>.rsvd.failcnt                   # 显示由于 HugeTLB 保留限制而导致的分配失败次数
- hugetlb.<hugepagesize>.limit_in_bytes                 # 设置/显示“hugepagesize”巨大页故障的限制
- hugetlb.<hugepagesize>.max_usage_in_bytes             # 显示记录的“hugepagesize”巨大页的最大使用量
- hugetlb.<hugepagesize>.usage_in_bytes                 # 显示“hugepagesize”巨大页的当前使用量
- hugetlb.<hugepagesize>.failcnt                        # 显示由于 HugeTLB 使用限制而导致的分配失败次数
- hugetlb.<hugepagesize>.numa_stat                      # 显示分配给此 cgroup 的巨大页内存的 numa 信息

对于支持三种巨大页大小(64k、32M 和 1G)的系统,控制文件包括:

  • hugetlb.1GB.limit_in_bytes
  • hugetlb.1GB.max_usage_in_bytes
  • hugetlb.1GB.numa_stat
  • hugetlb.1GB.usage_in_bytes
  • hugetlb.1GB.failcnt
  • hugetlb.1GB.rsvd.limit_in_bytes
  • hugetlb.1GB.rsvd.max_usage_in_bytes
  • hugetlb.1GB.rsvd.usage_in_bytes
  • hugetlb.1GB.rsvd.failcnt
  • hugetlb.64KB.limit_in_bytes
  • hugetlb.64KB.max_usage_in_bytes
  • hugetlb.64KB.numa_stat
  • hugetlb.64KB.usage_in_bytes
  • hugetlb.64KB.failcnt
  • hugetlb.64KB.rsvd.limit_in_bytes
  • hugetlb.64KB.rsvd.max_usage_in_bytes
  • hugetlb.64KB.rsvd.usage_in_bytes
  • hugetlb.64KB.rsvd.failcnt
  • hugetlb.32MB.limit_in_bytes
  • hugetlb.32MB.max_usage_in_bytes
  • hugetlb.32MB.numa_stat
  • hugetlb.32MB.usage_in_bytes
  • hugetlb.32MB.failcnt
  • hugetlb.32MB.rsvd.limit_in_bytes
  • hugetlb.32MB.rsvd.max_usage_in_bytes
  • hugetlb.32MB.rsvd.usage_in_bytes
  • hugetlb.32MB.rsvd.failcnt
  1. 页面故障记账

hugetlb.<hugepagesize>.limit_in_bytes hugetlb.<hugepagesize>.max_usage_in_bytes hugetlb.<hugepagesize>.usage_in_bytes hugetlb.<hugepagesize>.failcnt

HugeTLB 控制器允许用户限制每个控制组的 HugeTLB 使用(页面故障),并在页面故障期间强制执行限制。由于 HugeTLB 不支持页面回收,在页面故障时强制执行限制意味着,如果应用程序尝试超出其限制故障 HugeTLB 页面,应用程序将收到 SIGBUS 信号。因此,应用程序需要事先准确知道自己使用了多少 HugeTLB 页面,并且系统管理员需要确保机器上有足够的可用页面以满足所有用户的请求,以避免进程收到 SIGBUS。

  1. 保留记账

hugetlb.<hugepagesize>.rsvd.limit_in_bytes hugetlb.<hugepagesize>.rsvd.max_usage_in_bytes hugetlb.<hugepagesize>.rsvd.usage_in_bytes hugetlb.<hugepagesize>.rsvd.failcnt

HugeTLB 控制器允许限制每个控制组的 HugeTLB 保留,并在保留时和对没有保留的 HugeTLB 内存的故障时强制执行控制器限制。由于保留限制是在保留时(在 mmap 或 shget 上)强制执行的,如果内存在事先保留,保留限制永远不会导致应用程序收到 SIGBUS 信号。对于 MAP_NORESERVE 分配,保留限制的行为与故障限制相同,强制在故障时使用内存,并导致应用程序在超出其限制时收到 SIGBUS。

保留限制优于上述页面故障限制,因为保留限制是在保留时(在 mmap 或 shget 上)强制执行的,并且如果内存在事先保留,永远不会导致应用程序收到 SIGBUS 信号。这允许更容易地回退到其他选择,例如非 HugeTLB 内存。在页面故障记账的情况下,要避免进程收到 SIGBUS 是非常困难的,因为系统管理员需要准确知道系统中所有任务的 HugeTLB 使用量,并确保有足够的页面来满足所有请求。在过度分配的系统上避免任务收到 SIGBUS 几乎是不可能的。

  1. 共享内存的注意事项

对于共享的 HugeTLB 内存,首次导致内存被保留或故障的任务将对其进行记账,而随后对此保留或故障内存的所有使用将不再进行记账。

只有在取消保留或释放 HugeTLB 文件时,共享的 HugeTLB 内存才会取消记账。通常情况下,这是在导致保留或故障的任务退出时而不是在其退出时。

  1. HugeTLB cgroup 下线的注意事项

当 HugeTLB cgroup 下线时,仍然对其进行保留或故障记账时的行为如下:

  • 故障记账会记入父 HugeTLB cgroup(重新分配),
  • 保留记账仍留在下线的 HugeTLB cgroup 上。

这意味着,如果一个 HugeTLB cgroup 在仍然有 HugeTLB 保留记账的情况下下线,该 cgroup 将持续存在为僵尸,直到所有 HugeTLB 保留取消记账。HugeTLB 保留的行为方式与内存控制器相匹配,其 cgroup 也会持续存在为僵尸,直到所有记账内存取消记账。此外,与 HugeTLB 故障的跟踪相比,HugeTLB 保留的跟踪更加复杂,因此在下线时重新分配保留是相当困难的。

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