Ich will wirklich nicht behaupten, ich würde mich mit der konkreten linux implementierung vom smb und/oder nfs auf btrfs auskennen. Aber wenn jemand denkt, dass da einfach nur in einer Schleife einzelne Ethernetframes eingelesen und dann der Inhalt direkt auf die Festplatte geschrieben wird, ohne, dass da mehrer Ebenen an Puffern, Caches, Reordering und potentiell Datenverarbeitung dazwischen liegen hat ein viel zu einfaches Bild davon, wie Datei und Netzwerkoperationen auf heutigen Systemen implementiert sind. Z.B. puffert Linux schon mal standardmäßig jeden Schreibzugriff auf eine Filehandle und auch im Netzwerkstack wir schon ne ganze menge gepuffert, aggregiert und validiert (teils in HW, teils im Kernel), bevor der SMB Dienst die Daten überhaupt zu sehen bekommt - erst recht bei 10Gbit links.
Die entscheidende Frage ist nicht, ob gepuffert/gecached wird, sondern ob wir hier nur von ein paar dutzend MB reden, die halt einfach aus Effizienzgründen benötigt werden oder ob irgendwo ein Cache auf auf mehrere GB anwachsen kann um Ungleichheiten zwischen Netzwerk und Storage I/O ausgleichen zu können. Überlegt einfach mal: Wenn ich ein1GB file über ein 10Gbit Netz schicke, dann geht das schneller als ne Festplatte braucht um aus dem Standby aufzuwachen. Warum soll es nicht möglich sein, die Daten auf Empfängerseite erstmal entgegenzunehmen und dann wegzuschreiben wenn die Festplatte bereit ist?
Wie schon gesagt, ich sage nicht, dass es hier tatsächlich so ist, weil ich es schlicht nicht weiß und mir fallen durchaus 2-3 Probleme ein die dadruch enstehen würden. Ich weiß aber aus persönlicher Erfahrung, dass der RAM auf manchen Systemen (Sowohl in der Windows als auch in der Linux-welt) sehr wohl in größerem Umfang genutzt wird - und das schon bei 1Gbit lan. Daher würde ich mir schon etwas substantiellere Aussagen wünschen als einfach nur (paraphrasiert) "Würde ich nicht so implementieren" oder "In meinem vereinfachten mentalen Modell findet keine nennenswerte Pufferung statt".
Die entscheidende Frage ist nicht, ob gepuffert/gecached wird, sondern ob wir hier nur von ein paar dutzend MB reden, die halt einfach aus Effizienzgründen benötigt werden oder ob irgendwo ein Cache auf auf mehrere GB anwachsen kann um Ungleichheiten zwischen Netzwerk und Storage I/O ausgleichen zu können. Überlegt einfach mal: Wenn ich ein1GB file über ein 10Gbit Netz schicke, dann geht das schneller als ne Festplatte braucht um aus dem Standby aufzuwachen. Warum soll es nicht möglich sein, die Daten auf Empfängerseite erstmal entgegenzunehmen und dann wegzuschreiben wenn die Festplatte bereit ist?
Wie schon gesagt, ich sage nicht, dass es hier tatsächlich so ist, weil ich es schlicht nicht weiß und mir fallen durchaus 2-3 Probleme ein die dadruch enstehen würden. Ich weiß aber aus persönlicher Erfahrung, dass der RAM auf manchen Systemen (Sowohl in der Windows als auch in der Linux-welt) sehr wohl in größerem Umfang genutzt wird - und das schon bei 1Gbit lan. Daher würde ich mir schon etwas substantiellere Aussagen wünschen als einfach nur (paraphrasiert) "Würde ich nicht so implementieren" oder "In meinem vereinfachten mentalen Modell findet keine nennenswerte Pufferung statt".