01.01.2013 Aufrufe

Das FreeBSD-Handbuch - CSMN Net Services

Das FreeBSD-Handbuch - CSMN Net Services

Das FreeBSD-Handbuch - CSMN Net Services

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Kapitel 11. Konfiguration und Tuning<br />

ist, dass der wichtigste Wert, der durch maxusers bestimmt wird, die maximale Anzahl an Prozessen ist, die auf 20<br />

+ 16 * maxusers gesetzt wird. Wenn Sie also maxusers auf 1 setzen, können gleichzeitig nur 36 Prozesse laufen,<br />

von denen ungefähr 18 schon beim Booten des Systems gestartet werden. Dazu kommen nochmals etwa 15 Prozesse<br />

beim Start des X Window-Systems. Selbst eine einfache Aufgabe wie das Lesen einer Manualpage benötigt neun<br />

Prozesse zum Filtern, Dekomprimieren und Betrachten der Datei. Für die meisten Benutzer sollte es ausreichen,<br />

maxusers auf 64 zu setzen, womit 1044 gleichzeitige Prozesse zur Verfügung stehen. Wenn Sie allerdings den<br />

gefürchteten Fehler proc table full beim Start eines Programms oder auf einem Server mit einer großen Benutzerzahl<br />

(wie ftp.<strong>FreeBSD</strong>.org) sehen, dann sollten Sie den Wert nochmals erhöhen und den Kernel neu bauen.<br />

Anmerkung: Die Anzahl der Benutzer, die sich auf einem Rechner anmelden kann, wird durch maxusers nicht<br />

begrenzt. Der Wert dieser Variablen legt neben der möglichen Anzahl der Prozesse eines Benutzers weitere<br />

sinnvolle Größen für bestimmte Systemtabellen fest.<br />

11.13.1.2. kern.ipc.somaxconn<br />

Die Variable kern.ipc.somaxconn beschränkt die Größe der Warteschlange (Listen-Queue) für neue<br />

TCP-Verbindungen. Der Vorgabewert von 128 ist normalerweise zu klein, um neue Verbindungen auf einem stark<br />

ausgelasteten Webserver zuverlässig zu handhaben. Auf solchen Servern sollte der Wert auf 1024 oder höher gesetzt<br />

werden. Ein Dienst (z.B. sendmail(8), oder Apache) kann die Größe der Queue selbst einschränken. Oft gibt es die<br />

Möglichkeit, die Größe der Listen-Queue in einer Konfigurationsdatei einzustellen. Eine große Listen-Queue<br />

übersteht vielleicht auch einen Denial of Service Angriff (DoS).<br />

11.13.2. <strong>Net</strong>zwerk Limits<br />

Die Kerneloption NMBCLUSTERS schreibt die Anzahl der <strong>Net</strong>zwerkpuffer (Mbufs) fest, die das System besitzt. Eine<br />

zu geringe Anzahl Mbufs auf einem Server mit viel <strong>Net</strong>zwerkverkehr verringert die Leistung von <strong>FreeBSD</strong>. Jeder<br />

Mbuf-Cluster nimmt ungefähr 2 kB Speicher in Anspruch, so dass ein Wert von 1024 insgesamt 2 Megabyte<br />

Speicher für <strong>Net</strong>zwerkpuffer im System reserviert. Wie viele Cluster benötigt werden, lässt sich durch eine einfache<br />

Berechnung herausfinden. Wenn Sie einen Webserver besitzen, der maximal 1000 gleichzeitige Verbindungen<br />

servieren soll und jede der Verbindungen je einen 16 kB großen Puffer zum Senden und Empfangen braucht,<br />

brauchen Sie ungefähr 32 MB Speicher für <strong>Net</strong>zwerkpuffer. Als Daumenregel verdoppeln Sie diese Zahl, so dass<br />

sich für NMBCLUSTERS der Wert 2x32 MB / 2 kB = 32768 ergibt. Für Maschinen mit viel Speicher sollten Werte<br />

zwischen 4096 und 32768 genommen werden. Sie können diesen Wert nicht willkürlich erhöhen, da dies bereits zu<br />

einem Absturz beim Systemstart führen kann. Mit der Option -m von netstat(1) können Sie den Gebrauch der<br />

<strong>Net</strong>zwerkpuffer kontrollieren.<br />

Die <strong>Net</strong>zwerkpuffer können beim Systemstart mit der Loader-Variablen kern.ipc.nmbclusters eingestellt<br />

werden. Nur auf älteren <strong>FreeBSD</strong>-Systemen müssen Sie die Kerneloption NMBCLUSTERS verwenden.<br />

Die Anzahl der sendfile(2) Puffer muss auf ausgelasteten Servern, die den Systemaufruf sendfile(2) oft verwenden,<br />

vielleicht erhöht werden. Dazu können Sie die Kerneloption NSFBUFS verwenden oder die Anzahl der Puffer in<br />

/boot/loader.conf (siehe loader(8)) setzen. Die Puffer sollten erhöht werden, wenn Sie Prozesse im Zustand<br />

sfbufa sehen. Die schreibgeschützte sysctl-Variable kern.ipc.nsfbufs zeigt die Anzahl eingerichteten Puffer im<br />

Kernel. Der Wert dieser Variablen wird normalerweise von kern.maxusers bestimmt. Manchmal muss die<br />

Pufferanzahl jedoch manuell eingestellt werden.<br />

327

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!