11.11. Finomhangolás a sysctl használatával

A sysctl(8) egy olyan felület, amely lehetőséget biztosít egy működő FreeBSD rendszer megváltoztatására. Segítségével többek közt hozzáférhetünk a TCP/IP protokollkészlet és a virtuális memóriát kezelő alrendszer rengeteg apró opciójához, melyek megfelelő beállításával egy tapasztalt rendszergazda kezében drasztikusan növelhető a rendszer teljesítménye. A sysctl(8) alkalmazásával több mint ötszáz rendszerszintű változó kérdezhető le és állítható be.

A sysctl(8) két funkciót rejt magában: a rendszer beállításainak lekérdezését és módosítását.

Így nézhetjük meg az összes lekérdezhetó változót:

% sysctl -a

Így kérhetjük egy konkrét változó, például a kern.maxproc értékét:

% sysctl kern.maxproc
kern.maxproc: 1044

Egy adott változó értékének módosításához pedig használjuk a változó=érték felírást:

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

A sysctl változók értékei lehetnek karakterláncok, számok és logikai értékek (ahol az 1 az igennek, a 0 a nemnek felel meg).

Ha a számítógép indításakor automatikusan be akarunk állítani bizonyos változókat, akkor vegyük fel ezeket az /etc/sysctl.conf állományba. Ennek pontosabb részleteit a sysctl.conf(5) man oldalon és a 11.10.4 Szakaszban találhatjuk meg.

11.11.1. A sysctl(8) írásvédett értékei

Írta: Tom Rhodes.

Egyes esetekben szükséges lehet a sysctl(8) írásvédett változóinak módosítása. Habár gyakran elengedhetetlen, ezt kizárólag csak a rendszer (újra)indításakor tudjuk megtenni.

Például egyes laptopoknál a cardbus(4) eszköz nem próbálkozik több memóriaterület használatával, ezért egy ehhez hasonló hibával leáll:

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

Az ilyen és ehhez hasonló esetekben gyakran olyan sysctl(8) változók alapértelmezett értékeit kellene megváltoztatnunk, amelyek írásvédettek. Ilyenkor tegyük az érintett sysctl(8) változó “objektumazonosítóját” (OID) és a hozzá tartozó értéket a /boot/loader.conf állományunkba. Az alapértelmezéseket a /boot/defaults/loader.conf állományban találjuk meg.

A fentebb tárgyalt probléma megoldásához a felhasználónak a hw.pci.allow_unsupported_io_range=1 értéket kell beállítania az előbb említett állományban. Ezután már a cardbus(4) megfelelően fog működni.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.