Il comando ‘du’, utilizzato per recuperare lo spazio su disco utilizzato dai caricamenti, stava causando problemi di prestazioni per la mia dashboard di amministrazione. Sì, abbiamo MOLTI caricamenti di immagini. Piuttosto che disabilitarlo del tutto (dopotutto abbiamo la dashboard grafana/prometheus), ho deciso di sostituirlo con un’approssimazione molto approssimativa molto più veloce utilizzando ‘df’. Questa modifica è ovviamente selezionabile dall’amministratore con l’impostazione predefinita ‘du’.
Ho inviato una PR per questa modifica. È la mia prima PR, quindi siate clementi con me :))
Hai un’idea approssimativa di quanto tempo impiegava du per te? Non sono molto favorevole a questo approccio per risolvere il problema delle prestazioni e penso che ci siano due alternative:
Usa semplicemente Upload.sum(:filesize).to_i + OptimizedImage.sum(:filesize).to_i per determinare uploads_used_bytes come facciamo per i negozi esterni.
Introduci un processo in background che ricalcola periodicamente i byte utilizzati dagli upload e li memorizza nella cache in Redis.
Personalmente, sono più favorevole a (1) poiché è una soluzione molto più semplice. Perdiamo un po’ di accuratezza, ma non abbiamo bisogno del 100% di accuratezza qui. Tuttavia, sarà molto meglio dell’approssimazione che otteniamo da df.