11.11. Messa a Punto con sysctl

sysctl(8) è un'interfaccia che permette di effettuare cambiamenti ad un sistema FreeBSD già attivo. Questo include molte opzioni avanzate dello stack TCP/IP e del sistema di memoria virtuale che possono permettere di migliorare drammaticamente le prestazioni ad un sistemista che abbia esperienza. Più di cinquecento variabili di sistema possono essere lette e modificate usando sysctl(8).

In sostanza, sysctl(8) serve a due cose: a leggere e a modificare le impostazioni di sistema.

Per visualizzare tutte le variabili leggibili:

% sysctl -a

Per leggere una particolare variabile, ad esempio, kern.maxproc:

% sysctl kern.maxproc
kern.maxproc: 1044

Per impostare una particolare variabile, usa l'intuitiva sintassi variabile=valore:

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

I valori validi per le variabili di sysctl sono generalmente o stringhe, o numeri, o valori booleani (un valore booleano può valere 1 per sì o 0 per no).

Se vuoi settare in modo automatico alcune variabile ad ogni avvio della macchina, usa il file /etc/sysctl.conf. Per maggiori informazioni guarda la pagina man di sysctl.conf(5) e la Sezione 11.10.4, «sysctl.conf».

11.11.1. sysctl(8) in sola lettura

Contributo di Tom Rhodes.

In alcuni casi può essere desiderabile modificare i valori di sysctl(8) in sola lettura. Anche se questo talvolta è inevitabile, può essere fatto solo con un riavvio.

Ad esempio in alcuni modelli di laptop il dispositivo cardbus(4) non effettuerà il controllo sugli intervalli di memoria, e fallirà con errori che assomigliano a questi:

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

Casi come il precedente richiedono tipicamente la modifica di alcuni valori predefiniti di sysctl(8) che sono impostati come sola lettura. Per superare queste situazioni un utente può mettere degli «OID» di sysctl(8) nel proprio /boot/loader.conf.local. I valori predefiniti sono indicati nel file /boot/defaults/loader.conf.

Per risolvere i problemi menzionati qui sopra sarà necessario modificare hw.pci.allow_unsupported_io_range=1 nel file suddetto. Ora cardbus(4) funzionerà correttamente.

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.

Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.