Go Back   Die UNIX-und Linux-Foren > Spezielle Foren > Hardware > Dateisysteme, Festplatten und Memory
.
Google-Website



Dateisysteme, Festplatten und Memory Diskutieren NAS, SAN, RAID-, Roboter-Bibliotheken, Backup-Geräte, RAM, DRAM, SCSI-, IDE-, EIDE-Themen hier.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Suche diesen Thread Bewertung: Thread Rating: 1 votes, 5.00 average. Anzeige-Modi
  #1 (permalink)  
Old 03-03-2009
Registrierte Nutzer
 

Join Date: März 2009
Ort: Stockholm, Schweden
Beiträge: 3
Question Performance-Hit mit vielen Dateien

Ist es langsamer zu öffnen oder eine Datei in ein Verzeichnis mit 1 Million Dateien als ein Verzeichnis mit 1000 Dateien? Wie viel langsamer? Wo finde ich Informationen dazu?

Ich bin vor allem besorgt über JFS auf AIX, sondern auch auf Windows-NTFS-Server. Gibt es einen Unterschied?

Ich bin versucht zu bestimmen, ein guter Weg, um eine große Anzahl von Dateien (2 Millionen und wächst etwa 200 K pro Jahr). Zur Zeit habe ich sie in sechs verschiedenen Verzeichnissen, so dass es über 300 K-Dateien pro Verzeichnis.

Danke!
Sponsored Links
  #2 (permalink)  
Old 03-03-2009
otheus's Avatar
otheus otheus is offline Forum Advisor  
Moderator ala-Modus
 

Join Date: Feb 2007
Ort: Innsbruck, Österreich
Beiträge: 1906
Ausgezeichnete Frage! Es ist in der Tat Dateisystem abhängig. Diese Performance-Metriken sind schwer zu erreichen ist, da gibt es so viele Variablen, und zu tun, eine gute Äpfel Äpfel-Vergleich können, benötigen Sie den gleichen Computer mit der gleichen Festplatten und Installieren mehrerer Betriebssysteme. Aber es darf nicht notwendig sein, wirklich, um diese Statistiken. Man kann das Dateisystem Architektur, Verzeichnis mit Semantik, und schließt man besser als die andere.

Unforatunally, kann ich keine Besonderheiten auf JFS oder NTFS. Allerdings, ReiserFS und moderne Versionen von ext2 (auf Dateisysteme, die mit-O dir_index), Datei-Erstellung und-Lookup sind sehr schnell, sondern auch mit einem Hash-Index, um Dateien zu finden. Also, wenn Sie wissen, den Namen der Datei, kann es fast sofort gefunden werden (wie ich es verstanden habe und erlebt haben). Bei älteren Versionen von ext2, Dinge wirklich zu verlangsamen, nachdem der Eintrag sich auf einen oder mehrere indirekte Blöcke - vielleicht 1000 oder so.

Sie wissen, ein Weg, um große Mengen von Dateien ist es, ein Verzeichnis eingegeben ist, dass die Hierarchie auf den Dateinamen selbst? Also Dateien mit den Namen "ergo1802.txt" könnte in:

Code:
    data/er/go/18/ergo1802.txt

  #3 (permalink)  
Old 03-03-2009
Registrierte Nutzer
 

Join Date: März 2009
Ort: Stockholm, Schweden
Beiträge: 3
Zitat:
Zitat von otheus View Post
Sie wissen, ein Weg, um große Mengen von Dateien ist es, ein Verzeichnis eingegeben ist, dass die Hierarchie auf den Dateinamen selbst? Also Dateien mit den Namen "ergo1802.txt" könnte in:

Code:
    data/er/go/18/ergo1802.txt

Ja, das wäre wahrscheinlich die intelligentesten Design, wenn die Dateinamen randomisiert oder gleichmäßig verteilt. Ich weiß, dass die Benutzer-Verzeichnisse auf Sourceforge sind wie die (etwas wie / home / u / us / username). Leider habe ich geerbt ein Vermächtnis, und müssen, um festzustellen, ob es die Mühe wert, um das Design.

Vielleicht sollte ich ein JFS-Partition auf einer virtuellen Linux-Maschine und einige Benchmarking. Ich habe keinen Zugriff auf einen Ruhezustand AIX Maschine vergleichbar, die mit dem in der Produktion eingesetzt. Natürlich ist ein solcher Test würde sich von "Wirklichkeit" in gewisser Weise: anderes Betriebssystem, CPU-Architektur-und Storage-Lösungen (lokale IDE-Laufwerk im Vergleich zu SAN).
  #4 (permalink)  
Old 03-04-2009
Registrierte Nutzer
 

Join Date: März 2009
Ort: Stockholm, Schweden
Beiträge: 3
Windows XP-Test

Ich habe nicht die Zeit für einen Test auf Linux, aber ich gerade einen Test auf meinem Windows XP-Desktop-Rechner (NTFS). Ich bin mir nicht sicher, wie wertvoll dieser Prüfung ist, aber es ist sehr interessant ... Bitte geben Sie Ihre Meinung zu diesem Thema.

Öffnen und Schließen von 100 ausgewählten Dateien zufällig 100.000 Mal von Verzeichnissen, die unterschiedliche Anzahl von Dateien (relative Zeiten):

100 Dateien: 100,0
1000 Dateien: 100,4
10.000 Dateien: 101,3
100.000 Dateien: 109,6
1000000 Dateien: 130,9

Eine Geschwindigkeit von 30%, wenn man von 100 bis 1.000.000 Dateien in einem Verzeichnis!

Als ich die Tests wieder lief, waren sie nicht nur schneller, aber die Unterschiede waren fast Null:

100 Dateien: 100,0
1000 Dateien: 100,0
10.000 Dateien: 100,6
100.000 Dateien: 100,2
1000000 Dateien: 100,3

Natürlich, einige Caching vor sich geht. Also, wenn Sie die gleichen Dateien immer und immer (und die Anzahl der Dateien klein genug ist), es scheint nicht zu, wie viele Dateien Sie in den Verzeichnissen.

Das Caching könnte vermuten lassen, dass die Leistung über Hit wäre größer, wenn ich hatte mehr als 100 Dateien. Eine andere Möglichkeit, dies zu tun, würde es sein, lesen Sie jede einzelne Datei in zufälliger Reihenfolge.

Vielleicht sollte ich haben die gleiche 1000000 Dateien in jedem Test und stattdessen verteilte sie anders (100 Dateien pro Verzeichnis, 1000 Dateien pro Verzeichnis etc). Aber dann würden andere Variablen auf die Ergebnisse, wie zum Beispiel, wie ich sie verteilt - Pfad Tiefe, Anzahl der Verzeichnisse etc.

Details

Ich habe ein Skript zum Erstellen von Dateien mit zufälligen Namen von 10 +3 Zeichen. Ich kopiert die Dateien aus dem "100-Verzeichnis", um die anderen Verzeichnisse, dann weitere Dateien hinzugefügt. Die Dateien waren fast leer ist (72 Byte).

Dann habe ich ein Python-Skript, die geöffnet und geschlossen zufällig ausgewählten Dateien (von den 100 Dateien) in jedem Verzeichnis. Der Source-Code ist:


Code:
import datetime
import random

def getMS():
    dt = datetime.datetime.now()
    ms = dt.microsecond / 1000
    ms += dt.second * 1000
    ms += dt.minute * 60000
    ms += dt.hour * 3600000
    return ms

fh = open("files.txt", "r")
filenames = map(lambda fn: fn.strip(), fh.readlines())
fh.close()

random.seed()

NUMBER_OF_OPENS = 100000
TIMES_PER_CASE = 3

testcases = ["1000000", "100000", "10000", "1000", "100"]

for i in range(TIMES_PER_CASE):
    for testcase in testcases:
        starttime = getMS()
        for j in range(NUMBER_OF_OPENS):
            filename = "c:\\temp\\test" + testcase + "\\" + random.choice(filenames)
            open(filename, "rb").close()
        endtime = getMS()

        print testcase, i, endtime - starttime

Und die Ergebnisse:


Code:
C:\Temp>python -OO openfiles.py
1000000 0 16156
100000 0 13531
10000 0 12508
1000 0 12399
100 0 12346
1000000 1 12291
100000 1 12274
10000 1 11886
1000 1 11265
100 1 11117
1000000 2 11199
100000 2 11183
10000 2 11232
1000 2 11166
100 2 11166

Technische Daten der Maschine

Ich habe die Tests auf meinem alten Desktop DELL Optiplex 280 mit einem Pentium 4 Prozessor (2,8 GHz), 2 GB DDR2 SDRAM und 80 GB Serial ATA-150, 7200 U / min Festplatte (Cache-Größe unbekannt).

Ich verwende Windows XP SP3 mit NTFS. Ich Beenden Sie alle Anti-Virus, die Indizierung und die Aktualisierung und die meisten Programme vor der Ausführung des Tests.

Die Festplatte defragmentiert wurde nach der Erstellung der kleinen Dateien und vor der Ausführung des Tests. Ich bin auch neu gestartet, bevor Sie die Tests.
  #5 (permalink)  
Old 03-05-2009
vbe's Avatar
vbe vbe is offline Forum Staff  
Moderator
 

Join Date: Sep 2005
Standort: Schweiz - GE
Posts: 1749
Wir haben nach Prüfung der Art (mit VMS, Novell Unix MS ...) und fand heraus, dass alle wahren präemptives Multi-Prozess-Multitasking-Betriebssystem, wo besser als von den anderen ...
Es ist der Preis, den Sie für Ihre Zeit, ebenso zwischen den Prozessen ...

(Für mich ist es erwiesen, dass Windows-Server (NT4 W2000) wurden noch nicht vollständig präemptives Multitask ...)
  #6 (permalink)  
Old 03-06-2009
Registrierte Nutzer
 

Join Date: Oct 2007
Beiträge: 14
Auch ich habe ähnliche Tests, aber etwas anders. Anstatt einfach Zeit die Schaffung von 100 Dateien, die kann sehr irreführend sein oder Zeitpunkt der Erstellung der 1M-Dateien, die nicht besser ist, ziehe ich es vor zu sehen, was passiert in der System-Ressourcen während der gesamten Veranstaltung.

Ich collectl mit einem Überwachungs-Intervall von 1 Sekunde, die Anmeldung zu einer Datei, oder einfach nur gerade das System in Echtzeit. Wenn ich eine Million Dateien, die ich beobachten kann die CPU in regelmäßigen Abständen erhöht. In der Tat, wenn man in die höheren Enden von Dateien kann ich sehen Spike in die CPU-Auslastung. Das ist etwas, was Sie nicht sehen können, wenn man sich nur tun, Ende-zu-Ende-Nummern.

Ein weiterer interessanter Test ist, um einen Alarm in Ihr Skript zu schreiben, die die Anzahl der Dateien, die jeder 10. (oder sogar Hundertstel) von einer Sekunde. Sie werden staunen, um zu sehen, wie gerade die Anzahl der erstellten Dateien / Sekunde sinkt im Laufe der Zeit als auch in regelmäßigen Abständen, wie sich die Dinge langsam, aber nicht sichtbar sind, wenn nur der Second-Level-Proben.

Sie können auch collectl bei einer Kontrolle im Abstand von 0,1 Sekunden und siehe Micro-Spikes in die CPU-Auslastung als gut. Das ist etwas, was die meisten Leute verpassen, weil keines der bestehenden Instrumente können mit Sub-Sekunden-Berichterstattung.

-Marke
  #7 (permalink)  
Old 03-06-2009
vbe's Avatar
vbe vbe is offline Forum Staff  
Moderator
 

Join Date: Sep 2005
Standort: Schweiz - GE
Posts: 1749
Wir waren nicht die Rede von 100 Dateien, aber die Dateien von 10'000 ...
Zitat:
Sie werden staunen, um zu sehen, wie gerade die Anzahl der erstellten Dateien / Sekunde sinkt im Laufe der Zeit als auch in regelmäßigen Abständen, wie sich die Dinge langsam, aber nicht sichtbar sind, wenn nur der Second-Level-Proben.
Doesnt, dass Sie daran erinnern, über die CPU-Scheduling-Priorität in der Zeit?

Zuletzt bearbeitet von vbe; am 03-06-2009 12:46 PM.. Grund: Kleine Korrektur ...
Sponsored Links
Closed Thread

Lesezeichen

Tags
Inodes, jfs, ntfs

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Aus


Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
HBA Leistung jwholey Dateisysteme, Festplatten und Memory 2 02-27-2009 01:27 PM
Verbesserung der System-Performance, indem Sie den Log-Dateien zu RAM Linux Bot UNIX-und Linux-RSS-News 0 07-16-2008 05:30 AM
Entfernen Sie Header-Dateien: optimale Leistung kausmone UNIX for Dummies Questions & Answers 4 11-14-2007 10:14 AM
Bekanntgabe collectl - neue Performance-Linux-Performance-Monitor MarkSeger News, Links, Termine und Ankündigungen 0 10-26-2007 07:14 PM
Vergleich Große Dateien - Performance ist sehr schlecht madhukalyan UNIX for Dummies Questions & Answers 5 10-10-2006 11:58 PM



Alle Zeiten sind GMT -4. Es ist jetzt 09:05 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Inhalt-Copyright © 1993-2010. Alle Rechte Reserved.Ad Management by RedTyger

Content Relevant URLs durch vBSEO 3.2.0