Ich habe fast 10 Jahre lang XFS-Dateisysteme als Daten- / Wachstumspartitionen auf verschiedenen Linux-Servern ausgeführt.
Ich habe ein merkwürdiges Phänomen bei den neuesten CentOS / RHEL-Servern mit Version 6.2+ festgestellt.
Die stabile Nutzung des Dateisystems wurde durch die Umstellung auf die neuere Betriebssystemversion von EL6.0 und EL6.1 sehr unterschiedlich. Systeme, die ursprünglich mit EL6.2 + installiert wurden, zeigen dasselbe Verhalten. Anzeige wilder Schwankungen bei der Festplattenauslastung auf den XFS-Partitionen (siehe die blaue Linie in der folgenden Grafik).
Vorher und nachher. Das Upgrade von 6.1 auf 6.2 erfolgte am Samstag.
Das Diagramm zur Festplattenauslastung des letzten Quartals desselben Systems, in dem die Schwankungen der letzten Woche dargestellt sind.
Ich habe begonnen, die Dateisysteme auf große Dateien und außer Kontrolle geratene Prozesse (Protokolldateien, vielleicht?) Zu überprüfen. Ich habe festgestellt, dass meine größten Dateien unterschiedliche Werte von du
und melden ls
. Das Laufen du
mit und ohne --apparent-size
Schalter macht den Unterschied deutlich.
# du -skh SOD0005.TXT
29G SOD0005.TXT
# du -skh --apparent-size SOD0005.TXT
21G SOD0005.TXT
Eine schnelle Überprüfung mit dem Dienstprogramm ncdu im gesamten Dateisystem ergab Folgendes :
Total disk usage: 436.8GiB Apparent size: 365.2GiB Items: 863258
Das Dateisystem ist voll von spärlichen Dateien , mit fast 70 GB verlorenem Speicherplatz im Vergleich zur vorherigen Version des Betriebssystems / Kernels!
Ich habe das Red Hat Bugzilla durchgesehen und die Protokolle geändert, um festzustellen, ob es Berichte über dasselbe Verhalten oder neue Ankündigungen in Bezug auf XFS gab.
Nada.
Ich bin während des Upgrades von Kernel-Version 2.6.32-131.17.1.el6 auf 2.6.32-220.23.1.el6 übergegangen . Keine Änderung der Nebenversionsnummer.
Ich habe die Dateifragmentierung mit dem filefrag
Tool überprüft . Einige der größten Dateien auf der XFS-Partition hatten Tausende von Speicherbereichen. Durch das Ausführen einer Onlinedefragmentierung xfs_fsr -v
während einer langsamen Aktivitätsperiode konnte die Datenträgernutzung vorübergehend reduziert werden (siehe Mittwoch im ersten Diagramm oben). Die Nutzung nahm jedoch zu, sobald die hohe Systemaktivität wieder aufgenommen wurde.
Was passiert hier?
Antworten:
Ich verfolgen dieses Problem zurück zu einer Diskussion über ein verpflichten, die XFS - Source - Tree von Dezember 2010. Der Patch in Kernel 2.6.38 eingeführt wurde (und natürlich später in einige populären Distribution Kernel Linux zurückportiert).
Die beobachteten Schwankungen bei der Datenträgernutzung sind auf eine neue Funktion zurückzuführen. XFS Dynamic Speculative EOF Preallocation .
Dies ist ein Schritt, um die Dateifragmentierung während Streaming-Schreibvorgängen zu reduzieren, indem mit zunehmender Dateigröße spekulativ Speicherplatz zugewiesen wird. Der pro Datei vorab zugewiesene Speicherplatz ist dynamisch und hängt in erster Linie vom verfügbaren Speicherplatz auf dem Dateisystem ab (um zu verhindern, dass der gesamte Speicherplatz ausgeht).
Es folgt dieser Zeitplan:
Dies ist eine interessante Erweiterung des Dateisystems, da sie bei einigen der stark fragmentierten Dateien, mit denen ich zu tun habe, hilfreich sein kann.
Der zusätzliche Speicherplatz kann vorübergehend freigegeben werden, indem der Pagecache, die Einträge und die Inodes wie folgt freigegeben werden:
Die Funktion kann vollständig deaktiviert werden, indem ein
allocsize
Wert während der Dateisystembereitstellung definiert wird. Die Standardeinstellung für XFS istallocsize=64k
.Die Auswirkungen dieser Änderung werden wahrscheinlich von Überwachungs- / Schwellenwertsystemen (wie ich sie abgefangen habe) zu spüren sein, sie haben jedoch auch Auswirkungen auf Datenbanksysteme und können zu unvorhersehbaren oder unerwünschten Ergebnissen für Thin-Provisioning-VMs und Speicher-Arrays führen (diese werden verwendet) mehr Platz als Sie erwarten).
Alles in allem hat es mich überrascht, weil es keine klare Ankündigung der Dateisystemänderung auf der Verteilungsebene oder sogar bei der Überwachung der XFS-Mailingliste gab .
Bearbeiten : Die
Leistung auf XFS-Volumes mit dieser Funktion wurde drastisch verbessert. Ich sehe eine konsistente Fragmentierung von <1% auf Volumes, die zuvor eine Fragmentierung von bis zu 50% aufwiesen. Die Schreibleistung ist weltweit gestiegen!
Statistikdaten aus demselben Datensatz, wobei das ältere XFS mit der Version in EL6.3 verglichen wird.
Alt:
Neu:
quelle
xfs_fsr
es wieder runter auf ca. 35GB. Ich muss das im Auge behalten