content/en/docs/concepts/event-sources/kernel/tuning.md
This document provides advanced performance tuning options for the syscall data source in Falco. It is intended for users who want to optimize the performance of their Falco deployment by customizing the syscall monitoring behavior.
Falco provides users flexibility to select different syscall monitoring behaviors tailored to their specific use cases. These options offer various degrees of control over system calls, directly configured through the falco.yaml file.
This section outlines the available configurations and their implications.
By default, Falco traces syscalls derived from:
With the default configuration:
base_syscalls.custom_set: []
base_syscalls.repair: false
base_syscalls.all: false
This ensures accurate state engine management but offers no end-user customization of the additional syscalls.
base_syscalls.all)Setting this option to true enables monitoring all events supported by Falco, including typically ignored events such as write:
base_syscalls.all: true
Use with caution, as this may negatively impact performance due to increased resource usage.
base_syscalls.custom_set)CAUTION: Misconfiguration may result in incomplete event logs or disrupt Falco's tracing capabilities.
This option allows you to explicitly define an additional set of syscalls to trace, supplementing those required by active Falco rules:
base_syscalls.custom_set: [clone, clone3, fork, execve, execveat, close]
It offers fine-grained control and can help optimize resource utilization according to your threat model and performance constraints.
Recommended syscall sets for typical scenarios:
[clone, clone3, fork, vfork, execve, execveat, close][clone, clone3, fork, vfork, execve, execveat, close, socket, bind, getsockopt][setresuid, setsid, setuid, setgid, setpgid, setresgid, capset, chdir, chroot, fchdir] to the relevant set.Negative notation ("!syscall_name") is supported to explicitly exclude specific syscalls.
base_syscalls.repair)Recommended for most scenarios, enabling this option allows Falco to automatically select the minimal necessary set of syscalls beyond those explicitly required by enabled rules:
base_syscalls.repair: true
base_syscalls.custom_set: []
base_syscalls.all: false
This option ensures Falco's internal state engine integrity with minimal performance overhead, automatically incorporating best-practice syscall configurations.
Different configurations address various monitoring scenarios effectively:
Monitoring spawned processes under resource constraints
custom_set and repair: Both viable, but repair is recommended for automatic correctness.Monitoring spawned processes and network activity, excluding file opens
custom_set and repair: Both suitable, with repair ensuring automatic correctness without manual intervention.Flexible configurability for tailored monitoring
Comprehensive syscall monitoring
default, custom_set, repair) can achieve complete syscall monitoring.falco -i to list all events typically ignored in the default configuration.EF_OLD_VERSION are not generated during live monitoring but may appear in .scap files.