12.11. Optimisation avec sysctl

sysctl(8) est une interface qui vous permet d'effectuer des changements de paramétrage sur un système FreeBSD en fonctionnement. Cela comprend de nombreuses options avancées de la pile TCP/IP et du système de mémoire virtuelle qui peuvent améliorer dramatiquement les performances pour un administrateur système expérimenté. Plus de cinq cent variables système peuvent être lues et modifiées grâce à sysctl(8).

sysctl(8) remplit deux fonctions: lire et modifier les paramétrages du système.

Pour afficher toutes les variables lisibles:

% sysctl -a

Pour lire une variable particulière, par exemple, kern.maxproc:

% sysctl kern.maxproc
kern.maxproc: 1044

Pour fixer une variable particulière, utilisez la syntaxe intuitive variable=valeur :

# sysctl kern.maxfiles=5000
kern.maxfiles: 2088 -> 5000

Les valeurs des variables sysctl sont généralement des chaînes de caractères, des nombres, ou des booléens (un variable booléenne étant 1 pour oui ou un 0 pour non).

Si vous voulez fixer automatiquement certaines variables à chaque démarrage de la machine, ajoutez-les au fichier /etc/sysctl.conf. Pour plus d'information consultez la page de manuel sysctl.conf(5) et la Section 12.10.4, « sysctl.conf ».

12.11.1. Variables sysctl(8) en lecture seule

Contribution de Tom Rhodes.

Dans certains cas, il peut être nécessaire de modifier des variables sysctl(8) en lecture seule. Bien que cela soit parfois inévitable, cela ne peut être fait qu'au (re)démarrage de la machine.

Par exemple sur certains modèles d'ordinateurs portables le périphérique cardbus(4) ne sondera pas le système à la recherche des zones mémoires, et échouera avec des erreurs du type:

cbb0: Could not map register memory
device_probe_and_attach: cbb0 attach returned 12

Des cas comme le précédent demandent généralement la modification de paramètres sysctl(8) par défaut qui sont en lecture seule. Pour palier à ces situations un utilisateur peut placer un paramétrage (“OID”—Object IDentifier) sysctl(8) dans le fichier local /boot/loader.conf.local. Les paramétrages par défaut se trouvent dans le fichier /boot/defaults/loader.conf.

Pour corriger le problème précédent, il faudrait que l'utilisateur ajoute la ligne hw.pci.allow_unsupported_io_range=1 dans le fichier précédemment indiqué. Désormais le périphérique cardbus(4) devrait fonctionner normalement.

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.

Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.