Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar

วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar

หากคุณเคยต้องบีบอัดไฟล์จำนวนมากด้วย tar คุณจะรู้ว่ามันเจ็บปวดแค่ไหน มันมักจะไปช้ามาก และคุณพบว่าตัวเองกด Ctrl + C เพื่อจบงานและลืมมันไปซะ อย่างไรก็ตาม มีเครื่องมืออื่นๆ ที่ tar สามารถใช้ได้ และเป็นเครื่องมือที่ดีในการใช้ประโยชน์จาก CPU แบบมัลติเธรดจำนวนมากในปัจจุบัน และเพิ่มความเร็วในการเก็บถาวร tar ของคุณ บทความนี้แสดงวิธีทำให้ tar ใช้คอร์ทั้งหมดเมื่อบีบอัดไฟล์เก็บถาวรใน Linux

การทำความเข้าใจและการติดตั้งเครื่องมือ

เครื่องมือหลักสามอย่างที่เป็นปัญหา ได้แก่ pigz, pbzip2 และ pxz มีความแตกต่างเล็กน้อยระหว่างเครื่องมือ แต่ความแตกต่างอยู่ระหว่าง gzip, bzip2 และ xz ตามลำดับนั้น ระดับการบีบอัดจะเพิ่มขึ้น หมายความว่าไฟล์เก็บถาวรที่บีบอัดด้วย gzip จะมีขนาดใหญ่กว่าไฟล์บีบอัดด้วย xz แต่ gzip จะใช้เวลาน้อยกว่า xz ตามธรรมชาติ bzip2 อยู่ตรงกลาง

ตัว "p" ที่ขึ้นต้นชื่อของแต่ละเครื่องมือหมายถึง "ขนาน" Parallelization เป็นสิ่งที่มีความเกี่ยวข้องมากขึ้นเรื่อย ๆ ในช่วงหลายปีที่ผ่านมา – บางสิ่งบางอย่างครอบคลุมแกน CPU ทั้งหมดได้ดีเพียงใด ด้วยซีพียูอย่าง Epyc และ Threadripper ของ AMD ที่สามารถเข้าถึง 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
วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar

บทความนี้เน้นที่ 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 ชื่อไฟล์และไดเร็กทอรีจะแตกต่างกันไปขึ้นอยู่กับสิ่งที่คุณกำลังทำ แต่ฉันดึงเคอร์เนล Linux จาก GitHub ไปที่ไดเร็กทอรี "/home" ของฉันแล้วฉันจะใช้มัน ฉันจะเริ่มคำสั่งนั้นด้วย time คำสั่งที่ด้านหน้าเพื่อดูว่าใช้เวลานานเท่าใด คุณยังเห็นได้ว่า xz มีเปอร์เซ็นต์สูงสุดของ CPU ของฉันในระบบนี้ แต่จะตรึงแกนเดียวเท่านั้นที่ 100 เปอร์เซ็นต์

วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar

และอย่างที่คุณเห็น มันใช้เวลานานมากสำหรับ i7-2600s รุ่นเก่าของฉันในการบีบอัด Linux 5.10-rc3 (ประมาณ 28 นาที)

วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar

นี่คือจุดที่เครื่องมือบีบอัดแบบขนานเหล่านี้มีประโยชน์ หากคุณกำลังบีบอัดไฟล์ขนาดใหญ่และต้องการทำงานให้เสร็จเร็วขึ้น ฉันไม่สามารถแนะนำเครื่องมือเหล่านี้ได้เพียงพอ

การใช้เครื่องมือบีบอัดแบบขนานกับ Tar

คุณสามารถบอกให้ tar ใช้โปรแกรมบีบอัดด้วย --use-compression-program หรือคุณสามารถใช้แฟล็กคำสั่งที่ง่ายกว่าเล็กน้อยของ -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/

มาทดสอบกันและดูว่าระบบของฉันใช้เวลานานเท่าใดในการบีบอัดเคอร์เนล Linux ด้วยการเข้าถึงทั้งแปดเธรดของ CPU ของฉัน คุณสามารถดู htop . ของฉัน การอ่านแสดงเธรดทั้งหมดที่ตรึงไว้ที่การใช้งาน 100 เปอร์เซ็นต์เนื่องจาก pxz

วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar

คุณจะเห็นว่าการบีบอัดไฟล์เก็บถาวรนั้นใช้เวลาน้อยลงอย่างมาก (ประมาณเจ็ดนาที!) และนั่นก็เป็นการทำงานหลายอย่างพร้อมกัน ฉันมีเครื่องเสมือนที่ทำงานอยู่เบื้องหลัง และฉันกำลังท่องเว็บอยู่ในขณะนี้ ตัวกำหนดเวลาฮาร์ดแวร์ของเคอร์เนล Linux จะให้สิ่งที่คุณต้องการสำหรับของใช้ส่วนตัว ดังนั้นหากคุณทิ้ง pxz คำสั่งให้ทำงานโดยไม่ใช้สิ่งอื่นใดในระบบของคุณ คุณอาจทำงานเสร็จเร็วขึ้น

วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar

ปรับระดับการบีบอัดด้วย pigz, pbzip2 และ pxz

คุณยังสามารถส่งผ่านระดับการบีบอัดไปยัง pxz เพื่อทำให้ไฟล์มีขนาดเล็กลง การดำเนินการนี้ต้องใช้ RAM, CPU และเวลามากขึ้น แต่ก็คุ้มค่าถ้าคุณต้องการไฟล์ขนาดเล็กจริงๆ นี่คือการเปรียบเทียบระหว่างคำสั่งทั้งสองและผลลัพธ์ร่วมกัน

วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar วิธีบีบอัดไฟล์เก็บถาวรโดยใช้แกนประมวลผล CPU ทั้งหมดที่มี Tar

การบีบอัดไม่ได้ยิ่งใหญ่ขนาดนั้น และเวลาก็ไม่คุ้มค่าเสมอไป แต่ถ้าทุกเมกะไบต์มีค่า มันก็ยังเป็นตัวเลือกที่ดี

ฉันหวังว่าคุณจะชอบคู่มือนี้ในการใช้คอร์ทั้งหมดเพื่อบีบอัดไฟล์เก็บถาวรโดยใช้ tar อย่าลืมตรวจสอบเนื้อหา Linux อื่นๆ ของเรา เช่น วิธีสร้างพีซีเครื่องใหม่สำหรับ Linux การเรียนรู้ Apt และการเป็นกูรู Apt และวิธีการติดตั้ง Arch Linux บน Raspberry Pi