Zitat
Original von Mannyac
Tut leider auch der FTP, die HD's sind da der limitierende Faktor. Sobald 2 oder mehr Streams von der Platte lesen wollen wirds eng. SCSI wär da viel netter, aber halt auch viel teurer.
Aber wenn du per Windowsfreigabe schneller runterlädst als per FTP machst du definitiv was falsch. FTP erzeugt viel weniger Overhead und meist auch massiv weniger CPU-Last als das Proprietäre Windows-Zeugs. Da solltest du locker an die 10mb/s kommen...
Apropos HDD = limitierender Faktor.
Ne HDD schafft ja ungefähr 50MB/s avg. seq. read.
Nun, das problem ist, dass der Read dann eben nicht sequentiell ist. Wenn 20 Leute parallel leechen muss der ständig rumherhüpfen...
Ich hab 4x HDDs im raid 0, das sind ~200MB7s avg. seq. read (bei mir praxiswert). Das nützt aber natürlich noch nicht viel, wenn der nur 16kB liest und dann schon weiterspringt.
man muss/müsste:
1. HDD Defragmentieren -> sonst hast schon bei 1nem User nicht die Optimale Performance
2. bei Multi User -> FTP Server Optimieren.
Gibts Open Source FTP Server wo man mitproggen kann? Ich wär daran interessant mal n paar Modifikationen zu machen.
Und zwar integration eines 'SWAP' Drives;
Man nehme n paar MB Ramdisk (128? 256? 512MB? Je mehr Ram desto besser / mehr User gut bedienbar) und lade immer grosse Blöcke darin rein... -> Ergibt (bei fragmentierter Platte & grossen Files) locker ne x-Fache Übertragungsrate... (falls die HDDs das problem war).
z.B. 16MB Cache pro User, 1HDD:
~0.014s (14ms) Zugriffszeit (bei ner 7200 RPM Platte), 0.29s Lesen (16MB/55 MB/s)
= 0.305s/16MB
=> (1s / 0.314s) * 16MB = 52.5MB/s.
(falls das der Netzwerkcontroller schafft...)
bei kleinen Files wirds schwieriger. Aber MP3s sind so ziemlich das kleinste was geseedet wird *g*, die sind immer noch ~4MB im Schnitt. (liest er halt 4 in den Cache in der Zeit und hat dafür 0.346s = 46.25MB7s, so schlimm ist das net
- bzw. ist das selbe wie wenn man nur 4MB Cache pro User hat.
Noch die Rechnung für das Raid 0 Array mit 4-HDDs & ~200MB/s avg. seq read:
Zugriffszeit 0.014 + 0.08s lesen = 0.094 -> 170.2MB/s.
Da braucht man schon 2 GBE Controller um das zu handeln... 
Die Frage ist jetzt nur wie man das mit dem Cachen am einfachsten macht. Ob Windoof es erlaubt, nur Teile vom File anzufordern? Also ob ich Windoof sagen kann gib mir die ersten 16MB vom File X... dann gib mir die nächsten 16MB.. und dann gib mir noch die restlichen 3.567MB o.Ä.?
hat da jmnd. Erfahrung?
EDIT: man müsste natürlich auf'm FTP Server die Leech-Sessions auf 1Pro User Begrenzen oder sonst den Cache pro Session einrichten - was dann aber wieder eine Unfaire Verteilung der Bandbreite an die User zur Folge hätte...
cya
btw: User-Windoofs => Max. 10 Sessions. Also nix mit 20 leecher 
mit Server OS spielts keine Rolle.
hatte auch schon ~55MByte/s mit GBLan (Windoof Freigaben).
EDIT2:
FTP-Server & Cache: ist zwar ne gute Idee (*lol*, selbstlob^^), aber Besser wärs noch mit Bittorrent -> da können gleichzeitig auch noch andere seeden / leechen.
Nur leider hab ich noch keinen Torrentserver & Client gefunden mit dem ich über 20MBit/s geschafft hätte?!
kennt da jmnd. was?
EDIT3: hab noch n Nachtrag zur FTP Server Modifikatioin:
-> Das Lesen (von HDD) der Files muss in einem Thread geschehen
---> so eliminiert man konkurrierende Zugriffe (ausser sie kommen dann vom BS selber...)
----> Falls Schreiben gestattet werden soll, muss das im selben Thread passieren (gleiches Problem). Und natürlich auch gecached. 
-> Das senden der Files kann dann in mehreren Threads geschehen.
EDIT4: FileZilla unterstüzt Buffering. Muss nur noch kucken wie gut es ist / wie es genau funzt 