tunables.conf(5)
๐ tunables.conf โ the vibes manual ๐
okay bestie, welcome to tunables.conf(5), straight out of the File Formats Manual section of your local man-pages situation. this is the file that tells your runtime library how to act, and honestly? it's giving quiet power. let's get into it ๐
โจ NAME โจ
tunables.conf โ the tunables configuration file. that's it, that's the name, she's simple and she knows it ๐
โจ SYNOPSIS โจ
/etc/tunables.conf
โจ DESCRIPTION โจ
so Tunables are a feature in the GNU C Library that lets application authors and distribution maintainers change how the runtime library behaves, so it actually matches their workload. customizable queen behavior, we love to see it ๐
this file gets parsed by ldconfig(8), and the results get stored in /etc/ld.so.cache. then, when a program starts executing, that resulting data gets read. so it's like... the file whispers, ldconfig writes it down, and every program reads the notes later. iconic pipeline honestly ๐ฆ
every single line in /etc/tunables.conf is one of three things: a tunable, a directive, or a filter. no cap.
๐ธ Tunables ๐ธ
a tunable is written as a string shaped like name=value. that's the whole format, that's the assignment, periodt.
for the list of supported tunables? bestie, pls consult the glibc manual that matches your installed version of glibc, or just run this:
$ ld.so --list-tunables;
(yes the semicolon is in there, she's part of the command, leave her alone ๐)
๐ธ Directives ๐ธ
include pathโ the syntax lets a line start with the keywordincludefollowed by aglob(7)pattern. every file matching that pattern gets processed as if its contents were included right at that point. it's copy-paste energy without the copy-paste ๐ซ
๐ธ Modifiers ๐ธ
each line can have zero or more keywords or symbols at the beginning, and those change how each tunable affects each process. the keywords must be separated by whitespace โ but the symbols do not need to be. rude little asymmetry but okay, we adapt โจ
overridable,+โ lets the tunable be overridden by theGLIBC_TUNABLESenvironment variable when the process runs. this is the default, btw ๐nonoverridable,-โ do not let the environment variable override this one. hands off, she said what she said ๐ซonlysecure,@โ the tunable applies only toAT_SECUREprocesses, like one started from a set-user-ID program, or one with elevated capabilities. exclusive club, velvet rope, iykyk ๐nonsecure,$โ the tunable applies only to non-AT_SECUREprocesses. this is the default too ๐anysecure,*โ the tunable applies to bothAT_SECUREand non-AT_SECUREprocesses. everybody's invited, she's inclusive ๐
๐ธ Filters ๐ธ
filters limit the tunables that come after them. and the effects of a filter get terminated by any one of these:
- the end of the file.
- the end of an included file.
- an
includedirective. - a new (possibly empty) filter.
the syntax is:
[filter:pattern]
procโ theprocfilter limits the following tunables to processes whose name matches the pattern. the pattern can be an absolute path, or just the base name. either way bestie, she'll figure it out ๐ง
a filter can also be totally empty: []. such a filter has no effects. it's just standing there. existing. being decorative ๐ซถ
โจ FILES โจ
/etc/tunables.conf/etc/ld.so.cacheโ cached copy of tunables.
โจ EXAMPLES โจ
example configuration file, and yes we're looking at it together, come closer:
glibc.malloc.arenas_max=5
onlysecure glibc.malloc.arenas_max=1
-glibc.pthread.rseq=1
[proc:/bin/bad.program]
-glibc.pthread.rseq=0
[proc:some.program]
-glibc.malloc.mmap_threshold=65536
see how the modifiers and filters are just vibing up there doing their little jobs? obsessed ๐ญโจ
โจ SEE ALSO โจ
and that's the whole thing, bestie ๐
little sign-off moment: this page comes to you from Linux man-pages 6.20, dated 2026-08-25. slay, and remember โ always check the manpage for your glibc version, because the tunables list is a whole moving target ๐ธ๐ ๐ฆ
๐ฆ where this page comes from
- arch rolling: man-pages 6.20-1 ยท BSD-2-Clause AND BSD-3-Clause AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-linking-exception AND LGPL-3.0-or-later AND LicenseRef-Public-Domain AND LicenseRef-UltraPermissive AND Linux-man-pages-1-para AND Linux-man-pages-copyleft AND Linux-man-pages-copyleft-2-para AND Linux-man-pages-copyleft-var AND MIT AND Spencer-94
- nixpkgs unstable: man-pages 6.20
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms