Startseite > RHCE > Verwendung von /proc/sys und sysctl zur Modifizierung und Einrichtung der Kernel-Laufzeitparameter

Verwendung von /proc/sys und sysctl zur Modifizierung und Einrichtung der Kernel-Laufzeitparameter

2012/01/19

Diverse Kernelparameter lassen sich zur Laufzeit verändern bzw. auslesen. Linux stellt dazu das /proc-Dateisystem bereit. Darin ist eine Vielzahl von Dateien enthalten, die Informationen über das laufende System enthalten. Die meisten davon lassen sich mit Hilfe des Befehls cat ansehen. Dateien unterhalb /proc/sys lassen sich zur Laufzeit verändern und ermöglichen damit eine Veränderung diverser Kernelparameter.

Anzeigen diverser Informationen in /proc

cat filesystems    # vom Kernel unterstützte Dateisysteme
cat swaps          # aktuell verwendete Swap-Speicher
cat interrupts     # belegte Interrupts
cat version        # Kernelversion

Veränderung von Kernelparametern zur Laufzeit

In /proc/sys gelegene Dateien lassen sich nicht nur wie oben beschrieben auslesen, sondern meist auch mit echo oder durch Aufruf von sysctl beschreiben:

echo 1 > /proc/sys/net/ipv4/ip_forward            # IP-Forwarding aktivieren
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all  # Ping nicht beantworten
echo 1 > /proc/sys/net/ipv4/conf/eth2/accept_source_route    # Source Route

Permanente Änderung von Kernel-Parametern

Auf diese Weise durchgeführte Änderungen gehen nach einem Neustart des Systems jedoch verloren. Sollen Parameter permanent modifiziert werden ist ein Eintrag in /etc/sysctl.conf notwendig. Diese Datei ist bereits im System vorhanden und kann entsprechend angepasst werden.

# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536
# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456

Die Einträge spiegeln die Verzeichnisstruktur innerhalb /proc/sys wieder, anstatt dem Forward-Slash (/) wird hier einfach ein Punkt verwendet.

Nach einer Änderung von Parametern in /etc/sysctl.conf ist der Aufruf des Befehls sysctl notwendig, um diese auch wirksam zu machen:

sysctl -p   # Lade Einstellungen aus sysctl.conf

 

Weiterführende Informationen bieten die Befehle

man sysctl
man sysctl.conf
Advertisements
Kategorien:RHCE Schlagwörter: , , , ,
%d Bloggern gefällt das: