ما هو خوارزمية Unix DU التي تستخدمها لحساب مساحة القرص؟

StackOverflow https://stackoverflow.com/questions/4313065

  •  29-09-2019
  •  | 
  •  

سؤال

لقد حاولت استخدام du لحساب استخدام القرص اليوم على دليل واحد. حجم الدليل هو 6 جيجابايت واستغرق الأمر الوقت التالي للحساب:

prompt> time du -sh .
6.0G   .

real    1m32.405s
user    0m2.053s
sys     0m16.552s

ما هو خوارزمية Unix DU التي تستخدمها لحساب مساحة القرص؟ لماذا هو بطيء جدا؟ هل هناك أي بدائل لحساب مساحة القرص بشكل أكثر كفاءة؟ منصة الاحتجاج Sun. يتم تثبيت الدليل الذي تم حساب الحجم من أجله NFS.

هل كانت مفيدة؟

المحلول

أعتقد أنه يسير على الدليل بشكل متكرر ، مع إضافة أحجام الملفات الموجودة معًا. بسيطة جدا ، حقا ، ولكن بالطبع يستغرق بعض الوقت. قد يكون الأمر أسرع إذا جعل نظام الملفات هذه العمليات أسرع.

نصائح أخرى

يتعين على DU إدراج جميع الدلائل وإحصائيات كل ملف يتم العثور عليه بحيث ينتهي به المطاف القراءة في جميع أنحاء القرص

أثناء الحصول على أحجام الملفات ، يلخصها وعند الانتهاء ، يطبع المبلغ

على سبيل المثال على هذا الدليل واحد مع 2 مليون ملف على نظام ملفات SSHFS:

prompt$ time du -sh .
367G    .

real    12m53.093s
user    0m3.848s
sys     0m14.265s

ولكن بسبب التخزين المؤقت للتشغيل الثاني ، يستغرق الأمر فقط:

prompt$ time du -sh .
367G    .

real    4m56.875s
user    0m4.136s
sys     0m15.257s

سرعتها تعتمد على عدد الملفات/الدلائل. إذا كان لديك دليل يحتوي على ملفات 6 جيجابايت ، فسوف يستغرق حسابه أقل بكثير. يحسب حجم الملفات في الدليل المحدد ، ومتكرر لكل دليل طفل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top