sysctl
Vorzugsweise für das Linux Kernel-Tuning verwendet.
„all“ vs „default“ in sysctl-Parametern
Was ist der Unterschied zwischen „all“, „default“ oder Geräte-spezifischen Settings in sysctl
? Beispiel:
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.enp1s0.accept_source_route = 1
„all“ ändert die Einstellung für alle existierenden Geräte, egal welche Einstellung die Geräte selbst besitzen - ausser die Geräteeinstellung ist grösser als der „all“-Wert.
„default“ ist die Standardeinstellung für neu hinzugefügte, spezifische Geräte.
Die im Beispiel angeführte Einstellung für „enp1s0“ gilt nur für das Gerät. Damit ergibt sich:
enp1s0:
accept_source_route = 1
eth0:
accept_source_route = 0
Achtung
RHEL 7+ kann abhängig von der Hardware bereits NIC-Treiber laden, bevor die sysctl-Defaults zur Anwendung kommen. Um sicherzugehen, dass die sysctl-Einstellungen gelten, sollte man wie auf https://access.redhat.com/solutions/8694 beschrieben ein /sbin/ifup-local
verwenden, welches die Einstellungen für das Interface lädt. Beispiel für solch ein Script:
#!/bin/bash
sysctl net.ipv4.conf.$1.rp_filter=2
Falls der NetworkManager zum Einsatz kommt, muss stattdessen ein NetworkManager Dispatcher Script erstellt werden, das vom NetworkManager ausgeführt wird, sobald der Link-State auf up oder down wechselt - abzulegen im Beispiel unter /etc/NetworkManager/dispatcher.d/30-rp_filter
Settings, die sofort aktiv werden
Settings, die ohne Reboot geändert werden können.
# Usage example: set_kparm vm.swapiness 10
set_kparm () {
echo "Previous value: $(sysctl $1)"
echo "$1 = $2" >> /etc/sysctl.conf
sysctl -p > /dev/null
echo "Current value: $(sysctl $1)"
}
Swapiness auf „10“ setzen (RHEL swappt erst, wenn nur noch 10% RAM oder weniger frei sind):
set_kparm vm.swappiness 10
Settings, die erst nach einem Reboot aktiv werden
qdisc ändern:
# view the current config
sysctl net.core.default_qdisc
# Default RHEL 7: pfifo_fast
# Default RHEL 8: fq_codel
# view the current config
yum -y install iproute-tc
tc -s qdisc show dev eth0
# qdisc fq_codel 0: ...
# update the existing qdisc
set_kparm net.core.default_qdisc pfifo_fast
# reboot necessary
reboot
Built on 2024-11-18