On Tue, Aug 05, 2003 at 01:35:33AM +0200, Matthias Wieser wrote:
Der Controller benutzt über seinen Schreib-Cache eigene: Optimierungsstrategien.
Natürlich. Das ändert aber doch nichts an der Datenanordnung.
Der Buffer-Cache des Betriebssystems, und das Ordnen und Umschreiben der Requests in der Queue des Betriebssystems und der Cache der Platte ändern zwar nicht die Anordnung der Daten auf der Platte, aber sie ändern die _Bedeutung_, die diese Anordnung für die Performance hat. Auf meiner Kiste zum Beispiel kris@valiant:~> free total used free shared buffers cached Mem: 1033080 964376 68704 0 391912 249132 -/+ buffers/cache: 323332 709748 Swap: 750448 36040 714408 ist es weitgehend Wurst, wie die Daten auf der Platte angeordnet sind, weil nach einem Tag oder so niemals mehr zum Lesen auf die Platte zugegriffen wird. Stattdessen liegen 700 MB wohlgefüllter Buffercache rum, aus dem die gesuchten Blöcke geladen werden. Dieses System compiliert arts, kdelib, kdebase und kdepim, ohne die Sourcen oder den Compiler jemals von der Platte laden zu müssen. Auch dann noch, wenn wie üblich eine vmware und ein OOo im Hintergrund geladen rumstehen, weil ich keinen Bock habe auf das Starten von den Dingern zu warten... Das ist die Goldene Regel für das Performancetuning von UNIX-Systemen: RAM ist nur durch mehr RAM zu ersetzen.
Datendichten verbaut werden. Moderne Platte beschreiben, wenn man die Sektoren durchzählt, immer einen Weile mit Kopf 1, dann Kopf2, dann Kopf 3,... bis sie dann wieder mit Kopf 1 beginnen.
Das ist eine von drei bekannten Möglichkeiten, die Daten auf einer Platte anzuordnen. In Bo96a Harald Bögeholz, ,,Platten-Karussell; Festplatten mit EIDE- und SCSI-Schnittstelle im Überblick``, c't, Magazin für Computertechnik, Heise, Hannover, April 1996, Seite 268 ff. finden sich Beispiele für Platten, die Daten nicht vertikal, sondern horizontal anordnen oder noch wirrerere Schemata verwenden. Und das ist nur der Fall für eine Platte - verwende LVM oder gar einen richtigen Storage Manager (Veritas VM etwa) und entsprechend komplizierte Storage Architekturen, und Du hast sogar Probleme zu bestimmen, auf welcher Platte Deine Daten liegen (In einem Rechenzentrum, mit dem ich zu tun hatte, hätte man in diesem Fall sogar Probleme festzustellen, unter welcher Postleitzahl (!) die Daten gespeichert sind). Wie auch immer - selbst bei Desktop-Rechnern ist die konkrete Sortierung der Daten auf der Platte nach logischen Blocknummern zunehmend irrelevant. Es reicht aus, wenn die Daten in zusammenhängenden Blöcken gespeichert sind, die groß genug sind und moderne Dateisysteme stellen das automatisch sicher, wenn sie nicht zu voll gemacht werden (80-90% Füllgrad). Alles andere wird von den dynamischen Zugriffsmustern überdeckt, die im Betrieb aus dem Zusammenwirken mehrere Prozesse entstehen und den Ordnungsmechanismen des Kernels und den verschiedenen Caches überdeckt. Defraggen ist vollkommen sinnlos. Es hat überhaupt nur eine Wirkung, wenn Du - FAT einsetzt UND - ein Single User System fährst, das AUßERDEM NOCH - keinen Buffer Cache hat. Mithin nur unter MS-DOS. Gewöhne Dir das defraggen ab. Es macht die Dinge nicht besser, und es gefährdet nur Deine Daten. Kristian