Schnellere Festplattenplatzberechnung für upload-intensive Instanzen

Der Befehl du, der verwendet wird, um den von Uploads belegten Speicherplatz abzurufen, verursachte Leistungsprobleme für mein Admin-Dashboard. Ja, wir haben VIELE Bild-Uploads. Anstatt ihn ganz zu deaktivieren (wir haben schließlich ein Grafana/Prometheus-Dashboard), habe ich beschlossen, ihn durch eine viel schnellere sehr grobe Annäherung mit df zu ersetzen. Diese Änderung ist natürlich vom Administrator wählbar, wobei der Standardwert du ist.

Ich habe einen PR für diese Änderung eingereicht. Es ist mein erster PR, also gehen Sie bitte nachsichtig mit mir um :))

Sie können den PR hier einsehen:

Haben Sie eine grobe Vorstellung, wie lange du bei Ihnen gedauert hat? Ich bin von diesem Ansatz zur Lösung des Leistungsproblems nicht wirklich überzeugt und denke, es gibt zwei Alternativen:

  1. Verwenden Sie einfach Upload.sum(:filesize).to_i + OptimizedImage.sum(:filesize).to_i, um uploads_used_bytes zu ermitteln, so wie wir es für externe Speicher tun.
  2. Führen Sie einen Hintergrundauftrag ein, der die von Uploads verbrauchten Bytes periodisch neu berechnet und im Redis-Speicher zwischenspeichert.

Ich persönlich bin eher für (1), da dies eine wesentlich einfachere Lösung ist. Wir verlieren zwar etwas an Genauigkeit, aber wir brauchen hier keine 100%ige Genauigkeit. Dennoch wird es viel besser sein als die Annäherung, die wir von df erhalten.

2 „Gefällt mir“

Vielen Dank für Ihr Feedback.

du dauerte auf HDD über eine Minute und mit SSD etwa 20 Sekunden.

Meine Überlegung ist, dass Sie, wenn Sie eine Instanz haben, die von Uploads wie unserer abhängt, ohnehin eine dedizierte Partition für Uploads haben.

Aber ja, Ihre Lösung Nr. 1 sieht eleganter aus. Ich werde sie mir ansehen und einen geänderten PR einreichen.

Geänderte PR ist hier:

Vielen Dank für Ihre Prüfung.

1 „Gefällt mir“