यदि आपने कभी tar के साथ बड़े वॉल्यूम को कंप्रेस किया है, तो आप जानते होंगे कि यह कितना दर्दनाक हो सकता है। यह अक्सर बहुत धीरे-धीरे चलता है, और आप खुद को टास्क को समाप्त करने के लिए Ctrl + C दबाते हुए पाते हैं और बस इसके बारे में भूल जाते हैं। हालांकि, कुछ अन्य टूल हैं जिनका tar उपयोग कर सकता है, और वे आज के भारी मल्टी-थ्रेडेड CPU का उपयोग करने और अपने tar आर्काइविंग को गति देने का एक शानदार तरीका हैं। यह लेख आपको दिखाता है कि लिनक्स में आर्काइव को कंप्रेस करते समय tar को सभी कोर का उपयोग कैसे करना है।
टूल्स को समझना और इंस्टॉल करना
यहां तीन मुख्य टूल हैं: pigz, pbzip2, और pxz। टूल्स के बीच कुछ सूक्ष्म अंतर हैं, लेकिन अंतर gzip, bzip2, और xz के बीच हैं। उस संबंधित क्रम में, कंप्रेशन स्तर बढ़ते हैं, जिसका अर्थ है कि gzip के साथ कंप्रेस किया गया आर्काइव xz के साथ कंप्रेस किए गए से बड़ा होगा, लेकिन gzip स्वाभाविक रूप से xz से कम समय लेगा। bzip2 बीच में कहीं है।
प्रत्येक टूल के नाम की शुरुआत में "p" का अर्थ "पैरेलल" है। पैरेललाइज़ेशन पिछले कुछ वर्षों में तेजी से अधिक प्रासंगिक हो गया है - कोई चीज़ सभी CPU कोर पर कितनी अच्छी तरह फैलती है। AMD के Epyc और Threadripper लाइन्स जैसे CPU जो 64 कोर और 128 थ्रेड तक पहुंच सकते हैं, यह समझना महत्वपूर्ण है कि कौन से एप्लिकेशन इसका उपयोग कर सकते हैं। ये कंप्रेशन फ़ंक्शन प्रमुख उम्मीदवार हैं।
टूल्स इंस्टॉल करने के लिए, आप बस अपने रिपॉजिटरी की ओर रुख कर सकते हैं।
sudo apt install pigz pbzip2 pxz # Debian/Ubuntu sudo dnf install pigz pbzip2 pxz # Fedora sudo pacman -Sy pigz pbzip2 pxz # Arch Linux
यह लेख स्थिरता के लिए pxz पर केंद्रित है। आप pigz के लिए इस ट्यूटोरियल को देख सकते हैं।
Tar के साथ आर्काइव कंप्रेस करना
tar का सिंटैक्स काफी सरल है। बस एक डायरेक्टरी को कंप्रेस करने के लिए, आप इस तरह की कमांड का उपयोग कर सकते हैं:
tar czf linux-5.10-rc3.tar.gz linux/ tar cjf linux-5.10-rc3.tar.bz2 linux/ tar cJf linux-5.10-rc3.tar.xz linux/
पहला gzip का उपयोग करेगा, दूसरा bzip2 का उपयोग करेगा, और तीसरा xz का उपयोग करेगा। फाइलनाम और डायरेक्टरी इस बात पर निर्भर करेगी कि आप क्या कर रहे हैं, लेकिन मैंने GitHub से लिनक्स कर्नेल को अपने "/home" डायरेक्टरी में खींचा, और मैं उसी का उपयोग करूंगा। तो, मैं आगे बढ़ूंगा और उस कमांड को सामने time कमांड के साथ शुरू करूंगा ताकि यह देखा जा सके कि इसमें कितना समय लगता है। आप यह भी देख सकते हैं कि xz इस सिस्टम पर मेरे CPU का उच्चतम प्रतिशत ले रहा है, लेकिन यह केवल एक कोर को 100 प्रतिशत पर पिन कर रहा है।
और, जैसा कि आप देख सकते हैं, मेरे पुराने i7-2600s को लिनक्स 5.10-rc3 को कंप्रेस करने में बहुत लंबा समय लगा (लगभग 28 मिनट)।
यहीं पर ये पैरेलल कंप्रेशन टूल काम आते हैं। यदि आप एक बड़ी फाइल कंप्रेस कर रहे हैं और इसे तेजी से पूरा करना चाहते हैं, तो मैं इन टूल्स की पर्याप्त सिफारिश नहीं कर सकता।
Tar के साथ पैरेलल कंप्रेशन टूल्स का उपयोग करना
आप या तो --use-compression-program विकल्प के साथ tar को कंप्रेशन प्रोग्राम का उपयोग करने के लिए कह सकते हैं, या आप थोड़ा सरल कमांड फ्लैग -I का उपयोग कर सकते हैं। इनमें से किसी भी टूल के लिए सिंटैक्स का एक उदाहरण इस तरह होगा:
tar -I pigz -cf linux-5.10-rc3.tar.gz linux/ tar -I pbzip2 -cf linux-5.10-rc3.tar.bz2 linux/ tar -I pxz -cf linux-5.10-rc3.tar.xz linux/
आइए इसे टेस्ट करें और देखें कि मेरे सिस्टम को अपने CPU के सभी आठ थ्रेड्स तक पहुंच के साथ लिनक्स कर्नेल को कंप्रेस करने में कितना समय लगता है। आप मेरा htop रीडआउट देख सकते हैं जो pxz के कारण सभी थ्रेड्स को 100 प्रतिशत उपयोग पर पिन किया गया दिखा रहा है।
आप देख सकते हैं कि उस आर्काइव को कंप्रेस करने में काफी कम समय लगा (लगभग सात मिनट!), और वह मल्टीटास्किंग के साथ था। मेरे पास बैकग्राउंड में एक वर्चुअल मशीन चल रही है, और मैं फिलहाल कुछ वेब ब्राउज़िंग कर रहा हूं। लिनक्स कर्नेल हार्डवेयर शेड्यूलर आपको आपके व्यक्तिगत सामान के लिए जो चाहिए वह देगा, इसलिए यदि आप अपने सिस्टम पर बिना किसी अन्य चीज़ के चल रहे अपने pxz कमांड को छोड़ देते हैं, तो आप इसे तेजी से पूरा करने में सक्षम हो सकते हैं।
pigz, pbzip2, और pxz के साथ कंप्रेशन लेवल एडजस्ट करना
आप pxz को कंप्रेशन लेवल भी पास कर सकते हैं ताकि फाइल को और भी छोटा बनाया जा सके। इसके लिए अधिक RAM, CPU, और समय की आवश्यकता होगी, लेकिन यदि आपको वास्तव में एक छोटी फाइल प्राप्त करने की आवश्यकता है तो यह इसके लायक है। यहां दो कमांड और उनके परिणामों की साथ-साथ तुलना है।
कंप्रेशन उतना अधिक नहीं है, और समय जरूरी नहीं कि इसके लायक हो, लेकिन यदि हर मेगाबाइट मायने रखता है, तो यह अभी भी एक बढ़िया विकल्प है।
मुझे आशा है कि आपको tar का उपयोग करके सभी कोर का उपयोग करके आर्काइव कंप्रेस करने के इस गाइड का आनंद मिला। हमारे अन्य लिनक्स कंटेंट को देखना सुनिश्चित करें, जैसे लिनक्स के लिए एक नया पीसी कैसे बनाएं, Apt में मास्टर बनना और Apt गुरु बनना, और रास्पबेरी पाई पर आर्क लिनक्स कैसे इंस्टॉल करें।