BPFTUNE(8)

Name
BPFTUNE - tool for auto-tuning of Linux kernel parameters via BPF

SYNOPSIS
bpftune [OPTIONS]

OPTIONS := { { -V | --version } | { -h | --help } | { [-s | --stderr } | { [-c | --cgroup] cgroup} | { [-l | --libdir ] libdir} | { --print-libdir } | [{ -d | --debug }] } { [-r | --learning_rate ] learning_rate} { [-R | --rollback ]} { [-S | --support ]} { [-p | --port ] port} { [-q | --query] query}

DESCRIPTION
bpftune supports a set of "tuners" for sysctl parameters, congestion control algorithms etc to optimize performance and avoid imposing unnecessary limits on tunables.

bpftune requires CAP_BPF and CAP_TRACING capabilities, or CAP_SYS_ADMIN on older systemes. It is run via a systemd service, but can also be run standalone if required. To probe if your system supports the BPF features required for bpftune, run "bpftune -S". Basic bptune support requires BPF ring buffer, BPF hashmap and BPF sock ops and k[ret]probe support. On more modern systems, BPF tracing programs and BPF iterators are used. Individual tuners support legacy mode operation where possible. In order to support per-network-namespace tuning, netns cookie support is required; without that, only global tuning is supported.

OPTIONS

-h, --help
    Show help information

-V, --version
    Show version.

-d, --debug
    Show debug output.

-a, --allow
    Allow tuner only, e.g. foo.so . Multiple -a options can be supplied to allow specific tuners. Used for testing.

-c, --cgroup
    Filter events for cgroup.

-D, --daemon
    Run in daemon mode.

-s, --stderr
    Log to standard error instead of syslog.

-S, --support
    Scan system to see what level of bpftune support is present.

-l, --libdir
    bpftune extra plugin directory; defaults to /usr/local/lib64/bpftune . Both /usr/lib64/bpftune and /usr/local/lib64/bpftune can be used to install plugin tuners; if an alternative to /usr/local/lib64/bpftune is wanted, it must be specified via library path. Plugin directories must be absolute paths whose components and plugin files are root-owned, are not group- or other-writable, and have no POSIX ACLs. Symbolic links are rejected. — print-libdir Print the compiled-in standard plugin directory and exit.

-r, --learning_rate
    Specify learning rate; supported values range from 0: tunables are changed by/within 1.0625 % of limit

    1: tunables are changed by/within 3.125% of limit

    2: tunables are changed by/within 6.25% of limit

    3: tunables are changed by/within 12.5% of limit

    4: tunables are changed by/within 25% of limit

    So for example at rate 4, if we are within 25% of a limit, the limit is increased by 25%. Default learning rate is 4. Lower values are more conservative as they change only when closer to limits, but may require more frequent changes as a result.

-R, --rollback
    Roll back sysctl settings on exit; this allows us to explore tunable updates bpftune makes without making long-term changes to the system. On exit, bpftune summarizes the changes made and rolls back to the sysctl values that were set prior to bpftune running.

-p, --port
    TCP port to listen on for queries. If not specified, use an ephemeral localhost port.

-q, --query
    Query bpftune. Supported queries include

    help - show supported queries summary - show summary of changes made by tuners tuners - show loaded tuners and their state tunables - show supported tunables for loaded tuners jtunables - show supported tunables in json format status - show current status of tunables jstatus - show current status of tunables in json format rollback - show changes needed to roll back bpftune changes

SEE ALSO
bpf(2), bpftune(8),