Oracle представила инструментарий bpftune, предназначенный для автоматической оптимизации настроек ядра Linux с учётом выполняемых задач, активности в системе и характера нагрузки. Основу bpftune составляет фоновый процесс, работающий в пространстве пользователя и использующий подсистему ядра BPF. Код проекта написан на языке C и распространяется под лицензией GPLv2.
В качестве причины создания проекта упоминается потребность в оптимизации самодостаточных систем, рассчитанных на работу с минимальным вмешательством администратора, а также увеличение сложности современного ядра, повышающая трудоёмкость ручных оптимизаций (ядром предоставляется более 1500 sysctl параметров, влияющих на производительность и потребление ресурсов, и часто администратор просто копирует готовые рецепты, детально не вникая в их суть и надеясь, что они помогут).
Bpftune осуществляет непрерывный мониторинг состояния системы, адаптивно корректирует влияющие на производительность параметры ядра и оценивает изменение поведения для достижения оптимального результата.
В процессе автонастройки bpftune пытается добиться оптимального баланс между предоставлением и потреблением ресурсов, учитывая косвенное влияние изменений. Например, для повышения пропускной способности необходимо увеличить размер сетевого буфера, но его увеличение приводит к повышению потребления памяти и увеличению задержек при передаче данных, поэтому при увеличении размера буфера следует учитывать и эти параметры.
Источник: OpenNET.