গিজিপ সংক্ষেপণ গতি


15

gzipপ্রক্রিয়াটি দ্রুত করা কি সম্ভব ?

আমি ব্যাবহার করছি

mysqldump "$database_name" | gzip > $BACKUP_DIR/$database_name.sql.gz

ডিরেক্টরিতে একটি ডাটাবেস ব্যাকআপ করতে $BACKUP_DIR

ম্যানপেজ বলেছেন:

- # - ব্রেকফাস্ট --best
নির্দিষ্ট সংখ্যার # ব্যবহার করে সংক্ষেপণের গতি নিয়ন্ত্রণ করুন, যেখানে -1 বা --رفاسٹ ইন্ডিয়া দ্রুততম সংকোচনের পদ্ধতিটি (কম সংক্ষেপণ) এবং -9 বা --est সবচেয়ে ধীর সংক্ষেপণ পদ্ধতি নির্দেশ করে ( সেরা সংক্ষেপণ)। ডিফল্ট সংকোচনের স্তর হ'ল -6 (এটি, গতির ব্যয়ে উচ্চ সংক্ষেপণের দিকে পক্ষপাতদুষ্ট)।

  • এটি ব্যবহার করা কতটা কার্যকর হবে --fast?
  • এটি কি কোনও আধুনিক কম্পিউটারে কার্যকরভাবে সিপিইউর ব্যবহার হ্রাস করছে?

আমার পরীক্ষার ফলাফল

আমি কোনও ত্বরণ লক্ষ্য করিনি:

  • 7 মিনিট, 47 সেকেন্ড (ডিফল্ট অনুপাত সহ -6)
  • 8 মিনিট, 36 সেকেন্ড (অনুপাত সহ --fast(= 9))

সুতরাং মনে হচ্ছে দ্রুত সংক্ষেপণটি ব্যবহার করতে আরও বেশি সময় লাগে?

কেবলমাত্র উচ্চতর সংক্ষেপণ এটিকে আস্তে আস্তে করে:

  • 11 মিনিট, 57 সেকেন্ড (অনুপাত সহ --best(= 1))

আইডিয়াটি পাওয়ার পরে lzopআমি এটিও পরীক্ষা করেছি এবং এটি সত্যিই দ্রুত:

  • 6 মিনিট, 14 সেকেন্ড সহ lzop -1 -f -o $BACKUP_DIR/$database_name.sql.lzo

সম্পর্কিত: unix.stackexchange.com/questions/87111/...
SLM

আপনি কি সিপিইউ সময় বা সামগ্রিক (ঘড়ি) সময় সম্পর্কে উদ্বিগ্ন? --বেস্ট 9,
স্টাফেন

3
যদি gzip -1পর্যাপ্ত দ্রুত না হয় তবে ব্যবহার করুনlzop
স্টাফেন চেজেলাস

1
এছাড়াও রয়েছে lz4যা আরও দ্রুত হয় এই বেঞ্চমার্ক দেখতে । তবে এটি মনে হয় lzop এবং lz4 এর জন্য আরও অনেক মেমোরি দরকার। আমার 1 জিবি র‌্যাম সিঙ্গল-কোরে এটি কি সমস্যা হবে যে যখন আমি কিছু বড় ডেটাবেস সংকুচিত করি তখন gzip এর চেয়ে কমপ্রেসে 30 গুণ বেশি মেমরি ব্যবহার করে lz4?
rubo77

lz4 তেমন স্মৃতির দরকার নেই। আপনি যদি lz4c ইউটিলিটি ব্যবহার করেন তবে প্রায় সমস্ত মেমরি I / O বাফার জন্য বরাদ্দ করা হয়। আপনি ছোট বাফার ব্যবহার করে এটি হ্রাস করতে পারেন (K৪ কেবি বাফারগুলির জন্য বিকল্প-বি 4)। যেহেতু ছোট বাফারগুলি আরও খারাপ সংকোচনের অর্থ, তাই এটি চেইন-ব্লক সংকোচনের (বিকল্প-বিডি) সক্ষম করতে কার্যকর। দেখুন: fastcompression.blogspot.fr/2013/08/…
সায়ান

উত্তর:


19

আপনার কাছে পিগজ ব্যবহার করে কোনও মাল্টি-কোর মেশিন থাকলে traditionalতিহ্যবাহী জিজিপের চেয়ে অনেক দ্রুত faster

জিগিপের সমান্তরাল বাস্তবায়নের জন্য দাঁড়িয়ে থাকা পিগজ হ'ল জিজিপের সম্পূর্ণরূপে কার্যকরী প্রতিস্থাপন যা ডেটা কমপ্রেস করার সময় একাধিক প্রসেসর এবং একাধিক কোরকে হিলটির শোষণ করে। পিগজ মার্ক অ্যাডলার লিখেছিলেন, এবং জ্লিব এবং pthread লাইব্রেরি ব্যবহার করে।

জিগিপের জন্য ড্রপ-ইন প্রতিস্থাপন হিসাবে পিগজ সিএ ব্যবহার করা হবে। কেবল সংক্ষেপণের চেয়ে নোটটি সমান্তরাল হতে পারে, সংক্ষেপণ নয়।

পিগজ ব্যবহার করে কমান্ড লাইনটি হয়ে যায়

mysqldump "$database_name" | pigz > $BACKUP_DIR/$database_name.sql.gz

এটি কি একটি একক কোর প্রক্রিয়াটিকে গতি দেয়?
রুবো 77

@ রুবো। multiple - একাধিক কোর জুড়ে এই ভক্তদের কোনও সংকোচন নেই।
slm

pigzসিপিইউ ব্যবহার বাড়ায় তবে মাল্টি-প্রসেসরের সময় লাগবে এমন ঘড়ির সময় কমিয়ে দেয়
স্টাফেন চেজেলাস

প্রকৃতপক্ষে, এবং এটি প্রায়শই পছন্দসই হয়। এবং সাধারণত (হার্ডওয়্যার উপর নির্ভর করে) জিজিপ সংক্ষেপণ সিপিইউ বাউন্ড (একক থ্রেড পারফরম্যান্স) এবং পিগজ সংক্ষেপন প্রায়শই আইও আবদ্ধ থাকে।
মার্কো

5

থেকে man gzip:

   -# --fast --best
          Regulate  the  speed  of compression using the
          specified digit #, where -1  or  --fast  indi‐
          cates  the  fastest  compression  method (less
          compression) and -9 or  --best  indicates  the
          slowest compression method (best compression).
          The default compression level is -6 (that  is,
          biased  towards high compression at expense of
          speed).

3

ডাটাবেস লক করার সমস্যার কারণে আপনার যদি এটি দ্রুত হওয়ার প্রয়োজন হয় এবং অস্থায়ীভাবে ডেটা সঙ্কুচিত রাখার জন্য আপনার কাছে দ্রুত / বৃহত্ পর্যাপ্ত ডিস্ক থাকে তবে আপনি পরিবর্তে এই পদ্ধতিটি ব্যবহার করতে পারেন:

mysqldump "$database_name" > "$BACKUP_DIR"/"$database_name".sql
nice gzip "$BACKUP_DIR"/"$database_name".sql &

অর্থাত্ ব্যাকআপটি প্রথমে সঞ্চয় করুন (যা ডিস্কটি দ্রুত এবং সিপিইউ ধীর গতিতে থাকে তবে এটি জিজিপিংয়ের তুলনায় দ্রুত) এবং তারপরে পটভূমিতে গ্রিজিপটি ঘটে।

এটি আপনাকে আরও ভাল সংক্ষেপণ অ্যালগরিদম ব্যবহারের অনুমতি দিতে পারে, কারণ এটি সংক্ষেপণটি কত বেশি সময় নেয় তা (সরাসরি) গুরুত্বপূর্ণ নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.