Ich habe eine externe 5-TB-Festplatte von Seagate Expansion gekauft und mit dem Klonen der Git-Repositorys begonnen, zu denen ich beigetragen habe.
Es gibt ein großes Git-Repository (~ 16 GB, 1 GB ist nur das .git
Verzeichnis): Nach dem Klonen auf meiner Festplatte wurde die Festplatte sehr langsam. Zuerst dachte ich, es sei nur ein Formatierungsproblem.
Dank der Garantieleistungen erhielt ich eine neue Festplatte, genau das gleiche Modell.
Jetzt wiederhole ich den gesamten Vorgang und alles lief reibungslos ( ~300MB/sec
). Dann habe ich dieses große Repository geklont und jetzt sind alle meine Daten auf meiner Festplatte möglicherweise verloren. Ich habe angefangen, es von dort auf meinen Computer zu kopieren, aber es ist sehr langsam ( ~18kB/sec
):
Ich habe darauf geachtet, dass die Festplatte nicht beschädigt wird, aber es sieht so aus, als ob dieses Repository das Potenzial hätte, sie zu beschädigen.
Ich frage mich, ob es ein Hardwareproblem ist oder nicht. Die Leute vom Garantieservice haben mir nichts über das Problem gesagt. Sie haben mir gerade eine neue Festplatte geschickt.
Ich verwende Ubuntu 15.10. Hier funktioniert die Festplatte, aber sie ist sehr langsam. Auf Windows-Computern funktioniert es überhaupt nicht. Der gesamte Datei-Explorer stürzt ab.
Wie kann ich das Problem lösen? Kann ein Git-Repository eine solche Festplatte beschädigen?
Warum ist es nur nach dem Klonen dieses bestimmten Repositorys so langsam? Ich habe schon viele GB Daten kopiert und es war schnell.
quelle
Antworten:
Wenn Sie nicht wissen, welches Betriebssystem Sie verwenden, ist dies ein bisschen ein Ratespiel, aber in bestimmten Fällen und Dateisystemen besteht die Möglichkeit, dass ein Lesevorgang vom Laufwerk einen gleichzeitigen Schreibvorgang auf das Laufwerk verursacht, während das System die Uhrzeit aktualisiert, auf die zugegriffen wurde Datei.
Wenn das Laufwerk über 4 KByte große Sektoren verfügt und Ihr Dateisystem 512-Byte-Sektoren verwendet, kommt es immer dann zu Leistungseinbußen, wenn in die anderen 7 512-Byte-Blöcke in diesem "echten" Sektor ein kleiner Schreibvorgang ausgeführt wird. Grundsätzlich muss jedes Mal, wenn einer dieser 8 logischen (Dateisystem-) Sektoren geändert werden muss, das Laufwerk zuerst den gesamten 4-KB-Block lesen, ändern und dann zurückschreiben.
Kombinieren Sie dies mit der Zeit, zu der zuletzt aufgeru- fen wurde, und Sie könnten am Ende viel Zeit damit verbringen, Blöcke mit sinnlosen Abrechnungsdaten zu ändern, anstatt Daten tatsächlich zu lesen oder zu schreiben.
Unter Linux können Sie diese Zeit für den letzten Zugriff deaktivieren, indem Sie
noatime
beim Mounten der Festplatte die Mount-Option angeben.Beispiel
fstab
:Von http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap6sec73.html
quelle
/etc/fstab
. Ich habe es gemountet, abernoatime
es wird nicht in dercat /proc/mounts
Ausgabe angezeigt ... Soll ich es mit angeben-o defaults,noatime
?sudo mount /dev/sdb2 /media/$USER/HDD/ -o defaults,noatime
erhöhte sich die Leistung,30-70 MB/sec
was nicht schlecht ist. Kann ich irgendetwas tun, um die Leistung noch zu verbessern? Vorher war es so300MB/sec
. Trotzdem vielen Dank!-o defaults,noatime
sollte funktionieren. Wie es aussieht, ist meine Antwort nur eine Vermutung, was ein Problem verursachen könnte . Möglicherweise liegt ein Fehler im Linux NTFS-Modul vor.