文章目录
1. 前言
The GNU C Library Reference Manual for version 2.35
2. 可调参数
Tunables
可调参数是 GNU C 库中的一项功能,它允许应用程序作者和分发维护者更改运行时库行为以匹配他们的工作负载。这些被实现为一组可以以不同方式修改的开关。当前执行此操作的默认方法是通过 GLIBC_TUNABLES 环境变量,将其设置为一串以冒号分隔的名称=值对。例如,以下示例启用 malloc 检查并将 malloc 修剪阈值设置为 128 字节:
GLIBC_TUNABLES=glibc.malloc.trim_threshold=128:glibc.malloc.check=3
export GLIBC_TUNABLES
可调参数不是 GNU C 库稳定 ABI 的一部分,它们可能会在不同版本中更改或删除。此外,修改可调值的方法可能会在版本之间和分布之间发生变化。可以为可调参数实现多个“前端”,从而允许发行版在构建时选择其首选方法。
最后,可用的可调参数集可能因发行版而异,因为可调参数功能允许发行版在自己的命名空间下添加自己的可调参数。
将 --list-tunables 传递给动态加载程序以打印具有最小值和最大值的所有可调参数:
$ /lib64/ld-linux-x86-64.so.2 --list-tunables
glibc.rtld.nns: 0x4 (min: 0x1, max: 0x10)
glibc.elision.skip_lock_after_retries: 3 (min: -2147483648, max: 2147483647)
glibc.malloc.trim_threshold: 0x0 (min: 0x0, max: 0xffffffffffffffff)
glibc.malloc.perturb: 0 (min: 0, max: 255)
glibc.cpu.x86_shared_cache_size: 0x100000 (min: 0x0, max: 0xffffffffffffffff)
glibc.mem.tagging: 0 (min: 0, max: 255)
glibc.elision.tries: 3 (min: -2147483648, max: 2147483647)
glibc.elision.enable: 0 (min: 0, max: 1)
glibc.cpu.x86_rep_movsb_threshold: 0x1000 (min: 0x100, max: 0xffffffffffffffff)
glibc.malloc.mxfast: 0x0 (min: 0x0, max: 0xffffffffffffffff)
glibc.elision.skip_lock_busy: 3 (min: -2147483648, max: 2147483647)
glibc.malloc.top_pad: 0x0 (min: 0x0, max: 0xffffffffffffffff)
glibc.cpu.x86_rep_stosb_threshold: 0x800 (min:

本文详细介绍了GNU C Library (GLIBC)中的可调参数,涵盖内存分配、动态链接及针对不同硬件能力的调整,如malloc检查、内存池管理、POSIX线程优化和硬件特性控制。
最低0.47元/天 解锁文章
1210

被折叠的 条评论
为什么被折叠?



