|
|
Optimierung des DateisystemsDer Einfluss des Dateisystems auf den Gesamtdurchsatz ist natürlich davon abhängig, für welchen Einsatz die Maschine gedacht ist. Eine CAD-Workstation und auch eine Entwicklungsmaschine für einen Softwareentwickler werden von der Beschleunigung eines Dateisystems nicht profitieren. Dagegen werden alle Programme, die in größerem Umfang mit Daten arbeiten, dadurch zentral beeinflusst.
Überfüllung der Dateisysteme vermeidenIst die Platte über 90% gefüllt, wird das die Performance beeinflussen. Da nur wenig Platz ist, werden alle Lücken aufgefüllt, die sich durch das Löschen von Dateien im Laufe der Zeit gebildet haben. Nach einiger Zeit sind diejenigen Dateien, die regelmäßig geändert werden, die Lückenfüller der Platte und verursachen heftige Bewegungen des Schreib-/Lesekopfs. Man spricht in diesem Falle von Fragmentierung oder Zerclusterung eines Dateisystems. Auf einer zentralen Servermaschine wird man die Belegung der Dateisysteme, auf denen Daten bewegt werden, möglichst unter 80%, besser unter 70% halten.
Defragmentierungssoftware, wie man sie vom PC her kennt, wird der eine oder
andere unter UNIX vielleicht vermissen. Der Grund dafür ist, dass man sie
unter UNIX normalerweise nicht braucht. Gibt es tatsächlich Grund zu der
Annahme, dass die Platte durch Fragmentierung zu langsam ist, wird man
über kurz oder lang eine größere Platte kaufen und die Daten beispielsweise
per
Blockgrö"se
Auf älteren Systemen kann man die Blockgröße noch als Parameter beim
Erzeugen des Dateisystems mit Der Platzbedarf der kleinsten Datei entspricht der Größe eines Blocks, da die Platte immer blockweise belegt wird. Bei vielen kleinen Dateien wird der verschwendete Speicherraum entsprechend groß. Moderne Dateisysteme sind in der Lage, durch dynamische Caches und Aufspaltung von Blöcken für kleine Dateien diese Tuningmaßnahmen selbst zu übernehmen.
Verteilung auf mehrere PlattenBesitzt man mehrere physische Platten, kann man durch geschicktes Verteilen der Dateien einen Performancegewinn erzielen. Wenn zwei Dateien auf einer Platte liegen, auf die ständig wechselnd zugegriffen wird, muss der Schreib-/Lesekopf des Laufwerkes ständig zwischen diesen beiden Dateien hin- und herpositioniert werden. Kann man die beiden Dateien auf zwei Platten verteilen, werden diese Positionierungen eingespart. Gerade unter UNIX ist das Verteilen auf mehrere Platten extrem einfach. Durch einen symbolischen Link merken die zugreifenden Programme nicht einmal, dass eine Datei nicht mehr an der ursprünglichen Stelle liegt. Der zusätzliche Aufwand durch den Link ist minimal und wird auch nur einmal beim Öffnen benötigt. Danach arbeitet das Programm mit einem Dateihandle direkt auf der Datei. Es versteht sich eigentlich von selbst, dass ein Verteilen der Dateien auf mehrere Partitionen der gleichen Platte kontraproduktiv ist und das Laufzeitverhalten verschlechtert.
Eigenes Dateisystem für /tmpDas Verzeichnis /tmp kann auf eine eigene Platte gelegt werden. Dies bringt auf Systemen etwas, die das Verzeichnis intensiv nutzen, wie beispielsweise bei der Kompilierung. Es wird eine höhere Geschwindigkeit erreicht, da das ständige Schreiben und Löschen zu einer starken Zerclusterung führt. Da /tmp aber jederzeit gelöscht werden kann, ist es möglich, durch rekursives Löschen des kompletten Verzeichnisses mit einem zusammenhängenden System weiterzuarbeiten. Da im Bereich des /tmp-Verzeichnisses bei einem Absturz häufig ein unzusammenhängendes Dateisystem entsteht, ist es von Vorteil, wenn das komplette Dateisystem /tmp bedenkenlos gelöscht werden kann.
Ist ein eigenes Dateisystem für /tmp nicht praktikabel, sollte man
von Zeit zu Zeit im Single-User-Modus das Verzeichnis komplett entfernen und
wieder neu anlegen, da so auch das Verzeichnis wieder geleert wird.
Insbesondere wenn die Größe des Verzeichniseintrags in der Ausgabe von
Bei den eben erwähnten Entwicklermaschinen, bei denen der Compiler oft das Verzeichnis /tmp benutzt, wird manchmal zur Beschleunigung das Verzeichnis in eine RAM-Disk gelegt. Natürlich macht das nur Sinn, wenn die Maschine üppig mit Speicher ausgestattet ist.
Übervolle Verzeichnisse entsorgenVerzeichnisse sind lineare Strukturen. Wird eine Datei angelegt, wird sie hinten im Verzeichnis angelegt. Die Einträge sind also nicht alphabetisch geordnet, wie es bei der Anzeige erscheint. Also wird bei der Suche nach einer Datei die Liste von vorn nach hinten durchgegangen. Da die Suche nach dem Dateinamen nur relevant wird, wenn die Datei immer wieder geöffnet und geschlossen wird, fallen Probleme in diesem Bereich nicht so sehr auf. Wenn Verzeichnisse aber sehr voll werden, werden die Zugriffe immer langsamer. Besonders kritisch wird es, wenn in Verzeichnissen regelmäßig gelesen und geschrieben wird.
Ein Merkmal dafür, dass ein Verzeichnis überlastet ist, ist seine Größe. Man
kann dies leicht durch den Befehl
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|