Defrag-Software

  • Ich hab mir schon lange keine Gedanken mehr zu Defrag-Software gemacht. A) ist bei Windows welche dabei, b) wird sie durch SSDs zunehmend unwichtiger.

    Beim Heise-Adventskalender war aber eine Vollversion von O&O Defrag dabei. Von denen hatte ich vor Ewigkeiten Mal ne Lizenz, also hab ich hier noch Mal neu zugeschlagen.


    Ein interessantes Feature haben die: Sie defragmentieren nicht nur, sondern können auch Geschwindigkeitsrelevante Dateien auf die Außenbereiche der Platte verschieben, wo die Transferraten am höchsten sind. Dazu richtet man Regeln ein, welche Dateien oder Ordner/Unterordner in welche Zone verschoben werden sollten.

    Schon ein nettes Feature, wenn auch sicher nur kosmetischer Natur. Wenn's hoch kommt mit messbaren, sicher nicht mit spürbarem Effekt.


    Hat jemand eine Idee, wie ich das Mal sinnvoll testen kann? Ich könnte zwei Kopien der selben Datei einmal in den Innenbereich und einmal in den Außenbereich sortieren lassen - aber wie kann ich sinnvoll die Lesegeschwindigkeit einer definierten Datei testen?

    We are Microsoft of Borg. Assimilation is imminent. Resistance is... Error in Borg.dll. Press OK to abort.

  • Mh. Eventuell mit Rawrite [dd.exe], einem Windows Port des Disk Dump UNIX Tools. Einfach lesen und auf NUL schreiben (das Windows-Äquivalent des /dev/null Geräts). Dann mußt du das ganze nur noch timen, entweder mit Microsoft TimeThis oder ptime. Z.B. so: ptime.exe dd.exe bs=4k if="C:\input.bin" of=NUL, für einen Lesetest mit 4kiB Blockgröße. Alternativ kannst auch stärker geblocked lesen, z.B, mit bs=1M.


    Klar ist, sowas solltest immer nur nach einem sauberen Reboot machen. Soweit mir bekannt gibt es unter MS Windows kein Tool, das alle Read Caches fallen lassen kann (Write Cache mapped in den Read Cache, ein Flush reicht also nicht!). Das geht zwar programmatisch, aber nicht administrativ, so wie unter Linux mit # printf '3' >/proc/sys/vm/drop_caches. Wie gesagt, soweit ich weiß. Wenn es jemand besser weiß, dann nur her damit, weil nach sowas suche ich auch. Also eine Möglichkeit, alle Lesecaches unter Windows fallen zu lassen.


    D.h., du müßtest deine Datei verlagern, dann testen, Dann erneut verlagern, dann rebooten und wieder testen.

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700 (defekt)

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

  • Hm, danke für die Tipps, vor allem das /dev/null-Äquivalent in Windows war mir noch nicht bekannt.

    Hin- und herkopieren wollte ich aber eigentlich nicht, sondern einfach zwei Kopien der selben Datei in unterschiedliche Verzeichnisse legen. So schlau dürfte der Cache ja nun nicht sein, dass er das erkennt.


    Na ja, das Setup muss ich mir dann erst Mal bauen, weil ich, wenn ich das richtig verstehe, eh erst Mal ne defragmentierung durchführen muss, damit sie Dateien auch in die entsprechenden Bereiche verschoben werden.

    We are Microsoft of Borg. Assimilation is imminent. Resistance is... Error in Borg.dll. Press OK to abort.

  • Also dann müßtest die beiden Dateien explizit (mit unterschiedlichen Einstellungen) defragmentieren bzw. verschieben lassen, damit sie physikalisch am Ende und am Anfang landen. Kann O&O sowas pro Datei?


    Wichtig ist nur daß du einmal sauber durchbootest. Der NTFS Cache ist relativ langlebig. Weil sonst liegen die Dateien nach dem Erzeugen und Anfertigen einer Kopie ja beide im Cache.


    Man kann dd eigentlich auch anweisen die Caches (für Lesen wie Schreiben) zu ignorieren, aber leider nicht in der Windows Version des Tools. :(


    NUL ist übrigens schon uralt, so wie z.B. CON, das Konsolen-I/O-Gerät. Das gibt's schon seit DOS, wenn ich mich nicht irre. Kannst ja Mal versuchen unter Windows mit Standard API Calls (also z.B. einfach im Windows Explorer) eine Datei namens "CON" oder "NUL" anzulegen. Da fördert man einige lustige Aniquitäten zu Tage. ;) Fühlt sich irgendwie falsch an, wenn I/O Geräte unter Windows als Datei repräsentiert werden, voll unnatürlich für das Betriebssystem. :topmodel:

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700 (defekt)

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

  • Ja, O&O kann das pro Datei, pro Ordner, auch mit Wildcards in den Namen etc.


    CON kannte ich noch. Lange ist's her...

    We are Microsoft of Borg. Assimilation is imminent. Resistance is... Error in Borg.dll. Press OK to abort.

  • So, das Testszenario ist jetzt erst mal hergestellt.


    Die drei (einigermaßen) zusammenhängenden blauen Blöcke repräsentieren die Geschwindigkeitszonen, in die O&O die Festplatte aufteilt. Eine Kopie der identischen Datei liegt nun jeweils im ersten (das ist der schnellste) und im dritten Block (der große mit den meisten Daten.


    Mal schauen ob ich heute zu ein paar Benchmarks komme.

    We are Microsoft of Borg. Assimilation is imminent. Resistance is... Error in Borg.dll. Press OK to abort.

  • Weißt du jetzt eigentlich, wo im dritten Block die eine Kopie liegt? Oder läßt sich das nicht mehr festmachen? "Optimal" wäre wohl ganz am Ende des Blocks, ganz innen am Platter.

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700 (defekt)

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

  • Doch, ich kann es mir pro Datei anzeigen lassen. Die Datei ist aber leider eher mittig gelandet. Aber so kriege ich dann wenigstens eine "durchschnittliche" Beschleunigung heraus, und nicht die maximal mögliche.

    We are Microsoft of Borg. Assimilation is imminent. Resistance is... Error in Borg.dll. Press OK to abort.

    Edited once, last by LoB ().

  • Warte Mal.. Geht sowas nicht eigentlich eh einfach mit HDTune auch? Repräsentiert natürlich nicht die Praxis, schon klar.. Aber da kriegst ja auch eine Kurve raus, solange der Bus schnell genug ist.

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700 (defekt)

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

  • Ja klar, die Kurve ist ja bekannt. Ich will einfach nur mal sehen, wie es mit einer realen Datei aussieht. Ja, der Nutzen dieses Tests ist sehr begrenzt. Ist eher Experimentierfreude :topmodel:

    We are Microsoft of Borg. Assimilation is imminent. Resistance is... Error in Borg.dll. Press OK to abort.

  • Darf ich dir 2 Reboots aufhalsen? Dann würde ich gerne Tests mit bs=512, bs=4k und bs=1M Optionen für die beiden Dateien sehen. Also falls du dd benutzen willst und die Muße hast.

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700 (defekt)

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

  • Interessant, das kannte ich auch noch nicht. Klar, das wird hier alles keinen Quantensprünge machen, und seine HD um 90% der Kapazität zu beschneiden, wie im von Dir verlinkten Test beschrieben, ist echt Irrsinn :bonk:.

    Aber wenn ich mit einem Defrag-Tool performancerelevante Daten an die richtige Stelle sortieren kann, und damit praktisch kostenlos (ohne Verlust von Kapazität) ein wenig raushole... warum nicht.

    We are Microsoft of Borg. Assimilation is imminent. Resistance is... Error in Borg.dll. Press OK to abort.

  • Darf ich dir 2 Reboots aufhalsen? Dann würde ich gerne Tests mit bs=512, bs=4k und bs=1M Optionen für die beiden Dateien sehen. Also falls du dd benutzen willst und die Muße hast.

    Mach ich.

    We are Microsoft of Borg. Assimilation is imminent. Resistance is... Error in Borg.dll. Press OK to abort.

  • So, Test durch. Testsetup war so:


    10. Reboot

    20. Deaktivieren aller offenen Programme

    30. Warten bis Festplattenaktivität eine weile auf 0% war

    40. ptime.exe dd.exe bs=xxx if="C:\schnell-input.bin" of=NUL

    50. ptime.exe dd.exe bs=xxx if="C:\langsam-input.bin" of=NUL #langamer sektor als letztes, damit cache-effekte nicht fälschlicherweise dem Defrag-Effekt zugerechnet werden

    60. goto 10


    Zunächst waren alle Testergebnisse genau entgegengesetzt der Erwartungen ausgefallen: Die Datei im "schnelleren Sektor" war immer langsamer als im langsamen. Ich dachte schon, O&O hätte die Dokumentation der Zonen vertauscht, bis mir mein Fehler im Setup aufgefallen ist: dd.exe laden kostet auch Zeit. Und: Ich hatte es sogar auf die zu messende Platte gelegt. :bonk:

    Also verschoben auf meine schnellste Platte, und Punkt 35 hinzugefügt:

    35. ptime.exe dd.exe #zum primen des caches vor dem ersten Aufruf, ohne parameter



    Ergebnisse:

    Blockgröße
    Kopierzeit im schnellen Sektor
    Kopierzeit im langsamen Sektor
    5120.827 s0.951 s
    4k0.765 s0.951 s
    1M0.054 s0.133 s



    Der Effekt ist also gut messbar. (Ja, die Messwerte der zwei kleinen Blockgrößen im langsamen Sektor waren exakt identisch)

    Die Zeiten sind sehr sehr kurz, ich habe aus Gründen nur mit einer etwa 100 MB großen Datei getestet. Evtl. mach ich da noch mal mehr, dafür müsste ich das Setup aber noch mal neu konfigurieren. Es ist aktuell so eingestellt, dass alles >100MB immer in den langsamen Sektor verschoben wird.

    We are Microsoft of Borg. Assimilation is imminent. Resistance is... Error in Borg.dll. Press OK to abort.

  • Mh, der am stärksten lineare Test (1M) ist also im schnelleren Bereich besonders bevorteilt, stärker als bei den kleineren Blockgrößen. Aber auch im langsamen ist der Vorteil Mal wieder deutlich. Guter Catch übrigens mit dem Pre-Cachen der Programmstarts selbst, an das hatte ich gar nicht gedacht.


    Ich dachte mir, vielleicht macht das Seeken in den inneren Bereich der Platter was aus, aber der Einfluß ist beim linearen Lesen (nur 1 Seek) wohl komplett vernachlässigbar. Mich verblüfft's immer wie schnell die Aktuatoren der Platten die Köpfe eigentlich echt rumdrehen können.


    Der Sprung auf 1M ist aber generell ein recht deutlicher Anzeiger. Festplatten sind einfach nur für lineares I/O zu gebrauchen. ;)


    Zu den kleinen Blocks habe ich noch eine Frage: Ist das eine SATA HDD mit AHCI Treiber im Betriebssystem? Ich frage nur, weil interessant wäre ob hier NCQ aktiv war.

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700 (defekt)

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

  • Mh, der am stärksten lineare Test (1M) ist also im schnelleren Bereich besonders bevorteilt, stärker als bei den kleineren Blockgrößen.

    Ich glaub den Schluss würd ich noch nicht ziehen. Die Zeiten sind SO kurz, das kann auch Zufall, irgendwelche Seiteneffekte oder sonstwas sein. (Beispiel: Als ich dd.exe noch nicht im Cache hatte, hat der Erstaufruf locker über 2 Sekunden gedauert. In solchen Dimensionen fallen 0.08 Sekunden imho in den Bereich Messungenauigkeit. Daher müsste wie gesagt eigentlich ein Test mit größeren Dateien folgen.


    Zu den kleinen Blocks habe ich noch eine Frage: Ist das eine SATA HDD mit AHCI Treiber im Betriebssystem? Ich frage nur, weil interessant wäre ob hier NCQ aktiv war.

    Ja, SATA HDD mit AHCI. Ob NCQ aktiviert ist, weiß ich gar nicht.

    (Aber so wie NCQ verstehe, sollte es hier auf die Messung keinen Effekt haben. Ich verstehe NCQ so, dass er eine bestehende Liste mit Commands so umsortiert, dass sie in sinnvoller, weil physikalisch nahe beeinander liegender, Reihenfolge abgearbeitet werden. Im Testsetup gibt es aber praktisch nur einen Command - oder mehrere, die eh schon in idealer Reihenfolge sind.)

    We are Microsoft of Borg. Assimilation is imminent. Resistance is... Error in Borg.dll. Press OK to abort.

    Edited once, last by LoB ().

  • So oder so macht diese Beschreibung von einem ach so tollen Feature absolut keinen Sinn, warum ist auch recht simpel, worauf ich selbst aber auch erstmal kommen musste, eigentlich auch recht traurig zugegeben so als Industriemechaniker aber naja, verdammte Mathe....

    Um es mal kurz zu sagen, ja die Umdrehungsgeschwindigkeit mag mit den Spuren am Anfang (angeblich in der Mitte, ob das wirklich immer so ist, sei mal dahingestellt, gibt sicherlich keine Norm für die Hersteller wie die das machen.... :D ) also dahingestellt in der Mitte der Platter schneller als auf den äussersten Spuren.

    Dummerweise muss dafür die nächste und wieder nächste Spur aber öfters angefahren werden, also das wo eh der Knackpunkt einer mechanischen Festplatte sitzt gegenüber einer SSD/Flashspeicher.

    Das ist also nicht nur die eine Mathematik sondern eben auch die andere der Physik, somit dürfte sich das am Ende des Tages also so oder so aufheben, in etwa so wie wenn man mit dem Equilizer bei Stereo den Fehler macht links was lauter oder leiser zu machen, unweigerlich wenn man am anderen Kanal nicht dasselbe macht, dann löscht der eine den anderen dann halt aus, also Frequenzen werden ausgelöscht...


    Lieber nicht und Finger weg davon :-)


    Ich war auch mal genau solch einer festen Überzeugung, habe sogar Partitionen entsprechend mal ab Installation mit bedacht, am Ende des Tages bringt es absolut rein garnichts. (so von wegen Auslagerungsdatei umschieben "an den Anfang"...., defragmentieren das macht vielleicht noch irgendwo Sinn auch davon und das kann das von 98/SE/ME ja wirklich nicht, daher war Speed Disk da was von zeitlich noch passenden Norton SystemWorks lauffähig ist auf den 9x Systemen wirklich besser, man sollte den anderen Kram aber tunlichst weglassen und abschalten davon.


    Sicherlich steckt ab XP/Vista etc. eh wie eh und je seit MS-DOS eh Symantec immernoch hinter dem Defragmentierungsprogramm und seien wir mal ehrlich, was die Auslagerungsdatei heutzutage angeht ist es eh egal, erstens mit einer SSD und zweitens wird die eh kaum angefasst, das würde sonst die Performance runterreissen wie blöde, wir haben ja keine 486er mit viel zu wenig RAM mit Windows 95 und dann noch DriveSpace dazu laufen weil die Platte auch noch sonst zu kleine wäre... :D


    Ich würd die Auslagerungsdatei im übrigen einfach auf Minimum 16mb stellen und ansonsten das was Windows empfiehlt als Maximum, einfach für den Fall das irgendeine Anwendung tatsächlich mal sonst Ärger macht, weil sonst garkeine vorhanden ist, ansonsten kann man die auch einfach komplett deaktivieren und das funktioniert auch problemlos eigentlich.


    So hab ich das letztens auch bei nem XP-Rechner gemacht mit 4gb RAM wovon 3,25gb ram nutzbar sind, es gibt da bislang absolut 0 Probleme.



    Gruss Dennis