الانتقال من ضغط gz إلى zstd للنسخ الاحتياطية

zstd شائع جدًا الآن ويضغط بشكل أفضل وأسرع من gz. ربما يستحق التغيير إلى هذا للنسخ الاحتياطي.

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

Choosing Between gzip, Brotli and zStandard Compression | Paul Calvano.

4 إعجابات

أعتقد أن هذه فكرة جيدة في الواقع. سأضع علامة pr-welcome عليها.

إعجابَين (2)

أود أن أعرف نسبة الوزن المتوسط بين البيانات القابلة للضغط والبيانات المضغوطة بالفعل في نسخة احتياطية من Discourse[1]، وكم من البيانات (بنسبة مئوية) سيتم توفيرها باستخدام zstd.

هذا ليس نفس طلب الميزة، ولكنه يتعلق أيضًا بضغط النسخ الاحتياطي لذا سأقوم بنشر هذا:

لن أتفاجأ إذا كانت النسبة المئوية هي نفسها تقريبًا في جميع منتديات Discourse الخاصة بي.


  1. بالطبع، تعتمد بعض المنتديات بشكل كبير على تحميل الصور، والبعض الآخر لن يسمح حتى بتحميل الملفات. ↩︎

في بعض الأحيان، تسبب عملية النسخ الاحتياطي لنا بعض مشاكل التوفر بسبب الحمل الإضافي. لذا قمت اليوم بتجربة سريعة باستخدام zstd.

هذه كانت نتائجي لضغط نفس ملف dump.sql بحجم 73 جيجابايت باستخدام gzip (المستوى 4، كما في نسخة احتياطية من Discourse) وzstd (المستوى الافتراضي 3 من أصل 19):

حجم الضغط: أصغر بنسبة 15.8% (.zst كان 84% من حجم .gz)
وقت الضغط (-T1): أسرع بنسبة 71% (29% من وقت gzip)
وقت الضغط (-T0): أسرع بنسبة 89% (11% من وقت gzip)

قد تختلف النتائج حسب كل شخص، لم أقم بتشغيل الاختبار عدة مرات، وكانت جهازاتي (6 أنوية) تقوم بأشياء أخرى أيضًا، وهكذا… لم أهدف إلى الدقة. ومع ذلك، أعتقد أن الفوائد واضحة.

لست متأكدًا مما إذا كان الخيار -T0 سيكون بالضرورة خيارًا جيدًا للجميع، حيث يبدو ترك بعض المساحة لـ Discourse نفسه فكرة جيدة، ومن هنا جاءت العينة مع -T1 للمقارنة بشكل أكثر دقة.

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

إعجابَين (2)

يمكنني تأكيد أن tar داخل docker يدعم ضغط --zstd.

تعديل: آسف، لا. يدعم tar ذلك، لكن أداة ‘zstd’ غير موجودة. يمكن تثبيتها عبر apt-get install.

إعجابَين (2)