حساب مساحة القرص بسرعة للنسخ الحديثة التي تتطلب رفع كميات كبيرة

أمر ‘du’، الذي يُستخدم لاسترداد مساحة القرص التي تشغلها التحميلات، كان يسبب مشاكل في الأداء للوحة تحكم المسؤول الخاصة بي. نعم، لدينا الكثير من تحميلات الصور. بدلاً من تعطيله تمامًا (لدينا لوحة تحكم Grafana/Prometheus في النهاية)، قررت استبداله بتقريب تقريبي تقريبي جدًا أسرع بكثير باستخدام ‘df’. هذا التغيير قابل للتحديد بالطبع من قبل المسؤول مع كون الافتراضي هو ‘du’.

لقد قدمت طلب سحب (PR) لهذا التغيير. إنه أول طلب سحب لي، لذا تعاملوا معي بلطف :))

يمكنك عرض طلب السحب هنا:

هل لديك فكرة تقريبية عن المدة التي استغرقها du بالنسبة لك؟ لست متحمسًا حقًا لهذا النهج لحل مشكلة الأداء وأعتقد أن هناك بديلين:

  1. استخدم فقط Upload.sum(:filesize).to_i + OptimizedImage.sum(:filesize).to_i لتحديد uploads_used_bytes كما نفعل للمخازن الخارجية.
  2. تقديم مهمة خلفية تعيد حساب البايتات المستخدمة بواسطة التحميلات بشكل دوري وتخزينها مؤقتًا في Redis.

شخصيًا، أنا أكثر حماسًا للخيار (1) لأنه حل أبسط بكثير. نفقد بعض الدقة، لكننا لا نحتاج إلى دقة 100٪ هنا. ومع ذلك، سيكون أفضل بكثير من التقريب الذي نحصل عليه من df.

إعجابَين (2)

شكرا لملاحظاتك.

استغرقت du أكثر من دقيقة على HDD ومع SSD استغرقت حوالي 20 ثانية.

منطقي هو أنه إذا كان لديك مثيل يعتمد على التحميلات مثل مثيلنا، فلديك قسم مخصص للتحميلات على أي حال.

لكن نعم، يبدو حلك رقم 1 أكثر أناقة. سأبحث فيه وأقدم طلب سحب معدل.

تم تعديل طلب السحب هنا:

شكراً لاهتمامكم.

إعجاب واحد (1)