|
|
MaximalwerteJedes Computersystem hat seine Limits, auch UNIX. Diese Grenzen verschieben sich immer wieder, sind aber dennoch vorhanden. Diese Grenzen können die Anzahl der offenen Dateien, die maximale Anzahl von Benutzern, die Größe von Dateien oder Partitionen betreffen. Jedes Mal, wenn ein System eine solche Grenze erreicht, hat das in der Praxis unangenehme Folgen. Dazu kommt, dass solche Grenzen oft unerwartet erreicht werden. So haben beispielsweise Zusammenbrüche, die in der Zeit zwischen 10 und 11 Uhr vormittags gehäuft vorkommen, oftmals ihren Grund darin, dass die Limits für Benutzer, Prozesse oder offene Dateien erreicht werden. Dies ist nämlich erfahrungsgemäß die Zeit, in der die meisten Anwender mit dem Zentralcomputer arbeiten. Es ist wichtig, die Grenzen seines Systems zu kennen. Ein kluger Administrator wird aufmerksam, wenn in der Systemdokumentation irgendwelche Limits genannt werden. Eine Quelle für das Auffinden solcher Grenzen sind die Kernelparameter, die Sie sich vom Administrationstool anzeigen lassen können. Diese Werte sind für die normale Einsatzumgebung voreingestellt. Es kann für Ihr Einsatzgebiet ein Parameter zu gering eingestellt sein. Dabei ist es wenig sinnvoll, die Parameter wahllos nach oben zu setzen. Dadurch steigt der Ressourcenverbrauch vermutlich immens, ohne dass einer der Benutzer etwas davon hat. Neben den durch den Administrator festgesetzten Grenzen ergeben sich Limits durch Programme oder Kapazitätsüberschreitungen von Zählern oder Verweisen. Solche Grenzen treten gehäuft bei allen Zweierpotenzen auf, deren Exponent durch 8 teilbar ist, also bei 28 = 32, 216 = 65.536, 224 = 16.777.216 oder 232 = 4.294.967.296. Auch die Hälfte dieser Werte ist relevant, weil in C und anderen Programmiersprachen ein Bit für das Vorzeichen gebraucht wird. Lange Zeit war 2 GByte, also die Hälfe von 232, die Grenze für die maximale Größe einer Datei und die maximale Größe eines Dateisystems. Heute erlauben fast alle UNIX-Derivate größere Dateisysteme. Dies kann auch recht bedenkenlos genutzt werden. Bei der Größe der Datei spielt aber neben dem Betriebssystem auch das Programm eine wesentliche Rolle, das die Datei liest und schreibt. Schreibt das Programm sequenziell in die Datei, wie das beispielsweise bei Protokolldateien der Fall ist, bestimmt das Betriebssystem die maximale Größe einer Datei. Wird aber im direkten Zugriff gearbeitet, dann verwendet das Programm den Aufruf lseek() (siehe S. lseek) mit einem 32-Bit-Wert als Positionierparameter. Mit 32 Bit können maximal 4.294.967.296 Bytes adressiert werden. Sobald aber ein Vorzeichen verwendet wird, verliert man ein Bit und die maximale Größe beträgt 2.147.483.648, also 2 GByte. Programmtechnisch ist das Problem zu umgehen, indem nicht vom Anfang der Datei aus positioniert wird. Dann muss das Programm bereits mit der Absicht geschrieben sein, die 2-GByte-Grenze zu durchbrechen. Das ist dann im Allgemeinen auch dokumentiert.
Beispiele
SCO hat noch eine zusätzliche Grenze, die in den Kernelparametern durch
ULIMIT festgelegt wird. In einer Standardinstallation ist die maximale
Dateigröße auf 1 GByte beschränkt.
Den Parameter kann man ändern, indem man Damit nicht genug: ULIMIT wird auch noch als Environmentvariable in der Datei /etc/default/login eingesetzt, die vom Terminal gestartete Prozesse auf diese Größe beschränkt. Der Wert, den ULIMIT angibt, ist die maximale Anzahl der Blöcke, die 512 Byte groß sind. Also sind 2 GByte 4.194.303 Blöcke. Eine weitere Schranke kann die Anzahl der maximal geöffneten Dateien sein. Dabei gibt es zwei Werte. Der eine beschränkt die Gesamtzahl der offenen Dateien und der andere die Anzahl der Dateien, die ein einzelner Prozess öffnen darf. Bei einer Linux-Standardinstallation wird die Anzahl der gleichzeitig offenen Dateien auf 1024 begrenzt. Die Einstellung befindet sich in der Datei /usr/src/linux/include/linux/fs.h und heißt NR_FILES. NR_INODES ist um den gleichen Faktor zu erhöhen. Eine Neubildung des Kernels ist notwendig, um den Parameter zu erhöhen. Dieser Wert scheint zunächst hoch. Allerdings kann in einer Serverumgebung mit 200 Benutzern jeder Anwender nur noch fünf Dateien öffnen. Ansonsten gibt es bei älteren Systemen manchmal eine Begrenzung der Plattenkapazität. So konnte beispielsweise HP-UX bis zur Version 9 nur Platten von maximal 4 GByte Größe verwalten.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|