أمر ‘du’، الذي يُستخدم لاسترداد مساحة القرص التي تشغلها التحميلات، كان يسبب مشاكل في الأداء للوحة تحكم المسؤول الخاصة بي. نعم، لدينا الكثير من تحميلات الصور. بدلاً من تعطيله تمامًا (لدينا لوحة تحكم Grafana/Prometheus في النهاية)، قررت استبداله بتقريب تقريبي تقريبي جدًا أسرع بكثير باستخدام ‘df’. هذا التغيير قابل للتحديد بالطبع من قبل المسؤول مع كون الافتراضي هو ‘du’.
لقد قدمت طلب سحب (PR) لهذا التغيير. إنه أول طلب سحب لي، لذا تعاملوا معي بلطف :))
هل لديك فكرة تقريبية عن المدة التي استغرقها du بالنسبة لك؟ لست متحمسًا حقًا لهذا النهج لحل مشكلة الأداء وأعتقد أن هناك بديلين:
استخدم فقط Upload.sum(:filesize).to_i + OptimizedImage.sum(:filesize).to_i لتحديد uploads_used_bytes كما نفعل للمخازن الخارجية.
تقديم مهمة خلفية تعيد حساب البايتات المستخدمة بواسطة التحميلات بشكل دوري وتخزينها مؤقتًا في Redis.
شخصيًا، أنا أكثر حماسًا للخيار (1) لأنه حل أبسط بكثير. نفقد بعض الدقة، لكننا لا نحتاج إلى دقة 100٪ هنا. ومع ذلك، سيكون أفضل بكثير من التقريب الذي نحصل عليه من df.